diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e91a2a0b65..e34aef58ae 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -18,6 +18,7 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 + submodules: true - name: 🔗 Install wget for Windows if: matrix.os == 'windows-latest' @@ -57,13 +58,16 @@ jobs: run: bash ./package_antares_web.sh working-directory: scripts - - name: 📜 Install changelog requirements - run: npm install -g auto-changelog + - name: Add installer to package + shell: bash + run: | + pip install hatch + ./package_antares_installer.sh + working-directory: scripts - - name: 📜️ Generate changelog file + - name: 📜️ Copy changelog file run: | - auto-changelog -l false --hide-empty-releases - mv CHANGELOG.md dist/package/CHANGELOG.md + cp docs/CHANGELOG.md dist/package/CHANGELOG.md - name: 📦 Archive Antares Desktop for Windows if: matrix.os == 'windows-latest' diff --git a/.github/workflows/license_header.yml b/.github/workflows/license_header.yml new file mode 100644 index 0000000000..51b8172825 --- /dev/null +++ b/.github/workflows/license_header.yml @@ -0,0 +1,26 @@ +name: check license headers +on: + push: + branches: + - "**" + +jobs: + check-license-headers: + runs-on: ubuntu-20.04 + steps: + - name: Checkout github repo (+ download lfs dependencies) + uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.8 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install click + - name: Check licenses header + run: | + python license_checker_and_adder.py --path=../antarest/ --action=check-strict + python license_checker_and_adder.py --path=../tests/ --action=check-strict + python license_checker_and_adder.py --path=../webapp/src --action=check-strict + working-directory: scripts diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4b1038ddcd..604f8e54d1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -53,11 +53,7 @@ jobs: pip install -r requirements-dev.txt - name: Test with pytest run: | - pytest --cov antarest --cov-report xml - - name: Fix code coverage paths - if: matrix.os == 'ubuntu-20.04' - run: | - sed -i 's/\/home\/runner\/work\/AntaREST\/AntaREST/\/github\/workspace/g' coverage.xml + pytest --cov antarest --cov-report xml -n logical - name: Archive code coverage results if: matrix.os == 'ubuntu-20.04' uses: actions/upload-artifact@v4 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..553c74283c --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "installer"] + path = installer + url = https://github.com/AntaresSimulatorTeam/antares-web-installer.git diff --git a/AUTHORS.txt b/AUTHORS.txt new file mode 100644 index 0000000000..ff59d0d710 --- /dev/null +++ b/AUTHORS.txt @@ -0,0 +1,25 @@ +Github identifiers of authors, in alphabetical order: + +3lbanna +a-zakir +cbion +flomnes +FrancoisJ +GPivette +hdinia +Hyralc +insatomcat +laurent-laporte-pro +mabw-rte +makdeuneuv +MartinBelthle +maugde +olfamizen +pl-buiquang +qdesmedt +romeoadanhounme +sgatto +skamril +sylvlecl +TLAIDI +Wintxer diff --git a/alembic/versions/dae93f1d9110_populate_tag_and_study_tag_tables_with_.py b/alembic/versions/dae93f1d9110_populate_tag_and_study_tag_tables_with_.py index 6fbb060115..7be22d1e24 100644 --- a/alembic/versions/dae93f1d9110_populate_tag_and_study_tag_tables_with_.py +++ b/alembic/versions/dae93f1d9110_populate_tag_and_study_tag_tables_with_.py @@ -7,7 +7,6 @@ """ import collections import itertools -import json import secrets import typing as t @@ -16,6 +15,7 @@ from sqlalchemy.engine import Connection # type: ignore from antarest.study.css4_colors import COLOR_NAMES +from antarest.core.serialization import from_json, to_json # revision identifiers, used by Alembic. revision = "dae93f1d9110" @@ -34,7 +34,7 @@ def _avoid_duplicates(tags: t.Iterable[str]) -> t.Sequence[str]: def _load_patch_obj(patch: t.Optional[str]) -> t.MutableMapping[str, t.Any]: """Load the patch object from the `patch` field in the `study_additional_data` table.""" - obj: t.MutableMapping[str, t.Any] = json.loads(patch or "{}") + obj: t.MutableMapping[str, t.Any] = from_json(patch or "{}") obj["study"] = obj.get("study") or {} obj["study"]["tags"] = _avoid_duplicates(obj["study"].get("tags") or []) return obj @@ -113,7 +113,7 @@ def downgrade() -> None: objects_by_ids[study_id] = obj # Updating objects in the `study_additional_data` table - bulk_patches = [{"study_id": id_, "patch": json.dumps(obj)} for id_, obj in objects_by_ids.items()] + bulk_patches = [{"study_id": id_, "patch": to_json(obj)} for id_, obj in objects_by_ids.items()] if bulk_patches: sql = sa.text("UPDATE study_additional_data SET patch = :patch WHERE study_id = :study_id") connexion.execute(sql, *bulk_patches) diff --git a/antarest/__init__.py b/antarest/__init__.py index 2e8b12e6da..8967b4b2e2 100644 --- a/antarest/__init__.py +++ b/antarest/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Antares Web diff --git a/antarest/core/__init__.py b/antarest/core/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/__init__.py +++ b/antarest/core/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/application.py b/antarest/core/application.py new file mode 100644 index 0000000000..3f09bd4102 --- /dev/null +++ b/antarest/core/application.py @@ -0,0 +1,48 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from dataclasses import dataclass +from typing import Optional + +from fastapi import APIRouter, FastAPI + + +@dataclass(frozen=True) +class AppBuildContext: + """ + Base elements of the application, for use at construction time: + - app: the actual fastapi application, where middlewares, exception handlers, etc. may be added + - api_root: the route under which all API and WS endpoints must be registered + + API routes should not be added straight to app, but under api_root instead, + so that they are correctly prefixed if needed (/api for standalone mode). + + Warning: the inclusion of api_root must happen AFTER all subroutes + have been registered, hence the build method. + """ + + app: FastAPI + api_root: APIRouter + + def build(self) -> FastAPI: + """ + Finalizes the app construction by including the API route. + Must be performed AFTER all subroutes have been added. + """ + self.app.include_router(self.api_root) + return self.app + + +def create_app_ctxt(app: FastAPI, api_root: Optional[APIRouter] = None) -> AppBuildContext: + if not api_root: + api_root = APIRouter() + return AppBuildContext(app, api_root) diff --git a/antarest/core/cache/__init__.py b/antarest/core/cache/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/cache/__init__.py +++ b/antarest/core/cache/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/cache/business/__init__.py b/antarest/core/cache/business/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/cache/business/__init__.py +++ b/antarest/core/cache/business/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/cache/business/local_chache.py b/antarest/core/cache/business/local_chache.py index 7b65e755bd..ac2a026db5 100644 --- a/antarest/core/cache/business/local_chache.py +++ b/antarest/core/cache/business/local_chache.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import threading import time diff --git a/antarest/core/cache/business/redis_cache.py b/antarest/core/cache/business/redis_cache.py index 176e583b76..7793f280c7 100644 --- a/antarest/core/cache/business/redis_cache.py +++ b/antarest/core/cache/business/redis_cache.py @@ -1,4 +1,15 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import List, Optional @@ -7,6 +18,7 @@ from antarest.core.interfaces.cache import ICache from antarest.core.model import JSON +from antarest.core.serialization import from_json logger = logging.getLogger(__name__) @@ -28,7 +40,7 @@ def put(self, id: str, data: JSON, duration: int = 3600) -> None: redis_element = RedisCacheElement(duration=duration, data=data) redis_key = f"cache:{id}" logger.info(f"Adding cache key {id}") - self.redis.set(redis_key, redis_element.json()) + self.redis.set(redis_key, redis_element.model_dump_json()) self.redis.expire(redis_key, duration) def get(self, id: str, refresh_timeout: Optional[int] = None) -> Optional[JSON]: @@ -37,7 +49,7 @@ def get(self, id: str, refresh_timeout: Optional[int] = None) -> Optional[JSON]: logger.info(f"Trying to retrieve cache key {id}") if result is not None: logger.info(f"Cache key {id} found") - json_result = json.loads(result) + json_result = from_json(result) redis_element = RedisCacheElement(duration=json_result["duration"], data=json_result["data"]) self.redis.expire( redis_key, diff --git a/antarest/core/cache/main.py b/antarest/core/cache/main.py index 8cc4a6a3b2..c707732fec 100644 --- a/antarest/core/cache/main.py +++ b/antarest/core/cache/main.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import Optional diff --git a/antarest/core/config.py b/antarest/core/config.py index d7b7ed1243..4b85331d6a 100644 --- a/antarest/core/config.py +++ b/antarest/core/config.py @@ -1,6 +1,19 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import multiprocessing import tempfile from dataclasses import asdict, dataclass, field +from enum import Enum from pathlib import Path from typing import Dict, List, Optional @@ -12,6 +25,12 @@ DEFAULT_WORKSPACE_NAME = "default" +class Launcher(str, Enum): + SLURM = "slurm" + LOCAL = "local" + DEFAULT = "default" + + @dataclass(frozen=True) class ExternalAuthConfig: """ @@ -387,7 +406,7 @@ def __post_init__(self) -> None: msg = f"Invalid configuration: {self.default=} must be one of {possible!r}" raise ValueError(msg) - def get_nb_cores(self, launcher: str) -> "NbCoresConfig": + def get_nb_cores(self, launcher: Launcher) -> "NbCoresConfig": """ Retrieve the number of cores configuration for a given launcher: "local" or "slurm". If "default" is specified, retrieve the configuration of the default launcher. @@ -404,12 +423,12 @@ def get_nb_cores(self, launcher: str) -> "NbCoresConfig": """ config_map = {"local": self.local, "slurm": self.slurm} config_map["default"] = config_map[self.default] - launcher_config = config_map.get(launcher) + launcher_config = config_map.get(launcher.value) if launcher_config is None: - raise InvalidConfigurationError(launcher) + raise InvalidConfigurationError(launcher.value) return launcher_config.nb_cores - def get_time_limit(self, launcher: str) -> TimeLimitConfig: + def get_time_limit(self, launcher: Launcher) -> TimeLimitConfig: """ Retrieve the time limit for a job of the given launcher: "local" or "slurm". If "default" is specified, retrieve the configuration of the default launcher. @@ -426,7 +445,7 @@ def get_time_limit(self, launcher: str) -> TimeLimitConfig: """ config_map = {"local": self.local, "slurm": self.slurm} config_map["default"] = config_map[self.default] - launcher_config = config_map.get(launcher) + launcher_config = config_map.get(launcher.value) if launcher_config is None: raise InvalidConfigurationError(launcher) return launcher_config.time_limit @@ -574,6 +593,7 @@ class Config: cache: CacheConfig = CacheConfig() tasks: TaskConfig = TaskConfig() root_path: str = "" + api_prefix: str = "" @classmethod def from_dict(cls, data: JSON) -> "Config": @@ -592,6 +612,7 @@ def from_dict(cls, data: JSON) -> "Config": cache=CacheConfig.from_dict(data["cache"]) if "cache" in data else defaults.cache, tasks=TaskConfig.from_dict(data["tasks"]) if "tasks" in data else defaults.tasks, root_path=data.get("root_path", defaults.root_path), + api_prefix=data.get("api_prefix", defaults.api_prefix), ) @classmethod diff --git a/antarest/core/configdata/__init__.py b/antarest/core/configdata/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/configdata/__init__.py +++ b/antarest/core/configdata/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/configdata/model.py b/antarest/core/configdata/model.py index cb58784493..3e0d6b970e 100644 --- a/antarest/core/configdata/model.py +++ b/antarest/core/configdata/model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from enum import Enum from typing import Any, Optional diff --git a/antarest/core/configdata/repository.py b/antarest/core/configdata/repository.py index fe785038c4..3b7aea6ada 100644 --- a/antarest/core/configdata/repository.py +++ b/antarest/core/configdata/repository.py @@ -1,10 +1,22 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from operator import and_ from typing import Optional from antarest.core.configdata.model import ConfigData from antarest.core.jwt import DEFAULT_ADMIN_USER from antarest.core.model import JSON +from antarest.core.serialization import from_json, to_json_string from antarest.core.utils.fastapi_sqlalchemy import db @@ -31,14 +43,14 @@ def get(self, key: str, owner: Optional[int] = None) -> Optional[ConfigData]: def get_json(self, key: str, owner: Optional[int] = None) -> Optional[JSON]: configdata = self.get(key, owner) if configdata: - data: JSON = json.loads(configdata.value) + data: JSON = from_json(configdata.value) return data return None def put_json(self, key: str, data: JSON, owner: Optional[int] = None) -> None: configdata = ConfigData( key=key, - value=json.dumps(data), + value=to_json_string(data), owner=owner or DEFAULT_ADMIN_USER.id, ) configdata = db.session.merge(configdata) diff --git a/antarest/core/core_blueprint.py b/antarest/core/core_blueprint.py index 5eac42ce3b..27f6591109 100644 --- a/antarest/core/core_blueprint.py +++ b/antarest/core/core_blueprint.py @@ -1,15 +1,23 @@ -import logging +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any -from fastapi import APIRouter, Depends +from fastapi import APIRouter from pydantic import BaseModel from antarest.core.config import Config -from antarest.core.jwt import JWTUser -from antarest.core.requests import UserHasNotPermissionError from antarest.core.utils.web import APITag from antarest.core.version_info import VersionInfoDTO, get_commit_id, get_dependencies -from antarest.login.auth import Auth class StatusDTO(BaseModel): @@ -24,7 +32,6 @@ def create_utils_routes(config: Config) -> APIRouter: config: main server configuration """ bp = APIRouter() - auth = Auth(config) @bp.get("/health", tags=[APITag.misc], response_model=StatusDTO) def health() -> Any: @@ -54,15 +61,4 @@ def version_info() -> Any: dependencies=get_dependencies(), ) - @bp.get("/kill", include_in_schema=False) - def kill_worker( - current_user: JWTUser = Depends(auth.get_current_user), - ) -> Any: - if not current_user.is_site_admin(): - raise UserHasNotPermissionError() - logging.getLogger(__name__).critical("Killing the worker") - # PyInstaller modifies the behavior of built-in functions, such as `exit`. - # It is advisable to use `sys.exit` or raise the `SystemExit` exception instead. - raise SystemExit(f"Worker killed by the user #{current_user.id}") - return bp diff --git a/antarest/core/exceptions.py b/antarest/core/exceptions.py index 6fce8f0213..dddcda014c 100644 --- a/antarest/core/exceptions.py +++ b/antarest/core/exceptions.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re import typing as t from http import HTTPStatus @@ -361,11 +373,8 @@ def __str__(self) -> str: class UnsupportedStudyVersion(HTTPException): - def __init__(self, version: str) -> None: - super().__init__( - HTTPStatus.BAD_REQUEST, - f"Study version {version} is not supported", - ) + def __init__(self, message: str) -> None: + super().__init__(HTTPStatus.BAD_REQUEST, message) class UnsupportedOperationOnArchivedStudy(HTTPException): @@ -395,6 +404,20 @@ def __str__(self) -> str: return self.detail +class OutputSubFolderNotFound(HTTPException): + """ + Exception raised when an output sub folders do not exist + """ + + def __init__(self, output_id: str, mc_root: str) -> None: + message = f"The output '{output_id}' sub-folder '{mc_root}' does not exist" + super().__init__(HTTPStatus.NOT_FOUND, message) + + def __str__(self) -> str: + """Return a string representation of the exception.""" + return self.detail + + class BadZipBinary(HTTPException): def __init__(self, message: str) -> None: super().__init__(HTTPStatus.UNSUPPORTED_MEDIA_TYPE, message) @@ -449,6 +472,11 @@ def __init__(self, message: str) -> None: super().__init__(HTTPStatus.UNPROCESSABLE_ENTITY, message) +class MCRootNotHandled(HTTPException): + def __init__(self, message: str) -> None: + super().__init__(HTTPStatus.UNPROCESSABLE_ENTITY, message) + + class MatrixWidthMismatchError(HTTPException): def __init__(self, message: str) -> None: super().__init__(HTTPStatus.UNPROCESSABLE_ENTITY, message) diff --git a/antarest/core/filesystem_blueprint.py b/antarest/core/filesystem_blueprint.py index bf247978b2..d625d19c07 100644 --- a/antarest/core/filesystem_blueprint.py +++ b/antarest/core/filesystem_blueprint.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Filesystem Blueprint """ @@ -11,21 +23,21 @@ import typing_extensions as te from fastapi import APIRouter, Depends, HTTPException -from pydantic import BaseModel, Extra, Field +from pydantic import BaseModel, Field from starlette.responses import PlainTextResponse, StreamingResponse from antarest.core.config import Config from antarest.core.utils.web import APITag from antarest.login.auth import Auth -FilesystemName = te.Annotated[str, Field(regex=r"^\w+$", description="Filesystem name")] -MountPointName = te.Annotated[str, Field(regex=r"^\w+$", description="Mount point name")] +FilesystemName = te.Annotated[str, Field(pattern=r"^\w+$", description="Filesystem name")] +MountPointName = te.Annotated[str, Field(pattern=r"^\w+$", description="Mount point name")] class FilesystemDTO( BaseModel, - extra=Extra.forbid, - schema_extra={ + extra="forbid", + json_schema_extra={ "example": { "name": "ws", "mount_dirs": { @@ -50,8 +62,8 @@ class FilesystemDTO( class MountPointDTO( BaseModel, - extra=Extra.forbid, - schema_extra={ + extra="forbid", + json_schema_extra={ "example": { "name": "default", "path": "/path/to/workspaces/internal_studies", @@ -77,10 +89,10 @@ class MountPointDTO( name: MountPointName path: Path = Field(description="Full path of the mount point in Antares Web Server") - total_bytes: int = Field(0, description="Total size of the mount point in bytes") - used_bytes: int = Field(0, description="Used size of the mount point in bytes") - free_bytes: int = Field(0, description="Free size of the mount point in bytes") - message: str = Field("", description="A message describing the status of the mount point") + total_bytes: int = Field(default=0, description="Total size of the mount point in bytes") + used_bytes: int = Field(default=0, description="Used size of the mount point in bytes") + free_bytes: int = Field(default=0, description="Free size of the mount point in bytes") + message: str = Field(default="", description="A message describing the status of the mount point") @classmethod async def from_path(cls, name: str, path: Path) -> "MountPointDTO": @@ -98,8 +110,8 @@ async def from_path(cls, name: str, path: Path) -> "MountPointDTO": class FileInfoDTO( BaseModel, - extra=Extra.forbid, - schema_extra={ + extra="forbid", + json_schema_extra={ "example": { "path": "/path/to/workspaces/internal_studies/5a503c20-24a3-4734-9cf8-89565c9db5ec/study.antares", "file_type": "file", @@ -130,12 +142,12 @@ class FileInfoDTO( path: Path = Field(description="Full path of the file or directory in Antares Web Server") file_type: str = Field(description="Type of the file or directory") - file_count: int = Field(1, description="Number of files and folders in the directory (1 for files)") - size_bytes: int = Field(0, description="Size of the file or total size of the directory in bytes") + file_count: int = Field(default=1, description="Number of files and folders in the directory (1 for files)") + size_bytes: int = Field(default=0, description="Size of the file or total size of the directory in bytes") created: datetime.datetime = Field(description="Creation date of the file or directory (local time)") modified: datetime.datetime = Field(description="Last modification date of the file or directory (local time)") accessed: datetime.datetime = Field(description="Last access date of the file or directory (local time)") - message: str = Field("OK", description="A message describing the status of the file") + message: str = Field(default="OK", description="A message describing the status of the file") @classmethod async def from_path(cls, full_path: Path, *, details: bool = False) -> "FileInfoDTO": @@ -148,6 +160,7 @@ async def from_path(cls, full_path: Path, *, details: bool = False) -> "FileInfo path=full_path, file_type="unknown", file_count=0, # missing + size_bytes=0, # missing created=datetime.datetime.min, modified=datetime.datetime.min, accessed=datetime.datetime.min, @@ -162,6 +175,7 @@ async def from_path(cls, full_path: Path, *, details: bool = False) -> "FileInfo created=datetime.datetime.fromtimestamp(file_stat.st_ctime), modified=datetime.datetime.fromtimestamp(file_stat.st_mtime), accessed=datetime.datetime.fromtimestamp(file_stat.st_atime), + message="OK", ) if stat.S_ISDIR(file_stat.st_mode): diff --git a/antarest/core/filetransfer/__init__.py b/antarest/core/filetransfer/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/filetransfer/__init__.py +++ b/antarest/core/filetransfer/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/filetransfer/main.py b/antarest/core/filetransfer/main.py index f345d88150..3583dc5701 100644 --- a/antarest/core/filetransfer/main.py +++ b/antarest/core/filetransfer/main.py @@ -1,7 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Optional -from fastapi import FastAPI +from fastapi import APIRouter, FastAPI +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.core.filetransfer.repository import FileDownloadRepository from antarest.core.filetransfer.service import FileTransferManager @@ -10,10 +23,10 @@ def build_filetransfer_service( - application: Optional[FastAPI], event_bus: IEventBus, config: Config + app_ctxt: Optional[AppBuildContext], event_bus: IEventBus, config: Config ) -> FileTransferManager: ftm = FileTransferManager(repository=FileDownloadRepository(), event_bus=event_bus, config=config) - if application: - application.include_router(create_file_transfer_api(ftm, config)) + if app_ctxt: + app_ctxt.api_root.include_router(create_file_transfer_api(ftm, config)) return ftm diff --git a/antarest/core/filetransfer/model.py b/antarest/core/filetransfer/model.py index bbb61c00b6..72463e0bad 100644 --- a/antarest/core/filetransfer/model.py +++ b/antarest/core/filetransfer/model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import uuid from http import HTTPStatus from http.client import HTTPException @@ -29,7 +41,7 @@ class FileDownloadDTO(BaseModel): id: str name: str filename: str - expiration_date: Optional[str] + expiration_date: Optional[str] = None ready: bool failed: bool = False error_message: str = "" diff --git a/antarest/core/filetransfer/repository.py b/antarest/core/filetransfer/repository.py index 0d466fcdc0..3df0594b80 100644 --- a/antarest/core/filetransfer/repository.py +++ b/antarest/core/filetransfer/repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List, Optional from antarest.core.filetransfer.model import FileDownload diff --git a/antarest/core/filetransfer/service.py b/antarest/core/filetransfer/service.py index 80a81e6927..dffb5a4908 100644 --- a/antarest/core/filetransfer/service.py +++ b/antarest/core/filetransfer/service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import logging import os diff --git a/antarest/core/filetransfer/web.py b/antarest/core/filetransfer/web.py index 968e2e30d4..6fce2e834a 100644 --- a/antarest/core/filetransfer/web.py +++ b/antarest/core/filetransfer/web.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from typing import Any, List diff --git a/antarest/core/interfaces/__init__.py b/antarest/core/interfaces/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/interfaces/__init__.py +++ b/antarest/core/interfaces/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/interfaces/cache.py b/antarest/core/interfaces/cache.py index 3fce146145..95d6497864 100644 --- a/antarest/core/interfaces/cache.py +++ b/antarest/core/interfaces/cache.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from abc import abstractmethod from enum import Enum from typing import List, Optional diff --git a/antarest/core/interfaces/eventbus.py b/antarest/core/interfaces/eventbus.py index 7463cfcafe..10965ea831 100644 --- a/antarest/core/interfaces/eventbus.py +++ b/antarest/core/interfaces/eventbus.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from abc import ABC, abstractmethod from enum import Enum from typing import Any, Awaitable, Callable, List, Optional diff --git a/antarest/core/interfaces/service.py b/antarest/core/interfaces/service.py index c80baee508..2e735cbbe5 100644 --- a/antarest/core/interfaces/service.py +++ b/antarest/core/interfaces/service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import threading from abc import ABC, abstractmethod diff --git a/antarest/core/jwt.py b/antarest/core/jwt.py index 16849fa9f0..b42cc3273b 100644 --- a/antarest/core/jwt.py +++ b/antarest/core/jwt.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List, Union from pydantic import BaseModel diff --git a/antarest/core/logging/__init__.py b/antarest/core/logging/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/logging/__init__.py +++ b/antarest/core/logging/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/logging/utils.py b/antarest/core/logging/utils.py index b0e5227ea3..991f21b846 100644 --- a/antarest/core/logging/utils.py +++ b/antarest/core/logging/utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import logging.config import re diff --git a/antarest/core/maintenance/__init__.py b/antarest/core/maintenance/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/maintenance/__init__.py +++ b/antarest/core/maintenance/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/maintenance/main.py b/antarest/core/maintenance/main.py index c5fd2b6c6c..8717150d07 100644 --- a/antarest/core/maintenance/main.py +++ b/antarest/core/maintenance/main.py @@ -1,7 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Optional -from fastapi import FastAPI +from fastapi import APIRouter, FastAPI +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.core.interfaces.cache import ICache from antarest.core.interfaces.eventbus import DummyEventBusService, IEventBus @@ -11,7 +24,7 @@ def build_maintenance_manager( - application: Optional[FastAPI], + app_ctxt: Optional[AppBuildContext], config: Config, cache: ICache, event_bus: IEventBus = DummyEventBusService(), @@ -19,7 +32,7 @@ def build_maintenance_manager( repository = MaintenanceRepository() service = MaintenanceService(config, repository, event_bus, cache) - if application: - application.include_router(create_maintenance_api(service, config)) + if app_ctxt: + app_ctxt.api_root.include_router(create_maintenance_api(service, config)) return service diff --git a/antarest/core/maintenance/model.py b/antarest/core/maintenance/model.py index b8485f12b2..c133e4ea9f 100644 --- a/antarest/core/maintenance/model.py +++ b/antarest/core/maintenance/model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from enum import Enum diff --git a/antarest/core/maintenance/repository.py b/antarest/core/maintenance/repository.py index 530d6a857d..1a69da65c6 100644 --- a/antarest/core/maintenance/repository.py +++ b/antarest/core/maintenance/repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Optional from antarest.core.configdata.model import ConfigData, ConfigDataAppKeys diff --git a/antarest/core/maintenance/service.py b/antarest/core/maintenance/service.py index 7faeb6557b..4e4cecc24b 100644 --- a/antarest/core/maintenance/service.py +++ b/antarest/core/maintenance/service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import shutil import time diff --git a/antarest/core/maintenance/web.py b/antarest/core/maintenance/web.py index a9837788b5..ed6e28cf9f 100644 --- a/antarest/core/maintenance/web.py +++ b/antarest/core/maintenance/web.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import Any diff --git a/antarest/core/model.py b/antarest/core/model.py index 4c8c0d5f0e..b500e9a5c5 100644 --- a/antarest/core/model.py +++ b/antarest/core/model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import enum from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union @@ -9,7 +21,7 @@ JSON = Dict[str, Any] ELEMENT = Union[str, int, float, bool, bytes] -SUB_JSON = Union[ELEMENT, JSON, List, None] +SUB_JSON = Union[ELEMENT, JSON, List[Any], None] class PublicMode(str, enum.Enum): diff --git a/antarest/core/permissions.py b/antarest/core/permissions.py index 8ecba4d85f..55defacf7d 100644 --- a/antarest/core/permissions.py +++ b/antarest/core/permissions.py @@ -1,4 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging +import typing as t from antarest.core.jwt import JWTUser from antarest.core.model import PermissionInfo, PublicMode, StudyPermissionType @@ -7,8 +20,8 @@ logger = logging.getLogger(__name__) -permission_matrix = { - StudyPermissionType.READ: { +permission_matrix: t.Dict[str, t.Dict[str, t.Sequence[t.Union[RoleType, PublicMode]]]] = { + StudyPermissionType.READ.value: { "roles": [ RoleType.ADMIN, RoleType.RUNNER, @@ -22,15 +35,15 @@ PublicMode.READ, ], }, - StudyPermissionType.RUN: { + StudyPermissionType.RUN.value: { "roles": [RoleType.ADMIN, RoleType.RUNNER, RoleType.WRITER], "public_modes": [PublicMode.FULL, PublicMode.EDIT, PublicMode.EXECUTE], }, - StudyPermissionType.WRITE: { + StudyPermissionType.WRITE.value: { "roles": [RoleType.ADMIN, RoleType.WRITER], "public_modes": [PublicMode.FULL, PublicMode.EDIT], }, - StudyPermissionType.MANAGE_PERMISSIONS: { + StudyPermissionType.MANAGE_PERMISSIONS.value: { "roles": [RoleType.ADMIN], "public_modes": [], }, @@ -65,11 +78,11 @@ def check_permission( allowed_roles = permission_matrix[permission]["roles"] group_permission = any( - role in allowed_roles # type: ignore + role in allowed_roles for role in [group.role for group in (user.groups or []) if group.id in permission_info.groups] ) if group_permission: return True allowed_public_modes = permission_matrix[permission]["public_modes"] - return permission_info.public_mode in allowed_public_modes # type: ignore + return permission_info.public_mode in allowed_public_modes diff --git a/antarest/core/persistence.py b/antarest/core/persistence.py index 67e4e532c8..5bc80c4e98 100644 --- a/antarest/core/persistence.py +++ b/antarest/core/persistence.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import os from io import StringIO diff --git a/antarest/core/requests.py b/antarest/core/requests.py index d33285c7ab..d276f79dca 100644 --- a/antarest/core/requests.py +++ b/antarest/core/requests.py @@ -1,5 +1,19 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +import typing as t +from collections import OrderedDict from dataclasses import dataclass -from typing import Optional +from typing import Any, Generator, Tuple from fastapi import HTTPException from markupsafe import escape @@ -17,13 +31,52 @@ } +class CaseInsensitiveDict(t.MutableMapping[str, t.Any]): # copy of the requests class to avoid importing the package + def __init__(self, data=None, **kwargs) -> None: # type: ignore + self._store: OrderedDict[str, t.Any] = OrderedDict() + if data is None: + data = {} + self.update(data, **kwargs) + + def __setitem__(self, key: str, value: t.Any) -> None: + self._store[key.lower()] = (key, value) + + def __getitem__(self, key: str) -> t.Any: + return self._store[key.lower()][1] + + def __delitem__(self, key: str) -> None: + del self._store[key.lower()] + + def __iter__(self) -> t.Any: + return (casedkey for casedkey, mappedvalue in self._store.values()) + + def __len__(self) -> int: + return len(self._store) + + def lower_items(self) -> Generator[Tuple[Any, Any], Any, None]: + return ((lowerkey, keyval[1]) for (lowerkey, keyval) in self._store.items()) + + def __eq__(self, other: t.Any) -> bool: + if isinstance(other, t.Mapping): + other = CaseInsensitiveDict(other) + else: + return NotImplemented + return dict(self.lower_items()) == dict(other.lower_items()) + + def copy(self) -> "CaseInsensitiveDict": + return CaseInsensitiveDict(self._store.values()) + + def __repr__(self) -> str: + return str(dict(self.items())) + + @dataclass class RequestParameters: """ DTO object to handle data inside request to send to service """ - user: Optional[JWTUser] = None + user: t.Optional[JWTUser] = None def get_user_id(self) -> str: return str(escape(str(self.user.id))) if self.user else "Unknown" diff --git a/antarest/core/roles.py b/antarest/core/roles.py index 778ae44df2..232b5fa524 100644 --- a/antarest/core/roles.py +++ b/antarest/core/roles.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import enum import functools diff --git a/antarest/core/serialization/__init__.py b/antarest/core/serialization/__init__.py new file mode 100644 index 0000000000..6368c02f1e --- /dev/null +++ b/antarest/core/serialization/__init__.py @@ -0,0 +1,34 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. +import typing as t + +import pydantic + +ADAPTER: pydantic.TypeAdapter[t.Any] = pydantic.TypeAdapter( + type=t.Any, config=pydantic.config.ConfigDict(ser_json_inf_nan="constants") +) # ser_json_inf_nan="constants" means infinity and NaN values will be serialized as `Infinity` and `NaN`. + + +# These utility functions allow to serialize with pydantic instead of using the built-in python "json" library. +# Since pydantic v2 is written in RUST it's way faster. + + +def from_json(data: t.Union[str, bytes, bytearray]) -> t.Dict[str, t.Any]: + return ADAPTER.validate_json(data) # type: ignore + + +def to_json(data: t.Any, indent: t.Optional[int] = None) -> bytes: + return ADAPTER.dump_json(data, indent=indent) + + +def to_json_string(data: t.Any, indent: t.Optional[int] = None) -> str: + return to_json(data, indent=indent).decode("utf-8") diff --git a/antarest/core/swagger.py b/antarest/core/swagger.py index 3d10993a31..3d1b62441a 100644 --- a/antarest/core/swagger.py +++ b/antarest/core/swagger.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, List, Tuple from fastapi import FastAPI diff --git a/antarest/core/tasks/__init__.py b/antarest/core/tasks/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/tasks/__init__.py +++ b/antarest/core/tasks/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/tasks/main.py b/antarest/core/tasks/main.py index 0aa2f6c670..74685ba836 100644 --- a/antarest/core/tasks/main.py +++ b/antarest/core/tasks/main.py @@ -1,7 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Optional -from fastapi import FastAPI +from fastapi import APIRouter, FastAPI +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.core.interfaces.eventbus import DummyEventBusService, IEventBus from antarest.core.tasks.repository import TaskJobRepository @@ -10,14 +23,14 @@ def build_taskjob_manager( - application: Optional[FastAPI], + app_ctxt: Optional[AppBuildContext], config: Config, event_bus: IEventBus = DummyEventBusService(), ) -> ITaskService: repository = TaskJobRepository() service = TaskJobService(config, repository, event_bus) - if application: - application.include_router(create_tasks_api(service, config)) + if app_ctxt: + app_ctxt.api_root.include_router(create_tasks_api(service, config)) return service diff --git a/antarest/core/tasks/model.py b/antarest/core/tasks/model.py index d1b3d51b5d..138344602a 100644 --- a/antarest/core/tasks/model.py +++ b/antarest/core/tasks/model.py @@ -1,9 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import uuid from datetime import datetime from enum import Enum -from pydantic import BaseModel, Extra +from pydantic import BaseModel from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, Sequence, String # type: ignore from sqlalchemy.engine.base import Engine # type: ignore from sqlalchemy.orm import relationship, sessionmaker # type: ignore @@ -23,8 +35,8 @@ class TaskType(str, Enum): ARCHIVE = "ARCHIVE" UNARCHIVE = "UNARCHIVE" SCAN = "SCAN" - WORKER_TASK = "WORKER_TASK" UPGRADE_STUDY = "UPGRADE_STUDY" + THERMAL_CLUSTER_SERIES_GENERATION = "THERMAL_CLUSTER_SERIES_GENERATION" class TaskStatus(Enum): @@ -44,43 +56,43 @@ def is_final(self) -> bool: ] -class TaskResult(BaseModel, extra=Extra.forbid): +class TaskResult(BaseModel, extra="forbid"): success: bool message: str # Can be used to store json serialized result - return_value: t.Optional[str] + return_value: t.Optional[str] = None -class TaskLogDTO(BaseModel, extra=Extra.forbid): +class TaskLogDTO(BaseModel, extra="forbid"): id: str message: str -class CustomTaskEventMessages(BaseModel, extra=Extra.forbid): +class CustomTaskEventMessages(BaseModel, extra="forbid"): start: str running: str end: str -class TaskEventPayload(BaseModel, extra=Extra.forbid): +class TaskEventPayload(BaseModel, extra="forbid"): id: str message: str -class TaskDTO(BaseModel, extra=Extra.forbid): +class TaskDTO(BaseModel, extra="forbid"): id: str name: str - owner: t.Optional[int] + owner: t.Optional[int] = None status: TaskStatus creation_date_utc: str - completion_date_utc: t.Optional[str] - result: t.Optional[TaskResult] - logs: t.Optional[t.List[TaskLogDTO]] + completion_date_utc: t.Optional[str] = None + result: t.Optional[TaskResult] = None + logs: t.Optional[t.List[TaskLogDTO]] = None type: t.Optional[str] = None ref_id: t.Optional[str] = None -class TaskListFilter(BaseModel, extra=Extra.forbid): +class TaskListFilter(BaseModel, extra="forbid"): status: t.List[TaskStatus] = [] name: t.Optional[str] = None type: t.List[TaskType] = [] @@ -158,6 +170,15 @@ class TaskJob(Base): # type: ignore study: "Study" = relationship("Study", back_populates="jobs", uselist=False) def to_dto(self, with_logs: bool = False) -> TaskDTO: + result = None + if self.completion_date: + assert self.result_status is not None + assert self.result_msg is not None + result = TaskResult( + success=self.result_status, + message=self.result_msg, + return_value=self.result, + ) return TaskDTO( id=self.id, owner=self.owner_id, @@ -165,13 +186,7 @@ def to_dto(self, with_logs: bool = False) -> TaskDTO: completion_date_utc=str(self.completion_date) if self.completion_date else None, name=self.name, status=TaskStatus(self.status), - result=TaskResult( - success=self.result_status, - message=self.result_msg, - return_value=self.result, - ) - if self.completion_date - else None, + result=result, logs=sorted([log.to_dto() for log in self.logs], key=lambda log: log.id) if with_logs else None, type=self.type, ref_id=self.ref_id, diff --git a/antarest/core/tasks/repository.py b/antarest/core/tasks/repository.py index 9a579ba241..0a2028db33 100644 --- a/antarest/core/tasks/repository.py +++ b/antarest/core/tasks/repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import typing as t from http import HTTPStatus diff --git a/antarest/core/tasks/service.py b/antarest/core/tasks/service.py index 07832e7365..e4855e01c3 100644 --- a/antarest/core/tasks/service.py +++ b/antarest/core/tasks/service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import logging import time @@ -132,7 +144,7 @@ def _create_awaiter( res_wrapper: t.List[TaskResult], ) -> t.Callable[[Event], t.Awaitable[None]]: async def _await_task_end(event: Event) -> None: - task_event = WorkerTaskResult.parse_obj(event.payload) + task_event = WorkerTaskResult.model_validate(event.payload) if task_event.task_id == task_id: res_wrapper.append(task_event.task_result) @@ -240,7 +252,7 @@ def _launch_task( message=custom_event_messages.start if custom_event_messages is not None else f"Task {task.id} added", - ).dict(), + ).model_dump(), permissions=PermissionInfo(owner=request_params.user.impersonator), ) ) @@ -349,7 +361,7 @@ def _run_task( message=custom_event_messages.running if custom_event_messages is not None else f"Task {task_id} is running", - ).dict(), + ).model_dump(), permissions=PermissionInfo(public_mode=PublicMode.READ), channel=EventChannelDirectory.TASK + task_id, ) @@ -395,7 +407,7 @@ def _run_task( if custom_event_messages is not None else f"Task {task_id} {event_msg}" ), - ).dict(), + ).model_dump(), permissions=PermissionInfo(public_mode=PublicMode.READ), channel=EventChannelDirectory.TASK + task_id, ) @@ -420,7 +432,7 @@ def _run_task( self.event_bus.push( Event( type=EventType.TASK_FAILED, - payload=TaskEventPayload(id=task_id, message=message).dict(), + payload=TaskEventPayload(id=task_id, message=message).model_dump(), permissions=PermissionInfo(public_mode=PublicMode.READ), channel=EventChannelDirectory.TASK + task_id, ) diff --git a/antarest/core/tasks/web.py b/antarest/core/tasks/web.py index 83c75ea23b..4d8fa77a93 100644 --- a/antarest/core/tasks/web.py +++ b/antarest/core/tasks/web.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import concurrent.futures import http import logging diff --git a/antarest/core/utils/__init__.py b/antarest/core/utils/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/core/utils/__init__.py +++ b/antarest/core/utils/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/core/utils/fastapi_sqlalchemy/LICENSE b/antarest/core/utils/fastapi_sqlalchemy/LICENSE new file mode 100644 index 0000000000..577fc21f6c --- /dev/null +++ b/antarest/core/utils/fastapi_sqlalchemy/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Michael Freeborn + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/antarest/core/utils/fastapi_sqlalchemy/README.md b/antarest/core/utils/fastapi_sqlalchemy/README.md index 78c02a32a5..fae88f5abc 100644 --- a/antarest/core/utils/fastapi_sqlalchemy/README.md +++ b/antarest/core/utils/fastapi_sqlalchemy/README.md @@ -1,3 +1,4 @@ # FastAPI-SQLAlchemy -Forked from https://github.com/mfreeborn/fastapi-sqlalchemy \ No newline at end of file +Forked from https://github.com/mfreeborn/fastapi-sqlalchemy, +licensed under MIT license, see [LICENSE](LICENSE). diff --git a/antarest/core/utils/fastapi_sqlalchemy/middleware.py b/antarest/core/utils/fastapi_sqlalchemy/middleware.py index 9a98b4ef1b..dcc1f95b25 100644 --- a/antarest/core/utils/fastapi_sqlalchemy/middleware.py +++ b/antarest/core/utils/fastapi_sqlalchemy/middleware.py @@ -12,7 +12,7 @@ from antarest.core.utils.fastapi_sqlalchemy.exceptions import MissingSessionError, SessionNotInitialisedError -_Session: sessionmaker = None +_Session: Optional[sessionmaker] = None _session: ContextVar[Optional[Session]] = ContextVar("_session", default=None) @@ -93,4 +93,4 @@ def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: _session.reset(self.token) -db: DBSessionMeta = DBSession +db: Type[DBSession] = DBSession diff --git a/antarest/core/utils/string.py b/antarest/core/utils/string.py index 49221438d2..35c5e75541 100644 --- a/antarest/core/utils/string.py +++ b/antarest/core/utils/string.py @@ -1,3 +1,16 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + + def to_pascal_case(value: str) -> str: return "".join(word.capitalize() for word in value.split("_")) diff --git a/antarest/core/utils/utils.py b/antarest/core/utils/utils.py index 6f41c6947c..89002edcfe 100644 --- a/antarest/core/utils/utils.py +++ b/antarest/core/utils/utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import base64 import glob import http diff --git a/antarest/core/utils/web.py b/antarest/core/utils/web.py index 2990b05c41..aeae230ce9 100644 --- a/antarest/core/utils/web.py +++ b/antarest/core/utils/web.py @@ -1,3 +1,16 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + + class APITag: users = "Users" launcher = "Launch Studies" diff --git a/antarest/core/version_info.py b/antarest/core/version_info.py index 8b1b50d84b..ea96eaf4ef 100644 --- a/antarest/core/version_info.py +++ b/antarest/core/version_info.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Python module that is dedicated to printing application version and dependencies information """ @@ -16,7 +28,7 @@ class VersionInfoDTO(BaseModel): dependencies: Dict[str, str] class Config: - schema_extra = { + json_schema_extra = { "example": { "name": "AntaREST", "version": "2.13.2", diff --git a/antarest/dbmodel.py b/antarest/dbmodel.py index 4cd7c745ae..738134dadd 100644 --- a/antarest/dbmodel.py +++ b/antarest/dbmodel.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + # noinspection PyUnresolvedReferences from antarest.core.configdata import model as configdatamodel diff --git a/antarest/eventbus/__init__.py b/antarest/eventbus/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/eventbus/__init__.py +++ b/antarest/eventbus/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/eventbus/business/__init__.py b/antarest/eventbus/business/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/eventbus/business/__init__.py +++ b/antarest/eventbus/business/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/eventbus/business/interfaces.py b/antarest/eventbus/business/interfaces.py index b180775c4f..63a90b7ee5 100644 --- a/antarest/eventbus/business/interfaces.py +++ b/antarest/eventbus/business/interfaces.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import abc from abc import abstractmethod from typing import List, Optional diff --git a/antarest/eventbus/business/local_eventbus.py b/antarest/eventbus/business/local_eventbus.py index 3e9d146c30..bfe0e6992d 100644 --- a/antarest/eventbus/business/local_eventbus.py +++ b/antarest/eventbus/business/local_eventbus.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import Dict, List, Optional diff --git a/antarest/eventbus/business/redis_eventbus.py b/antarest/eventbus/business/redis_eventbus.py index 94d7f5a36c..f3642bf994 100644 --- a/antarest/eventbus/business/redis_eventbus.py +++ b/antarest/eventbus/business/redis_eventbus.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import List, Optional, cast @@ -17,10 +29,10 @@ def __init__(self, redis_client: Redis) -> None: # type: ignore self.pubsub.subscribe(REDIS_STORE_KEY) def push_event(self, event: Event) -> None: - self.redis.publish(REDIS_STORE_KEY, event.json()) + self.redis.publish(REDIS_STORE_KEY, event.model_dump_json()) def queue_event(self, event: Event, queue: str) -> None: - self.redis.rpush(queue, event.json()) + self.redis.rpush(queue, event.model_dump_json()) def pull_queue(self, queue: str) -> Optional[Event]: event = self.redis.lpop(queue) diff --git a/antarest/eventbus/main.py b/antarest/eventbus/main.py index fcd3ba05a8..6ccf56e644 100644 --- a/antarest/eventbus/main.py +++ b/antarest/eventbus/main.py @@ -1,8 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Optional -from fastapi import FastAPI +from fastapi import APIRouter, FastAPI from redis import Redis +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.eventbus.business.local_eventbus import LocalEventBus from antarest.eventbus.business.redis_eventbus import RedisEventBus @@ -11,7 +24,7 @@ def build_eventbus( - application: Optional[FastAPI], + app_ctxt: Optional[AppBuildContext], config: Config, autostart: bool = True, redis_client: Optional[Redis] = None, # type: ignore @@ -21,6 +34,6 @@ def build_eventbus( autostart, ) - if application: - configure_websockets(application, config, eventbus) + if app_ctxt: + configure_websockets(app_ctxt, config, eventbus) return eventbus diff --git a/antarest/eventbus/service.py b/antarest/eventbus/service.py index 5386bc8e2e..201efb3be6 100644 --- a/antarest/eventbus/service.py +++ b/antarest/eventbus/service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import asyncio import logging import random diff --git a/antarest/eventbus/web.py b/antarest/eventbus/web.py index cae0ffb99f..a04a4571bb 100644 --- a/antarest/eventbus/web.py +++ b/antarest/eventbus/web.py @@ -1,20 +1,33 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import dataclasses -import json import logging from enum import Enum from http import HTTPStatus from typing import List, Optional -from fastapi import Depends, FastAPI, HTTPException, Query -from fastapi_jwt_auth import AuthJWT # type: ignore +from fastapi import Depends, HTTPException, Query from pydantic import BaseModel from starlette.websockets import WebSocket, WebSocketDisconnect +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.core.interfaces.eventbus import Event, IEventBus from antarest.core.jwt import DEFAULT_ADMIN_USER, JWTUser from antarest.core.model import PermissionInfo, StudyPermissionType from antarest.core.permissions import check_permission +from antarest.core.serialization import to_json_string +from antarest.fastapi_jwt_auth import AuthJWT from antarest.login.auth import Auth logger = logging.getLogger(__name__) @@ -79,16 +92,16 @@ async def broadcast(self, message: str, permissions: PermissionInfo, channel: st await connection.websocket.send_text(message) -def configure_websockets(application: FastAPI, config: Config, event_bus: IEventBus) -> None: +def configure_websockets(app_ctxt: AppBuildContext, config: Config, event_bus: IEventBus) -> None: manager = ConnectionManager() async def send_event_to_ws(event: Event) -> None: - event_data = event.dict() + event_data = event.model_dump() del event_data["permissions"] del event_data["channel"] - await manager.broadcast(json.dumps(event_data), event.permissions, event.channel) + await manager.broadcast(to_json_string(event_data), event.permissions, event.channel) - @application.websocket("/ws") + @app_ctxt.api_root.websocket("/ws") async def connect( websocket: WebSocket, token: str = Query(...), diff --git a/antarest/fastapi_jwt_auth/LICENSE b/antarest/fastapi_jwt_auth/LICENSE new file mode 100644 index 0000000000..ad5e3c8004 --- /dev/null +++ b/antarest/fastapi_jwt_auth/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Nyoman Pradipta Dewantara + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/antarest/fastapi_jwt_auth/README.md b/antarest/fastapi_jwt_auth/README.md new file mode 100644 index 0000000000..c4dfd9017e --- /dev/null +++ b/antarest/fastapi_jwt_auth/README.md @@ -0,0 +1,4 @@ +# FastAPI JWT Auth + +Forked from https://github.com/IndominusByte/fastapi-jwt-auth, +licensed under MIT license, see [LICENSE](LICENSE). diff --git a/antarest/fastapi_jwt_auth/__init__.py b/antarest/fastapi_jwt_auth/__init__.py new file mode 100644 index 0000000000..a3748ffe33 --- /dev/null +++ b/antarest/fastapi_jwt_auth/__init__.py @@ -0,0 +1,7 @@ +"""FastAPI extension that provides JWT Auth support (secure, easy to use and lightweight)""" + +__version__ = "0.5.0" + +__all__ = ["AuthJWT"] + +from .auth_jwt import AuthJWT diff --git a/antarest/fastapi_jwt_auth/auth_config.py b/antarest/fastapi_jwt_auth/auth_config.py new file mode 100644 index 0000000000..55ca04a25d --- /dev/null +++ b/antarest/fastapi_jwt_auth/auth_config.py @@ -0,0 +1,114 @@ +from datetime import timedelta +from typing import Callable, List + +from pydantic import ValidationError + +from .config import LoadConfig + + +class AuthConfig: + _token = None + _token_location = {"headers"} + + _secret_key = None + _public_key = None + _private_key = None + _algorithm = "HS256" + _decode_algorithms = None + _decode_leeway = 0 + _encode_issuer = None + _decode_issuer = None + _decode_audience = None + _denylist_enabled = False + _denylist_token_checks = {"access", "refresh"} + _header_name = "Authorization" + _header_type = "Bearer" + _token_in_denylist_callback = None + _access_token_expires = timedelta(minutes=15) + _refresh_token_expires = timedelta(days=30) + + # option for create cookies + _access_cookie_key = "access_token_cookie" + _refresh_cookie_key = "refresh_token_cookie" + _access_cookie_path = "/" + _refresh_cookie_path = "/" + _cookie_max_age = None + _cookie_domain = None + _cookie_secure = False + _cookie_samesite = None + + # option for double submit csrf protection + _cookie_csrf_protect = True + _access_csrf_cookie_key = "csrf_access_token" + _refresh_csrf_cookie_key = "csrf_refresh_token" + _access_csrf_cookie_path = "/" + _refresh_csrf_cookie_path = "/" + _access_csrf_header_name = "X-CSRF-Token" + _refresh_csrf_header_name = "X-CSRF-Token" + _csrf_methods = {"POST", "PUT", "PATCH", "DELETE"} + + @property + def jwt_in_cookies(self) -> bool: + return "cookies" in self._token_location + + @property + def jwt_in_headers(self) -> bool: + return "headers" in self._token_location + + @classmethod + def load_config(cls, settings: Callable[..., List[tuple]]) -> "AuthConfig": + try: + config = LoadConfig(**{key.lower(): value for key, value in settings()}) + + cls._token_location = config.authjwt_token_location + cls._secret_key = config.authjwt_secret_key + cls._public_key = config.authjwt_public_key + cls._private_key = config.authjwt_private_key + cls._algorithm = config.authjwt_algorithm + cls._decode_algorithms = config.authjwt_decode_algorithms + cls._decode_leeway = config.authjwt_decode_leeway + cls._encode_issuer = config.authjwt_encode_issuer + cls._decode_issuer = config.authjwt_decode_issuer + cls._decode_audience = config.authjwt_decode_audience + cls._denylist_enabled = config.authjwt_denylist_enabled + cls._denylist_token_checks = config.authjwt_denylist_token_checks + cls._header_name = config.authjwt_header_name + cls._header_type = config.authjwt_header_type + cls._access_token_expires = config.authjwt_access_token_expires + cls._refresh_token_expires = config.authjwt_refresh_token_expires + # option for create cookies + cls._access_cookie_key = config.authjwt_access_cookie_key + cls._refresh_cookie_key = config.authjwt_refresh_cookie_key + cls._access_cookie_path = config.authjwt_access_cookie_path + cls._refresh_cookie_path = config.authjwt_refresh_cookie_path + cls._cookie_max_age = config.authjwt_cookie_max_age + cls._cookie_domain = config.authjwt_cookie_domain + cls._cookie_secure = config.authjwt_cookie_secure + cls._cookie_samesite = config.authjwt_cookie_samesite + # option for double submit csrf protection + cls._cookie_csrf_protect = config.authjwt_cookie_csrf_protect + cls._access_csrf_cookie_key = config.authjwt_access_csrf_cookie_key + cls._refresh_csrf_cookie_key = config.authjwt_refresh_csrf_cookie_key + cls._access_csrf_cookie_path = config.authjwt_access_csrf_cookie_path + cls._refresh_csrf_cookie_path = config.authjwt_refresh_csrf_cookie_path + cls._access_csrf_header_name = config.authjwt_access_csrf_header_name + cls._refresh_csrf_header_name = config.authjwt_refresh_csrf_header_name + cls._csrf_methods = config.authjwt_csrf_methods + except ValidationError as e: + raise e + except Exception: + raise TypeError("Config must be pydantic 'BaseSettings' or list of tuple") + + @classmethod + def token_in_denylist_loader(cls, callback: Callable[..., bool]) -> "AuthConfig": + """ + This decorator sets the callback function that will be called when + a protected endpoint is accessed and will check if the JWT has been + been revoked. By default, this callback is not used. + + *HINT*: The callback must be a function that takes decrypted_token argument, + args for object AuthJWT and this is not used, decrypted_token is decode + JWT (python dictionary) and returns *`True`* if the token has been deny, + or *`False`* otherwise. + """ + cls._token_in_denylist_callback = callback diff --git a/antarest/fastapi_jwt_auth/auth_jwt.py b/antarest/fastapi_jwt_auth/auth_jwt.py new file mode 100644 index 0000000000..19fa3173b4 --- /dev/null +++ b/antarest/fastapi_jwt_auth/auth_jwt.py @@ -0,0 +1,817 @@ +import hmac +import re +import uuid +from datetime import datetime, timedelta, timezone +from typing import Dict, Optional, Sequence, Union + +import jwt +from fastapi import Request, Response, WebSocket +from jwt.algorithms import has_crypto, requires_cryptography + +from .auth_config import AuthConfig +from .exceptions import ( + AccessTokenRequired, + CSRFError, + FreshTokenRequired, + InvalidHeaderError, + JWTDecodeError, + MissingTokenError, + RefreshTokenRequired, + RevokedTokenError, +) + +TYPE_ERROR_MSG = "The response must be an object response FastAPI" + + +class AuthJWT(AuthConfig): + def __init__(self, req: Request = None, res: Response = None): + """ + Get jwt header from incoming request or get + request and response object if jwt in the cookie + + :param req: all incoming request + :param res: response from endpoint + """ + if res and self.jwt_in_cookies: + self._response = res + + if req: + # get request object when cookies in token location + if self.jwt_in_cookies: + self._request = req + # get jwt in headers when headers in token location + if self.jwt_in_headers: + auth = req.headers.get(self._header_name.lower()) + if auth: + self._get_jwt_from_headers(auth) + + def _get_jwt_from_headers(self, auth: str) -> "AuthJWT": + """ + Get token from the headers + + :param auth: value from HeaderName + """ + header_name, header_type = self._header_name, self._header_type + + parts = auth.split() + + # Make sure the header is in a valid format that we are expecting, ie + if not header_type: + # : + if len(parts) != 1: + msg = "Bad {} header. Expected value ''".format(header_name) + raise InvalidHeaderError(status_code=422, message=msg) + self._token = parts[0] + else: + # : + if not re.match(r"{}\s".format(header_type), auth) or len(parts) != 2: + msg = "Bad {} header. Expected value '{} '".format(header_name, header_type) + raise InvalidHeaderError(status_code=422, message=msg) + self._token = parts[1] + + def _get_jwt_identifier(self) -> str: + return str(uuid.uuid4()) + + def _get_int_from_datetime(self, value: datetime) -> int: + """ + :param value: datetime with or without timezone, if don't contains timezone + it will managed as it is UTC + :return: Seconds since the Epoch + """ + if not isinstance(value, datetime): # pragma: no cover + raise TypeError("a datetime is required") + return int(value.timestamp()) + + def _get_secret_key(self, algorithm: str, process: str) -> str: + """ + Get key with a different algorithm + + :param algorithm: algorithm for decode and encode token + :param process: for indicating get key for encode or decode token + + :return: plain text or RSA depends on algorithm + """ + symmetric_algorithms, asymmetric_algorithms = {"HS256", "HS384", "HS512"}, requires_cryptography + + if algorithm not in symmetric_algorithms and algorithm not in asymmetric_algorithms: + raise ValueError("Algorithm {} could not be found".format(algorithm)) + + if algorithm in symmetric_algorithms: + if not self._secret_key: + raise RuntimeError("authjwt_secret_key must be set when using symmetric algorithm {}".format(algorithm)) + + return self._secret_key + + if algorithm in asymmetric_algorithms and not has_crypto: + raise RuntimeError( + "Missing dependencies for using asymmetric algorithms. run 'pip install fastapi-jwt-auth[asymmetric]'" + ) + + if process == "encode": + if not self._private_key: + raise RuntimeError( + "authjwt_private_key must be set when using asymmetric algorithm {}".format(algorithm) + ) + + return self._private_key + + if process == "decode": + if not self._public_key: + raise RuntimeError( + "authjwt_public_key must be set when using asymmetric algorithm {}".format(algorithm) + ) + + return self._public_key + + def _create_token( + self, + subject: Union[str, int], + type_token: str, + exp_time: Optional[int], + fresh: Optional[bool] = False, + algorithm: Optional[str] = None, + headers: Optional[Dict] = None, + issuer: Optional[str] = None, + audience: Optional[Union[str, Sequence[str]]] = None, + user_claims: Optional[Dict] = {}, + ) -> str: + """ + Create token for access_token and refresh_token (utf-8) + + :param subject: Identifier for who this token is for example id or username from database. + :param type_token: indicate token is access_token or refresh_token + :param exp_time: Set the duration of the JWT + :param fresh: Optional when token is access_token this param required + :param algorithm: algorithm allowed to encode the token + :param headers: valid dict for specifying additional headers in JWT header section + :param issuer: expected issuer in the JWT + :param audience: expected audience in the JWT + :param user_claims: Custom claims to include in this token. This data must be dictionary + + :return: Encoded token + """ + # Validation type data + if not isinstance(subject, (str, int)): + raise TypeError("subject must be a string or integer") + if not isinstance(fresh, bool): + raise TypeError("fresh must be a boolean") + if audience and not isinstance(audience, (str, list, tuple, set, frozenset)): + raise TypeError("audience must be a string or sequence") + if algorithm and not isinstance(algorithm, str): + raise TypeError("algorithm must be a string") + if user_claims and not isinstance(user_claims, dict): + raise TypeError("user_claims must be a dictionary") + + # Data section + reserved_claims = { + "sub": subject, + "iat": self._get_int_from_datetime(datetime.now(timezone.utc)), + "nbf": self._get_int_from_datetime(datetime.now(timezone.utc)), + "jti": self._get_jwt_identifier(), + } + + custom_claims = {"type": type_token} + + # for access_token only fresh needed + if type_token == "access": + custom_claims["fresh"] = fresh + # if cookie in token location and csrf protection enabled + if self.jwt_in_cookies and self._cookie_csrf_protect: + custom_claims["csrf"] = self._get_jwt_identifier() + + if exp_time: + reserved_claims["exp"] = exp_time + if issuer: + reserved_claims["iss"] = issuer + if audience: + reserved_claims["aud"] = audience + + algorithm = algorithm or self._algorithm + + secret_key = self._get_secret_key(algorithm, "encode") + + return jwt.encode( + {**reserved_claims, **custom_claims, **user_claims}, secret_key, algorithm=algorithm, headers=headers + ) + + def _has_token_in_denylist_callback(self) -> bool: + """ + Return True if token denylist callback set + """ + return self._token_in_denylist_callback is not None + + def _check_token_is_revoked(self, raw_token: Dict[str, Union[str, int, bool]]) -> None: + """ + Ensure that AUTHJWT_DENYLIST_ENABLED is true and callback regulated, and then + call function denylist callback with passing decode JWT, if true + raise exception Token has been revoked + """ + if not self._denylist_enabled: + return + + if not self._has_token_in_denylist_callback(): + raise RuntimeError( + "A token_in_denylist_callback must be provided via " + "the '@AuthJWT.token_in_denylist_loader' if " + "authjwt_denylist_enabled is 'True'" + ) + + if self._token_in_denylist_callback.__func__(raw_token): + raise RevokedTokenError(status_code=401, message="Token has been revoked") + + def _get_expired_time( + self, type_token: str, expires_time: Optional[Union[timedelta, int, bool]] = None + ) -> Union[None, int]: + """ + Dynamic token expired, if expires_time is False exp claim not created + + :param type_token: indicate token is access_token or refresh_token + :param expires_time: duration expired jwt + + :return: duration exp claim jwt + """ + if expires_time and not isinstance(expires_time, (timedelta, int, bool)): + raise TypeError("expires_time must be between timedelta, int, bool") + + if expires_time is not False: + if type_token == "access": + expires_time = expires_time or self._access_token_expires + if type_token == "refresh": + expires_time = expires_time or self._refresh_token_expires + + if expires_time is not False: + if isinstance(expires_time, bool): + if type_token == "access": + expires_time = self._access_token_expires + if type_token == "refresh": + expires_time = self._refresh_token_expires + if isinstance(expires_time, timedelta): + expires_time = int(expires_time.total_seconds()) + + return self._get_int_from_datetime(datetime.now(timezone.utc)) + expires_time + else: + return None + + def create_access_token( + self, + subject: Union[str, int], + fresh: Optional[bool] = False, + algorithm: Optional[str] = None, + headers: Optional[Dict] = None, + expires_time: Optional[Union[timedelta, int, bool]] = None, + audience: Optional[Union[str, Sequence[str]]] = None, + user_claims: Optional[Dict] = {}, + ) -> str: + """ + Create a access token with 15 minutes for expired time (default), + info for param and return check to function create token + + :return: hash token + """ + return self._create_token( + subject=subject, + type_token="access", + exp_time=self._get_expired_time("access", expires_time), + fresh=fresh, + algorithm=algorithm, + headers=headers, + audience=audience, + user_claims=user_claims, + issuer=self._encode_issuer, + ) + + def create_refresh_token( + self, + subject: Union[str, int], + algorithm: Optional[str] = None, + headers: Optional[Dict] = None, + expires_time: Optional[Union[timedelta, int, bool]] = None, + audience: Optional[Union[str, Sequence[str]]] = None, + user_claims: Optional[Dict] = {}, + ) -> str: + """ + Create a refresh token with 30 days for expired time (default), + info for param and return check to function create token + + :return: hash token + """ + return self._create_token( + subject=subject, + type_token="refresh", + exp_time=self._get_expired_time("refresh", expires_time), + algorithm=algorithm, + headers=headers, + audience=audience, + user_claims=user_claims, + ) + + def _get_csrf_token(self, encoded_token: str) -> str: + """ + Returns the CSRF double submit token from an encoded JWT. + + :param encoded_token: The encoded JWT + :return: The CSRF double submit token + """ + return self._verified_token(encoded_token)["csrf"] + + def set_access_cookies( + self, encoded_access_token: str, response: Optional[Response] = None, max_age: Optional[int] = None + ) -> None: + """ + Configures the response to set access token in a cookie. + this will also set the CSRF double submit values in a separate cookie + + :param encoded_access_token: The encoded access token to set in the cookies + :param response: The FastAPI response object to set the access cookies in + :param max_age: The max age of the cookie value should be the number of seconds (integer) + """ + if not self.jwt_in_cookies: + raise RuntimeWarning( + "set_access_cookies() called without 'authjwt_token_location' configured to use cookies" + ) + + if max_age and not isinstance(max_age, int): + raise TypeError("max_age must be a integer") + if response and not isinstance(response, Response): + raise TypeError(TYPE_ERROR_MSG) + + response = response or self._response + + # Set the access JWT in the cookie + response.set_cookie( + self._access_cookie_key, + encoded_access_token, + max_age=max_age or self._cookie_max_age, + path=self._access_cookie_path, + domain=self._cookie_domain, + secure=self._cookie_secure, + httponly=True, + samesite=self._cookie_samesite, + ) + + # If enabled, set the csrf double submit access cookie + if self._cookie_csrf_protect: + response.set_cookie( + self._access_csrf_cookie_key, + self._get_csrf_token(encoded_access_token), + max_age=max_age or self._cookie_max_age, + path=self._access_csrf_cookie_path, + domain=self._cookie_domain, + secure=self._cookie_secure, + httponly=False, + samesite=self._cookie_samesite, + ) + + def set_refresh_cookies( + self, encoded_refresh_token: str, response: Optional[Response] = None, max_age: Optional[int] = None + ) -> None: + """ + Configures the response to set refresh token in a cookie. + this will also set the CSRF double submit values in a separate cookie + + :param encoded_refresh_token: The encoded refresh token to set in the cookies + :param response: The FastAPI response object to set the refresh cookies in + :param max_age: The max age of the cookie value should be the number of seconds (integer) + """ + if not self.jwt_in_cookies: + raise RuntimeWarning( + "set_refresh_cookies() called without 'authjwt_token_location' configured to use cookies" + ) + + if max_age and not isinstance(max_age, int): + raise TypeError("max_age must be a integer") + if response and not isinstance(response, Response): + raise TypeError(TYPE_ERROR_MSG) + + response = response or self._response + + # Set the refresh JWT in the cookie + response.set_cookie( + self._refresh_cookie_key, + encoded_refresh_token, + max_age=max_age or self._cookie_max_age, + path=self._refresh_cookie_path, + domain=self._cookie_domain, + secure=self._cookie_secure, + httponly=True, + samesite=self._cookie_samesite, + ) + + # If enabled, set the csrf double submit refresh cookie + if self._cookie_csrf_protect: + response.set_cookie( + self._refresh_csrf_cookie_key, + self._get_csrf_token(encoded_refresh_token), + max_age=max_age or self._cookie_max_age, + path=self._refresh_csrf_cookie_path, + domain=self._cookie_domain, + secure=self._cookie_secure, + httponly=False, + samesite=self._cookie_samesite, + ) + + def unset_jwt_cookies(self, response: Optional[Response] = None) -> None: + """ + Unset (delete) all jwt stored in a cookie + + :param response: The FastAPI response object to delete the JWT cookies in. + """ + self.unset_access_cookies(response) + self.unset_refresh_cookies(response) + + def unset_access_cookies(self, response: Optional[Response] = None) -> None: + """ + Remove access token and access CSRF double submit from the response cookies + + :param response: The FastAPI response object to delete the access cookies in. + """ + if not self.jwt_in_cookies: + raise RuntimeWarning( + "unset_access_cookies() called without 'authjwt_token_location' configured to use cookies" + ) + + if response and not isinstance(response, Response): + raise TypeError(TYPE_ERROR_MSG) + + response = response or self._response + + response.delete_cookie(self._access_cookie_key, path=self._access_cookie_path, domain=self._cookie_domain) + + if self._cookie_csrf_protect: + response.delete_cookie( + self._access_csrf_cookie_key, path=self._access_csrf_cookie_path, domain=self._cookie_domain + ) + + def unset_refresh_cookies(self, response: Optional[Response] = None) -> None: + """ + Remove refresh token and refresh CSRF double submit from the response cookies + + :param response: The FastAPI response object to delete the refresh cookies in. + """ + if not self.jwt_in_cookies: + raise RuntimeWarning( + "unset_refresh_cookies() called without 'authjwt_token_location' configured to use cookies" + ) + + if response and not isinstance(response, Response): + raise TypeError(TYPE_ERROR_MSG) + + response = response or self._response + + response.delete_cookie(self._refresh_cookie_key, path=self._refresh_cookie_path, domain=self._cookie_domain) + + if self._cookie_csrf_protect: + response.delete_cookie( + self._refresh_csrf_cookie_key, path=self._refresh_csrf_cookie_path, domain=self._cookie_domain + ) + + def _verify_and_get_jwt_optional_in_cookies( + self, + request: Union[Request, WebSocket], + csrf_token: Optional[str] = None, + ) -> "AuthJWT": + """ + Optionally check if cookies have a valid access token. if an access token present in + cookies, self._token will set. raises exception error when an access token is invalid + or doesn't match with CSRF token double submit + + :param request: for identity get cookies from HTTP or WebSocket + :param csrf_token: the CSRF double submit token + """ + if not isinstance(request, (Request, WebSocket)): + raise TypeError("request must be an instance of 'Request' or 'WebSocket'") + + cookie_key = self._access_cookie_key + cookie = request.cookies.get(cookie_key) + if not isinstance(request, WebSocket): + csrf_token = request.headers.get(self._access_csrf_header_name) + + if cookie and self._cookie_csrf_protect and not csrf_token: + if isinstance(request, WebSocket) or request.method in self._csrf_methods: + raise CSRFError(status_code=401, message="Missing CSRF Token") + + # set token from cookie and verify jwt + self._token = cookie + self._verify_jwt_optional_in_request(self._token) + + decoded_token = self.get_raw_jwt() + + if decoded_token and self._cookie_csrf_protect and csrf_token: + if isinstance(request, WebSocket) or request.method in self._csrf_methods: + if "csrf" not in decoded_token: + raise JWTDecodeError(status_code=422, message="Missing claim: csrf") + if not hmac.compare_digest(csrf_token, decoded_token["csrf"]): + raise CSRFError(status_code=401, message="CSRF double submit tokens do not match") + + def _verify_and_get_jwt_in_cookies( + self, + type_token: str, + request: Union[Request, WebSocket], + csrf_token: Optional[str] = None, + fresh: Optional[bool] = False, + ) -> "AuthJWT": + """ + Check if cookies have a valid access or refresh token. if an token present in + cookies, self._token will set. raises exception error when an access or refresh token + is invalid or doesn't match with CSRF token double submit + + :param type_token: indicate token is access or refresh token + :param request: for identity get cookies from HTTP or WebSocket + :param csrf_token: the CSRF double submit token + :param fresh: check freshness token if True + """ + if type_token not in ["access", "refresh"]: + raise ValueError("type_token must be between 'access' or 'refresh'") + if not isinstance(request, (Request, WebSocket)): + raise TypeError("request must be an instance of 'Request' or 'WebSocket'") + + if type_token == "access": + cookie_key = self._access_cookie_key + cookie = request.cookies.get(cookie_key) + if not isinstance(request, WebSocket): + csrf_token = request.headers.get(self._access_csrf_header_name) + if type_token == "refresh": + cookie_key = self._refresh_cookie_key + cookie = request.cookies.get(cookie_key) + if not isinstance(request, WebSocket): + csrf_token = request.headers.get(self._refresh_csrf_header_name) + + if not cookie: + raise MissingTokenError(status_code=401, message="Missing cookie {}".format(cookie_key)) + + if self._cookie_csrf_protect and not csrf_token: + if isinstance(request, WebSocket) or request.method in self._csrf_methods: + raise CSRFError(status_code=401, message="Missing CSRF Token") + + # set token from cookie and verify jwt + self._token = cookie + self._verify_jwt_in_request(self._token, type_token, "cookies", fresh) + + decoded_token = self.get_raw_jwt() + + if self._cookie_csrf_protect and csrf_token: + if isinstance(request, WebSocket) or request.method in self._csrf_methods: + if "csrf" not in decoded_token: + raise JWTDecodeError(status_code=422, message="Missing claim: csrf") + if not hmac.compare_digest(csrf_token, decoded_token["csrf"]): + raise CSRFError(status_code=401, message="CSRF double submit tokens do not match") + + def _verify_jwt_optional_in_request(self, token: str) -> None: + """ + Optionally check if this request has a valid access token + + :param token: The encoded JWT + """ + if token: + self._verifying_token(token) + + if token and self.get_raw_jwt(token)["type"] != "access": + raise AccessTokenRequired(status_code=422, message="Only access tokens are allowed") + + def _verify_jwt_in_request( + self, token: str, type_token: str, token_from: str, fresh: Optional[bool] = False + ) -> None: + """ + Ensure that the requester has a valid token. this also check the freshness of the access token + + :param token: The encoded JWT + :param type_token: indicate token is access or refresh token + :param token_from: indicate token from headers cookies, websocket + :param fresh: check freshness token if True + """ + if type_token not in ["access", "refresh"]: + raise ValueError("type_token must be between 'access' or 'refresh'") + if token_from not in ["headers", "cookies", "websocket"]: + raise ValueError("token_from must be between 'headers', 'cookies', 'websocket'") + + if not token: + if token_from == "headers": + raise MissingTokenError(status_code=401, message="Missing {} Header".format(self._header_name)) + if token_from == "websocket": + raise MissingTokenError( + status_code=1008, message="Missing {} token from Query or Path".format(type_token) + ) + + # verify jwt + issuer = self._decode_issuer if type_token == "access" else None + self._verifying_token(token, issuer) + + if self.get_raw_jwt(token)["type"] != type_token: + msg = "Only {} tokens are allowed".format(type_token) + if type_token == "access": + raise AccessTokenRequired(status_code=422, message=msg) + if type_token == "refresh": + raise RefreshTokenRequired(status_code=422, message=msg) + + if fresh and not self.get_raw_jwt(token)["fresh"]: + raise FreshTokenRequired(status_code=401, message="Fresh token required") + + def _verifying_token(self, encoded_token: str, issuer: Optional[str] = None) -> None: + """ + Verified token and check if token is revoked + + :param encoded_token: token hash + :param issuer: expected issuer in the JWT + """ + raw_token = self._verified_token(encoded_token, issuer) + if raw_token["type"] in self._denylist_token_checks: + self._check_token_is_revoked(raw_token) + + def _verified_token(self, encoded_token: str, issuer: Optional[str] = None) -> Dict[str, Union[str, int, bool]]: + """ + Verified token and catch all error from jwt package and return decode token + + :param encoded_token: token hash + :param issuer: expected issuer in the JWT + + :return: raw data from the hash token in the form of a dictionary + """ + algorithms = self._decode_algorithms or [self._algorithm] + secret_key = self._get_secret_key(self._algorithm, "decode") + try: + return jwt.decode( + encoded_token, + secret_key, + issuer=issuer, + audience=self._decode_audience, + leeway=self._decode_leeway, + algorithms=algorithms, + ) + except Exception as err: + raise JWTDecodeError(status_code=422, message=str(err)) + + def jwt_required( + self, + auth_from: str = "request", + token: Optional[str] = None, + websocket: Optional[WebSocket] = None, + csrf_token: Optional[str] = None, + ) -> None: + """ + Only access token can access this function + + :param auth_from: for identity get token from HTTP or WebSocket + :param token: the encoded JWT, it's required if the protected endpoint use WebSocket to + authorization and get token from Query Url or Path + :param websocket: an instance of WebSocket, it's required if protected endpoint use a cookie to authorization + :param csrf_token: the CSRF double submit token. since WebSocket cannot add specifying additional headers + its must be passing csrf_token manually and can achieve by Query Url or Path + """ + if auth_from == "websocket": + if websocket: + self._verify_and_get_jwt_in_cookies("access", websocket, csrf_token) + else: + self._verify_jwt_in_request(token, "access", "websocket") + + if auth_from == "request": + if len(self._token_location) == 2: + if self._token and self.jwt_in_headers: + self._verify_jwt_in_request(self._token, "access", "headers") + if not self._token and self.jwt_in_cookies: + self._verify_and_get_jwt_in_cookies("access", self._request) + else: + if self.jwt_in_headers: + self._verify_jwt_in_request(self._token, "access", "headers") + if self.jwt_in_cookies: + self._verify_and_get_jwt_in_cookies("access", self._request) + + def jwt_optional( + self, + auth_from: str = "request", + token: Optional[str] = None, + websocket: Optional[WebSocket] = None, + csrf_token: Optional[str] = None, + ) -> None: + """ + If an access token in present in the request you can get data from get_raw_jwt() or get_jwt_subject(), + If no access token is present in the request, this endpoint will still be called, but + get_raw_jwt() or get_jwt_subject() will return None + + :param auth_from: for identity get token from HTTP or WebSocket + :param token: the encoded JWT, it's required if the protected endpoint use WebSocket to + authorization and get token from Query Url or Path + :param websocket: an instance of WebSocket, it's required if protected endpoint use a cookie to authorization + :param csrf_token: the CSRF double submit token. since WebSocket cannot add specifying additional headers + its must be passing csrf_token manually and can achieve by Query Url or Path + """ + if auth_from == "websocket": + if websocket: + self._verify_and_get_jwt_optional_in_cookies(websocket, csrf_token) + else: + self._verify_jwt_optional_in_request(token) + + if auth_from == "request": + if len(self._token_location) == 2: + if self._token and self.jwt_in_headers: + self._verify_jwt_optional_in_request(self._token) + if not self._token and self.jwt_in_cookies: + self._verify_and_get_jwt_optional_in_cookies(self._request) + else: + if self.jwt_in_headers: + self._verify_jwt_optional_in_request(self._token) + if self.jwt_in_cookies: + self._verify_and_get_jwt_optional_in_cookies(self._request) + + def jwt_refresh_token_required( + self, + auth_from: str = "request", + token: Optional[str] = None, + websocket: Optional[WebSocket] = None, + csrf_token: Optional[str] = None, + ) -> None: + """ + This function will ensure that the requester has a valid refresh token + + :param auth_from: for identity get token from HTTP or WebSocket + :param token: the encoded JWT, it's required if the protected endpoint use WebSocket to + authorization and get token from Query Url or Path + :param websocket: an instance of WebSocket, it's required if protected endpoint use a cookie to authorization + :param csrf_token: the CSRF double submit token. since WebSocket cannot add specifying additional headers + its must be passing csrf_token manually and can achieve by Query Url or Path + """ + if auth_from == "websocket": + if websocket: + self._verify_and_get_jwt_in_cookies("refresh", websocket, csrf_token) + else: + self._verify_jwt_in_request(token, "refresh", "websocket") + + if auth_from == "request": + if len(self._token_location) == 2: + if self._token and self.jwt_in_headers: + self._verify_jwt_in_request(self._token, "refresh", "headers") + if not self._token and self.jwt_in_cookies: + self._verify_and_get_jwt_in_cookies("refresh", self._request) + else: + if self.jwt_in_headers: + self._verify_jwt_in_request(self._token, "refresh", "headers") + if self.jwt_in_cookies: + self._verify_and_get_jwt_in_cookies("refresh", self._request) + + def fresh_jwt_required( + self, + auth_from: str = "request", + token: Optional[str] = None, + websocket: Optional[WebSocket] = None, + csrf_token: Optional[str] = None, + ) -> None: + """ + This function will ensure that the requester has a valid access token and fresh token + + :param auth_from: for identity get token from HTTP or WebSocket + :param token: the encoded JWT, it's required if the protected endpoint use WebSocket to + authorization and get token from Query Url or Path + :param websocket: an instance of WebSocket, it's required if protected endpoint use a cookie to authorization + :param csrf_token: the CSRF double submit token. since WebSocket cannot add specifying additional headers + its must be passing csrf_token manually and can achieve by Query Url or Path + """ + if auth_from == "websocket": + if websocket: + self._verify_and_get_jwt_in_cookies("access", websocket, csrf_token, True) + else: + self._verify_jwt_in_request(token, "access", "websocket", True) + + if auth_from == "request": + if len(self._token_location) == 2: + if self._token and self.jwt_in_headers: + self._verify_jwt_in_request(self._token, "access", "headers", True) + if not self._token and self.jwt_in_cookies: + self._verify_and_get_jwt_in_cookies("access", self._request, fresh=True) + else: + if self.jwt_in_headers: + self._verify_jwt_in_request(self._token, "access", "headers", True) + if self.jwt_in_cookies: + self._verify_and_get_jwt_in_cookies("access", self._request, fresh=True) + + def get_raw_jwt(self, encoded_token: Optional[str] = None) -> Optional[Dict[str, Union[str, int, bool]]]: + """ + this will return the python dictionary which has all of the claims of the JWT that is accessing the endpoint. + If no JWT is currently present, return None instead + + :param encoded_token: The encoded JWT from parameter + :return: claims of JWT + """ + token = encoded_token or self._token + + if token: + return self._verified_token(token) + return None + + def get_jti(self, encoded_token: str) -> str: + """ + Returns the JTI (unique identifier) of an encoded JWT + + :param encoded_token: The encoded JWT from parameter + :return: string of JTI + """ + return self._verified_token(encoded_token)["jti"] + + def get_jwt_subject(self) -> Optional[Union[str, int]]: + """ + this will return the subject of the JWT that is accessing this endpoint. + If no JWT is present, `None` is returned instead. + + :return: sub of JWT + """ + if self._token: + return self._verified_token(self._token)["sub"] + return None diff --git a/antarest/fastapi_jwt_auth/config.py b/antarest/fastapi_jwt_auth/config.py new file mode 100644 index 0000000000..f04ace9cd7 --- /dev/null +++ b/antarest/fastapi_jwt_auth/config.py @@ -0,0 +1,90 @@ +import typing as t +from datetime import timedelta +from typing import List, Optional, Sequence, Union + +from pydantic import BaseModel, StrictBool, StrictInt, StrictStr, ValidationError, field_validator, model_validator + + +class LoadConfig(BaseModel): + authjwt_token_location: Optional[t.Set[StrictStr]] = {"headers"} + authjwt_secret_key: Optional[StrictStr] = None + authjwt_public_key: Optional[StrictStr] = None + authjwt_private_key: Optional[StrictStr] = None + authjwt_algorithm: Optional[StrictStr] = "HS256" + authjwt_decode_algorithms: Optional[List[StrictStr]] = None + authjwt_decode_leeway: Optional[Union[StrictInt, timedelta]] = 0 + authjwt_encode_issuer: Optional[StrictStr] = None + authjwt_decode_issuer: Optional[StrictStr] = None + authjwt_decode_audience: Optional[Union[StrictStr, Sequence[StrictStr]]] = None + authjwt_denylist_enabled: Optional[StrictBool] = False + authjwt_denylist_token_checks: Optional[t.Set[StrictStr]] = {"access", "refresh"} + authjwt_header_name: Optional[StrictStr] = "Authorization" + authjwt_header_type: Optional[StrictStr] = "Bearer" + authjwt_access_token_expires: Optional[Union[StrictBool, StrictInt, timedelta]] = timedelta(minutes=15) + authjwt_refresh_token_expires: Optional[Union[StrictBool, StrictInt, timedelta]] = timedelta(days=30) + # option for create cookies + authjwt_access_cookie_key: Optional[StrictStr] = "access_token_cookie" + authjwt_refresh_cookie_key: Optional[StrictStr] = "refresh_token_cookie" + authjwt_access_cookie_path: Optional[StrictStr] = "/" + authjwt_refresh_cookie_path: Optional[StrictStr] = "/" + authjwt_cookie_max_age: Optional[StrictInt] = None + authjwt_cookie_domain: Optional[StrictStr] = None + authjwt_cookie_secure: Optional[StrictBool] = False + authjwt_cookie_samesite: Optional[StrictStr] = None + # option for double submit csrf protection + authjwt_cookie_csrf_protect: Optional[StrictBool] = True + authjwt_access_csrf_cookie_key: Optional[StrictStr] = "csrf_access_token" + authjwt_refresh_csrf_cookie_key: Optional[StrictStr] = "csrf_refresh_token" + authjwt_access_csrf_cookie_path: Optional[StrictStr] = "/" + authjwt_refresh_csrf_cookie_path: Optional[StrictStr] = "/" + authjwt_access_csrf_header_name: Optional[StrictStr] = "X-CSRF-Token" + authjwt_refresh_csrf_header_name: Optional[StrictStr] = "X-CSRF-Token" + authjwt_csrf_methods: Optional[t.Set[StrictStr]] = {"POST", "PUT", "PATCH", "DELETE"} + + @field_validator("authjwt_access_token_expires") + def validate_access_token_expires( + cls, v: Optional[Union[StrictBool, StrictInt, timedelta]] + ) -> Optional[Union[StrictBool, StrictInt, timedelta]]: + if v is True: + raise ValueError("The 'authjwt_access_token_expires' only accept value False (bool)") + return v + + @field_validator("authjwt_refresh_token_expires") + def validate_refresh_token_expires( + cls, v: Optional[Union[StrictBool, StrictInt, timedelta]] + ) -> Optional[Union[StrictBool, StrictInt, timedelta]]: + if v is True: + raise ValueError("The 'authjwt_refresh_token_expires' only accept value False (bool)") + return v + + @field_validator("authjwt_cookie_samesite") + def validate_cookie_samesite(cls, v: Optional[StrictStr]) -> Optional[StrictStr]: + if v not in ["strict", "lax", "none"]: + raise ValueError("The 'authjwt_cookie_samesite' must be between 'strict', 'lax', 'none'") + return v + + @model_validator(mode="before") + def check_type_validity(cls, values: t.Dict[str, t.Any]) -> t.Dict[str, t.Any]: + for _ in values.get("authjwt_csrf_methods", []): + if _.upper() not in ["POST", "PUT", "PATCH", "DELETE"]: + raise ValidationError( + f"The 'authjwt_csrf_methods' must be between http request methods and it's {_.upper()}" + ) + + for _ in values.get("authjwt_cookie_samesite", []): + if _ not in ["strict", "lax", "none"]: + raise ValidationError( + f"The 'authjwt_cookie_samesite' must be between 'strict', 'lax', 'none' and it's {_}" + ) + + for _ in values.get("authjwt_token_location", []): + if _ not in ["headers", "cookies"]: + raise ValidationError( + f"The 'authjwt_token_location' must be between 'headers' or 'cookies' and it's {_}" + ) + + return values + + class Config: + str_min_length = 1 + str_strip_whitespace = True diff --git a/antarest/fastapi_jwt_auth/exceptions.py b/antarest/fastapi_jwt_auth/exceptions.py new file mode 100644 index 0000000000..1057571c0a --- /dev/null +++ b/antarest/fastapi_jwt_auth/exceptions.py @@ -0,0 +1,89 @@ +class AuthJWTException(Exception): + """ + Base except which all fastapi_jwt_auth errors extend + """ + + pass + + +class InvalidHeaderError(AuthJWTException): + """ + An error getting jwt in header or jwt header information from a request + """ + + def __init__(self, status_code: int, message: str): + self.status_code = status_code + self.message = message + + +class JWTDecodeError(AuthJWTException): + """ + An error decoding a JWT + """ + + def __init__(self, status_code: int, message: str): + self.status_code = status_code + self.message = message + + +class CSRFError(AuthJWTException): + """ + An error with CSRF protection + """ + + def __init__(self, status_code: int, message: str): + self.status_code = status_code + self.message = message + + +class MissingTokenError(AuthJWTException): + """ + Error raised when token not found + """ + + def __init__(self, status_code: int, message: str): + self.status_code = status_code + self.message = message + + +class RevokedTokenError(AuthJWTException): + """ + Error raised when a revoked token attempt to access a protected endpoint + """ + + def __init__(self, status_code: int, message: str): + self.status_code = status_code + self.message = message + + +class AccessTokenRequired(AuthJWTException): + """ + Error raised when a valid, non-access JWT attempt to access an endpoint + protected by jwt_required, jwt_optional, fresh_jwt_required + """ + + def __init__(self, status_code: int, message: str): + self.status_code = status_code + self.message = message + + +class RefreshTokenRequired(AuthJWTException): + """ + Error raised when a valid, non-refresh JWT attempt to access an endpoint + protected by jwt_refresh_token_required + """ + + def __init__(self, status_code: int, message: str): + self.status_code = status_code + self.message = message + + +class FreshTokenRequired(AuthJWTException): + """ + Error raised when a valid, non-fresh JWT attempt to access an endpoint + protected by fresh_jwt_required + """ + + def __init__(self, status_code: int, message: str): + self.status_code = status_code + self.message = message diff --git a/antarest/front.py b/antarest/front.py new file mode 100644 index 0000000000..8de0f05e82 --- /dev/null +++ b/antarest/front.py @@ -0,0 +1,139 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. +""" +This module contains the logic necessary to serve both +the front-end application and the backend HTTP application. + +This includes: + - serving static frontend files + - redirecting "not found" requests to home, which itself redirects to index.html + - providing the endpoint /config.json, which the front-end uses to know + what are the API and websocket prefixes +""" + +import re +from pathlib import Path +from typing import Any, Optional, Sequence + +from fastapi import FastAPI +from pydantic import BaseModel +from starlette.middleware.base import BaseHTTPMiddleware, DispatchFunction, RequestResponseEndpoint +from starlette.requests import Request +from starlette.responses import FileResponse +from starlette.staticfiles import StaticFiles +from starlette.types import ASGIApp + +from antarest.core.utils.string import to_camel_case + + +class RedirectMiddleware(BaseHTTPMiddleware): + """ + Middleware that rewrites the URL path to "/" for incoming requests + that do not match the known end points. This is useful for redirecting requests + to the main page of a ReactJS application when the user refreshes the browser. + """ + + def __init__( + self, + app: ASGIApp, + dispatch: Optional[DispatchFunction] = None, + route_paths: Sequence[str] = (), + ) -> None: + """ + Initializes an instance of the URLRewriterMiddleware. + + Args: + app: The ASGI application to which the middleware is applied. + dispatch: The dispatch function to use. + route_paths: The known route paths of the application. + Requests that do not match any of these paths will be rewritten to the root path. + + Note: + The `route_paths` should contain all the known endpoints of the application. + """ + dispatch = self.dispatch if dispatch is None else dispatch + super().__init__(app, dispatch) + self.known_prefixes = {re.findall(r"/(?:(?!/).)*", p)[0] for p in route_paths if p != "/"} + + async def dispatch(self, request: Request, call_next: RequestResponseEndpoint) -> Any: + """ + Intercepts the incoming request and rewrites the URL path if necessary. + Passes the modified or original request to the next middleware or endpoint handler. + """ + url_path = request.scope["path"] + if url_path in {"", "/"}: + pass + elif not any(url_path.startswith(ep) for ep in self.known_prefixes): + request.scope["path"] = "/" + return await call_next(request) + + +class BackEndConfig(BaseModel): + """ + Configuration about backend URLs served to the frontend. + """ + + rest_endpoint: str + ws_endpoint: str + + class Config: + populate_by_name = True + alias_generator = to_camel_case + + +def create_backend_config(api_prefix: str) -> BackEndConfig: + if not api_prefix.startswith("/"): + api_prefix = "/" + api_prefix + return BackEndConfig(rest_endpoint=f"{api_prefix}", ws_endpoint=f"{api_prefix}/ws") + + +def add_front_app(application: FastAPI, resources_dir: Path, api_prefix: str) -> None: + """ + This functions adds the logic necessary to serve both + the front-end application and the backend HTTP application. + + This includes: + - serving static frontend files + - redirecting "not found" requests to home, which itself redirects to index.html + - providing the endpoint /config.json, which the front-end uses to know + what are the API and websocket prefixes + """ + backend_config = create_backend_config(api_prefix) + + front_app_dir = resources_dir / "webapp" + + # Serve front-end files + application.mount( + "/static", + StaticFiles(directory=front_app_dir), + name="static", + ) + + # Redirect home to index.html + @application.get("/", include_in_schema=False) + def home(request: Request) -> Any: + return FileResponse(front_app_dir / "index.html", 200) + + # Serve config for the front-end at /config.json + @application.get("/config.json", include_in_schema=False) + def get_api_paths_config(request: Request) -> BackEndConfig: + return backend_config + + # When the web application is running in Desktop mode, the ReactJS web app + # is served at the `/static` entry point. Any requests that are not API + # requests should be redirected to the `index.html` file, which will handle + # the route provided by the URL. + route_paths = [r.path for r in application.routes] # type: ignore + application.add_middleware( + RedirectMiddleware, + route_paths=route_paths, + ) diff --git a/antarest/gui.py b/antarest/gui.py index 399b0a2518..f36904a060 100644 --- a/antarest/gui.py +++ b/antarest/gui.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import multiprocessing import platform @@ -6,16 +18,8 @@ from multiprocessing import Process from pathlib import Path -try: - # `httpx` is a modern alternative to the `requests` library - import httpx as requests - from httpx import ConnectError as ConnectionError -except ImportError: - # noinspection PyUnresolvedReferences, PyPackageRequirements - import requests - from requests import ConnectionError - -import uvicorn # type: ignore +import httpx +import uvicorn from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QAction, QApplication, QMenu, QSystemTrayIcon @@ -90,8 +94,8 @@ def main() -> None: ) server.start() for _ in range(30, 0, -1): - with contextlib.suppress(ConnectionError): - res = requests.get("http://localhost:8080") + with contextlib.suppress(httpx.ConnectError): + res = httpx.get("http://localhost:8080") if res.status_code == 200: break time.sleep(1) diff --git a/antarest/launcher/__init__.py b/antarest/launcher/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/launcher/__init__.py +++ b/antarest/launcher/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/launcher/adapters/__init__.py b/antarest/launcher/adapters/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/launcher/adapters/__init__.py +++ b/antarest/launcher/adapters/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/launcher/adapters/abstractlauncher.py b/antarest/launcher/adapters/abstractlauncher.py index 121f952899..4b845f8de0 100644 --- a/antarest/launcher/adapters/abstractlauncher.py +++ b/antarest/launcher/adapters/abstractlauncher.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os from abc import ABC, abstractmethod from pathlib import Path @@ -88,7 +100,7 @@ def update_log(log_line: str) -> None: ) launch_progress_json = self.cache.get(id=f"Launch_Progress_{job_id}") or {} - launch_progress_dto = LaunchProgressDTO.parse_obj(launch_progress_json) + launch_progress_dto = LaunchProgressDTO.model_validate(launch_progress_json) if launch_progress_dto.parse_log_lines(log_line.splitlines()): self.event_bus.push( Event( @@ -102,6 +114,6 @@ def update_log(log_line: str) -> None: channel=EventChannelDirectory.JOB_STATUS + job_id, ) ) - self.cache.put(f"Launch_Progress_{job_id}", launch_progress_dto.dict()) + self.cache.put(f"Launch_Progress_{job_id}", launch_progress_dto.model_dump()) return update_log diff --git a/antarest/launcher/adapters/factory_launcher.py b/antarest/launcher/adapters/factory_launcher.py index 1ff1944635..a7b3fcfdd2 100644 --- a/antarest/launcher/adapters/factory_launcher.py +++ b/antarest/launcher/adapters/factory_launcher.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import Dict diff --git a/antarest/launcher/adapters/local_launcher/__init__.py b/antarest/launcher/adapters/local_launcher/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/launcher/adapters/local_launcher/__init__.py +++ b/antarest/launcher/adapters/local_launcher/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/launcher/adapters/local_launcher/local_launcher.py b/antarest/launcher/adapters/local_launcher/local_launcher.py index 8ee598985b..4db8beb5ae 100644 --- a/antarest/launcher/adapters/local_launcher/local_launcher.py +++ b/antarest/launcher/adapters/local_launcher/local_launcher.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import logging import shutil diff --git a/antarest/launcher/adapters/log_manager.py b/antarest/launcher/adapters/log_manager.py index eeca586f32..f85810f1ae 100644 --- a/antarest/launcher/adapters/log_manager.py +++ b/antarest/launcher/adapters/log_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import io import logging diff --git a/antarest/launcher/adapters/log_parser.py b/antarest/launcher/adapters/log_parser.py index 0605e8fced..efd73d1b70 100644 --- a/antarest/launcher/adapters/log_parser.py +++ b/antarest/launcher/adapters/log_parser.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import functools import re import typing as t diff --git a/antarest/launcher/adapters/slurm_launcher/__init__.py b/antarest/launcher/adapters/slurm_launcher/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/launcher/adapters/slurm_launcher/__init__.py +++ b/antarest/launcher/adapters/slurm_launcher/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/launcher/adapters/slurm_launcher/slurm_launcher.py b/antarest/launcher/adapters/slurm_launcher/slurm_launcher.py index 92e2755408..74132b89f0 100644 --- a/antarest/launcher/adapters/slurm_launcher/slurm_launcher.py +++ b/antarest/launcher/adapters/slurm_launcher/slurm_launcher.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import argparse import logging import os diff --git a/antarest/launcher/extensions/__init__.py b/antarest/launcher/extensions/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/launcher/extensions/__init__.py +++ b/antarest/launcher/extensions/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/launcher/extensions/adequacy_patch/__init__.py b/antarest/launcher/extensions/adequacy_patch/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/launcher/extensions/adequacy_patch/__init__.py +++ b/antarest/launcher/extensions/adequacy_patch/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/launcher/extensions/adequacy_patch/extension.py b/antarest/launcher/extensions/adequacy_patch/extension.py index d6499375e8..20cd3407cd 100644 --- a/antarest/launcher/extensions/adequacy_patch/extension.py +++ b/antarest/launcher/extensions/adequacy_patch/extension.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import shutil from pathlib import Path diff --git a/antarest/launcher/extensions/interface.py b/antarest/launcher/extensions/interface.py index 5401a2a6ae..c7a3b3c39a 100644 --- a/antarest/launcher/extensions/interface.py +++ b/antarest/launcher/extensions/interface.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from abc import ABC, abstractmethod from pathlib import Path from typing import Any diff --git a/antarest/launcher/main.py b/antarest/launcher/main.py index 5f47bfe467..1916b9607b 100644 --- a/antarest/launcher/main.py +++ b/antarest/launcher/main.py @@ -1,7 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Optional -from fastapi import FastAPI +from fastapi import APIRouter, FastAPI +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.core.filetransfer.service import FileTransferManager from antarest.core.interfaces.cache import ICache @@ -14,7 +27,7 @@ def build_launcher( - application: Optional[FastAPI], + app_ctxt: Optional[AppBuildContext], config: Config, study_service: StudyService, file_transfer_manager: FileTransferManager, @@ -37,7 +50,7 @@ def build_launcher( cache=cache, ) - if service_launcher and application: - application.include_router(create_launcher_api(service_launcher, config)) + if service_launcher and app_ctxt: + app_ctxt.api_root.include_router(create_launcher_api(service_launcher, config)) return service_launcher diff --git a/antarest/launcher/model.py b/antarest/launcher/model.py index 3bd3427a07..d80400a4ba 100644 --- a/antarest/launcher/model.py +++ b/antarest/launcher/model.py @@ -1,5 +1,16 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import enum -import json import typing as t from datetime import datetime @@ -8,12 +19,13 @@ from sqlalchemy.orm import relationship # type: ignore from antarest.core.persistence import Base -from antarest.core.utils.string import to_camel_case +from antarest.core.serialization import from_json from antarest.login.model import Identity, UserInfo +from antarest.study.business.all_optional_meta import camel_case_model class XpansionParametersDTO(BaseModel): - output_id: t.Optional[str] + output_id: t.Optional[str] = None sensitivity_mode: bool = False enabled: bool = True @@ -42,7 +54,7 @@ def from_launcher_params(cls, params: t.Optional[str]) -> "LauncherParametersDTO """ if params is None: return cls() - return cls.parse_obj(json.loads(params)) + return cls.model_validate(from_json(params)) class LogType(str, enum.Enum): @@ -113,7 +125,7 @@ class JobResultDTO(BaseModel): class Config: @staticmethod - def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: + def json_schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: schema["example"] = JobResultDTO( id="b2a9f6a7-7f8f-4f7a-9a8b-1f9b4c5d6e7f", study_id="b2a9f6a7-7f8f-4f7a-9a8b-1f9b4c5d6e7f", @@ -127,7 +139,7 @@ def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: exit_code=0, solver_stats="time: 1651s, call_count: 1, optimization_issues: []", owner=UserInfo(id=0o007, name="James BOND"), - ) + ).model_dump() class JobLog(Base): # type: ignore @@ -228,13 +240,8 @@ class LauncherEnginesDTO(BaseModel): engines: t.List[str] -class LauncherLoadDTO( - BaseModel, - extra="forbid", - validate_assignment=True, - allow_population_by_field_name=True, - alias_generator=to_camel_case, -): +@camel_case_model +class LauncherLoadDTO(BaseModel, extra="forbid", validate_assignment=True, populate_by_name=True): """ DTO representing the load of the SLURM cluster or local machine. diff --git a/antarest/launcher/repository.py b/antarest/launcher/repository.py index e6ad782a38..21126aac1d 100644 --- a/antarest/launcher/repository.py +++ b/antarest/launcher/repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import List, Optional diff --git a/antarest/launcher/service.py b/antarest/launcher/service.py index d3a439e17c..2dad1aef00 100644 --- a/antarest/launcher/service.py +++ b/antarest/launcher/service.py @@ -1,8 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import functools import logging import os import shutil -from datetime import datetime, timedelta +from datetime import datetime from http import HTTPStatus from pathlib import Path from typing import Dict, List, Optional, cast @@ -10,7 +22,7 @@ from fastapi import HTTPException -from antarest.core.config import Config, NbCoresConfig +from antarest.core.config import Config, Launcher, NbCoresConfig from antarest.core.exceptions import StudyNotFoundError from antarest.core.filetransfer.model import FileDownloadTaskDTO from antarest.core.filetransfer.service import FileTransferManager @@ -59,7 +71,6 @@ def __init__(self, engine: str): ) -ORPHAN_JOBS_VISIBILITY_THRESHOLD = 10 # days LAUNCHER_PARAM_NAME_SUFFIX = "output_suffix" EXECUTION_INFO_FILE = "execution_info.ini" @@ -103,7 +114,7 @@ def _init_extensions(self) -> Dict[str, ILauncherExtension]: def get_launchers(self) -> List[str]: return list(self.launchers.keys()) - def get_nb_cores(self, launcher: str) -> NbCoresConfig: + def get_nb_cores(self, launcher: Launcher) -> NbCoresConfig: """ Retrieve the configuration of the launcher's nb of cores. @@ -112,9 +123,6 @@ def get_nb_cores(self, launcher: str) -> NbCoresConfig: Returns: Number of cores of the launcher - - Raises: - InvalidConfigurationError: if the launcher configuration is not available """ return self.config.launcher.get_nb_cores(launcher) @@ -175,7 +183,7 @@ def update( self.event_bus.push( Event( type=EventType.STUDY_JOB_COMPLETED if final_status else EventType.STUDY_JOB_STATUS_UPDATE, - payload=job_result.to_dto().dict(), + payload=job_result.to_dto().model_dump(), permissions=PermissionInfo(public_mode=PublicMode.READ), channel=EventChannelDirectory.JOB_STATUS + job_result.id, ) @@ -236,7 +244,7 @@ def run_study( study_id=study_uuid, job_status=JobStatus.PENDING, launcher=launcher, - launcher_params=launcher_parameters.json() if launcher_parameters else None, + launcher_params=launcher_parameters.model_dump_json() if launcher_parameters else None, owner_id=(owner_id or None), ) self.job_result_repository.save(job_status) @@ -252,7 +260,7 @@ def run_study( self.event_bus.push( Event( type=EventType.STUDY_JOB_STARTED, - payload=job_status.to_dto().dict(), + payload=job_status.to_dto().model_dump(), permissions=PermissionInfo.from_study(study_info), ) ) @@ -293,7 +301,7 @@ def kill_job(self, job_id: str, params: RequestParameters) -> JobResult: self.event_bus.push( Event( type=EventType.STUDY_JOB_CANCELLED, - payload=job_status.to_dto().dict(), + payload=job_status.to_dto().model_dump(), permissions=PermissionInfo.from_study(study), channel=EventChannelDirectory.JOB_STATUS + job_result.id, ) @@ -305,7 +313,6 @@ def _filter_from_user_permission(self, job_results: List[JobResult], user: Optio if not user: return [] - orphan_visibility_threshold = datetime.utcnow() - timedelta(days=ORPHAN_JOBS_VISIBILITY_THRESHOLD) allowed_job_results = [] study_ids = [job_result.study_id for job_result in job_results] @@ -330,9 +337,7 @@ def _filter_from_user_permission(self, job_results: List[JobResult], user: Optio raising=False, ): allowed_job_results.append(job_result) - elif ( - user and (user.is_site_admin() or user.is_admin_token()) - ) or job_result.creation_date >= orphan_visibility_threshold: + elif user and (user.is_site_admin() or user.is_admin_token()): allowed_job_results.append(job_result) return allowed_job_results @@ -710,5 +715,7 @@ def get_launch_progress(self, job_id: str, params: RequestParameters) -> float: if launcher is None: raise ValueError(f"Job {job_id} has no launcher") - launch_progress_json = self.launchers[launcher].cache.get(id=f"Launch_Progress_{job_id}") or {"progress": 0} + launch_progress_json: Dict[str, float] = self.launchers[launcher].cache.get(id=f"Launch_Progress_{job_id}") or { + "progress": 0 + } return launch_progress_json.get("progress", 0) diff --git a/antarest/launcher/ssh_client.py b/antarest/launcher/ssh_client.py index e52cb0072c..175c8a739b 100644 --- a/antarest/launcher/ssh_client.py +++ b/antarest/launcher/ssh_client.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import shlex import socket @@ -31,7 +43,7 @@ class SlurmError(Exception): def execute_command(ssh_config: SSHConfigDTO, args: List[str]) -> Any: command = " ".join(args) try: - with ssh_client(ssh_config) as client: # type: ignore + with ssh_client(ssh_config) as client: # type: paramiko.SSHClient _, stdout, stderr = client.exec_command(command, timeout=10) output = stdout.read().decode("utf-8").strip() error = stderr.read().decode("utf-8").strip() diff --git a/antarest/launcher/ssh_config.py b/antarest/launcher/ssh_config.py index 1fa4a4393c..5238e07608 100644 --- a/antarest/launcher/ssh_config.py +++ b/antarest/launcher/ssh_config.py @@ -1,8 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import pathlib from typing import Any, Dict, Optional import paramiko -from pydantic import BaseModel, root_validator +from pydantic import BaseModel, model_validator class SSHConfigDTO(BaseModel): @@ -14,7 +26,7 @@ class SSHConfigDTO(BaseModel): key_password: Optional[str] = "" password: Optional[str] = "" - @root_validator() + @model_validator(mode="before") def validate_connection_information(cls, values: Dict[str, Any]) -> Dict[str, Any]: if "private_key_file" not in values and "password" not in values: raise paramiko.AuthenticationException("SSH config needs at least a private key or a password") diff --git a/antarest/launcher/web.py b/antarest/launcher/web.py index 9635c664f1..c07261384a 100644 --- a/antarest/launcher/web.py +++ b/antarest/launcher/web.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import http import logging from typing import Any, Dict, List, Optional @@ -6,7 +18,7 @@ from fastapi import APIRouter, Depends, Query from fastapi.exceptions import HTTPException -from antarest.core.config import Config, InvalidConfigurationError +from antarest.core.config import Config, InvalidConfigurationError, Launcher from antarest.core.filetransfer.model import FileDownloadTaskDTO from antarest.core.jwt import JWTUser from antarest.core.requests import RequestParameters @@ -42,8 +54,8 @@ def __init__(self, solver: str) -> None: LauncherQuery = Query( - "default", - examples={ + default=Launcher.DEFAULT, + openapi_examples={ "Default launcher": { "description": "Default solver (auto-detected)", "value": "default", @@ -233,7 +245,7 @@ def get_load() -> LauncherLoadDTO: summary="Get list of supported solver versions", response_model=List[str], ) - def get_solver_versions(solver: str = LauncherQuery) -> List[str]: + def get_solver_versions(solver: Launcher = Launcher.DEFAULT) -> List[str]: """ Get list of supported solver versions defined in the configuration. @@ -241,8 +253,6 @@ def get_solver_versions(solver: str = LauncherQuery) -> List[str]: - `solver`: name of the configuration to read: "default", "slurm" or "local". """ logger.info(f"Fetching the list of solver versions for the '{solver}' configuration") - if solver not in {"default", "slurm", "local"}: - raise UnknownSolverConfig(solver) return service.get_solver_versions(solver) # noinspection SpellCheckingInspection @@ -252,7 +262,7 @@ def get_solver_versions(solver: str = LauncherQuery) -> List[str]: summary="Retrieving Min, Default, and Max Core Count", response_model=Dict[str, int], ) - def get_nb_cores(launcher: str = LauncherQuery) -> Dict[str, int]: + def get_nb_cores(launcher: Launcher = Launcher.DEFAULT) -> Dict[str, int]: """ Retrieve the numer of cores of the launcher. @@ -277,7 +287,7 @@ def get_nb_cores(launcher: str = LauncherQuery) -> Dict[str, int]: tags=[APITag.launcher], summary="Retrieve the time limit for a job (in hours)", ) - def get_time_limit(launcher: str = LauncherQuery) -> Dict[str, int]: + def get_time_limit(launcher: Launcher = LauncherQuery) -> Dict[str, int]: """ Retrieve the time limit for a job (in hours) of the given launcher: "local" or "slurm". diff --git a/antarest/login/__init__.py b/antarest/login/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/login/__init__.py +++ b/antarest/login/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/login/auth.py b/antarest/login/auth.py index cc7638b728..f86ca5903b 100644 --- a/antarest/login/auth.py +++ b/antarest/login/auth.py @@ -1,16 +1,28 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from datetime import timedelta from typing import Any, Callable, Coroutine, Dict, Optional, Tuple, Union from fastapi import Depends -from fastapi_jwt_auth import AuthJWT # type: ignore from pydantic import BaseModel from ratelimit.types import Scope # type: ignore from starlette.requests import Request from antarest.core.config import Config from antarest.core.jwt import DEFAULT_ADMIN_USER, JWTUser +from antarest.core.serialization import from_json +from antarest.fastapi_jwt_auth import AuthJWT logger = logging.getLogger(__name__) @@ -54,14 +66,14 @@ def get_current_user(self, auth_jwt: AuthJWT = Depends()) -> JWTUser: auth_jwt.jwt_required() - user = JWTUser.parse_obj(json.loads(auth_jwt.get_jwt_subject())) + user = JWTUser.model_validate(from_json(auth_jwt.get_jwt_subject())) return user @staticmethod def get_user_from_token(token: str, jwt_manager: AuthJWT) -> Optional[JWTUser]: try: token_data = jwt_manager._verified_token(token) - return JWTUser.parse_obj(json.loads(token_data["sub"])) + return JWTUser.model_validate(from_json(token_data["sub"])) except Exception as e: logger.debug("Failed to retrieve user from token", exc_info=e) return None diff --git a/antarest/login/ldap.py b/antarest/login/ldap.py index d558238288..1635efe09d 100644 --- a/antarest/login/ldap.py +++ b/antarest/login/ldap.py @@ -1,13 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from dataclasses import dataclass from typing import Dict, List, Optional -try: - # `httpx` is a modern alternative to the `requests` library - import httpx as requests -except ImportError: - # noinspection PyUnresolvedReferences, PyPackageRequirements - import requests +import httpx from antarest.core.config import Config from antarest.core.model import JSON @@ -98,7 +105,7 @@ def _fetch(self, name: str, password: str) -> Optional[ExternalUser]: auth = AuthDTO(user=name, password=password) try: - res = requests.post(url=f"{self.url}/auth", json=auth.to_json()) + res = httpx.post(url=f"{self.url}/auth", json=auth.to_json()) except Exception as e: logger.warning( "Failed to retrieve user from external auth service", diff --git a/antarest/login/main.py b/antarest/login/main.py index d87a082abd..ac6b2956c9 100644 --- a/antarest/login/main.py +++ b/antarest/login/main.py @@ -1,16 +1,28 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from http import HTTPStatus from typing import Any, Optional -from fastapi import FastAPI -from fastapi_jwt_auth import AuthJWT # type: ignore -from fastapi_jwt_auth.exceptions import AuthJWTException # type: ignore from starlette.requests import Request from starlette.responses import JSONResponse +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.core.interfaces.eventbus import DummyEventBusService, IEventBus +from antarest.core.serialization import from_json from antarest.core.utils.fastapi_sqlalchemy import db +from antarest.fastapi_jwt_auth import AuthJWT +from antarest.fastapi_jwt_auth.exceptions import AuthJWTException from antarest.login.ldap import LdapService from antarest.login.repository import BotRepository, GroupRepository, RoleRepository, UserLdapRepository, UserRepository from antarest.login.service import LoginService @@ -18,7 +30,7 @@ def build_login( - application: Optional[FastAPI], + app_ctxt: Optional[AppBuildContext], config: Config, service: Optional[LoginService] = None, event_bus: IEventBus = DummyEventBusService(), @@ -27,7 +39,7 @@ def build_login( Login module linking dependency Args: - application: flask application + app_ctxt: application config: server configuration service: used by testing to inject mock. Let None to use true instantiation event_bus: used by testing to inject mock. Let None to use true instantiation @@ -54,9 +66,9 @@ def build_login( event_bus=event_bus, ) - if application: + if app_ctxt: - @application.exception_handler(AuthJWTException) + @app_ctxt.app.exception_handler(AuthJWTException) def authjwt_exception_handler(request: Request, exc: AuthJWTException) -> Any: return JSONResponse( status_code=HTTPStatus.UNAUTHORIZED, @@ -65,12 +77,12 @@ def authjwt_exception_handler(request: Request, exc: AuthJWTException) -> Any: @AuthJWT.token_in_denylist_loader # type: ignore def check_if_token_is_revoked(decrypted_token: Any) -> bool: - subject = json.loads(decrypted_token["sub"]) + subject = from_json(decrypted_token["sub"]) user_id = subject["id"] token_type = subject["type"] with db(): return token_type == "bots" and service is not None and not service.exists_bot(user_id) - if application: - application.include_router(create_login_api(service, config)) + if app_ctxt: + app_ctxt.api_root.include_router(create_login_api(service, config)) return service diff --git a/antarest/login/model.py b/antarest/login/model.py index 097de6d75e..4f85763c9b 100644 --- a/antarest/login/model.py +++ b/antarest/login/model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import typing as t import uuid diff --git a/antarest/login/repository.py b/antarest/login/repository.py index d70fa57e13..d37c75a30d 100644 --- a/antarest/login/repository.py +++ b/antarest/login/repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import List, Optional diff --git a/antarest/login/service.py b/antarest/login/service.py index 55af0ab12c..d3103a6dfc 100644 --- a/antarest/login/service.py +++ b/antarest/login/service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import List, Optional, Union @@ -473,7 +485,7 @@ def authenticate(self, name: str, pwd: str) -> Optional[JWTUser]: """ intern: Optional[User] = self.users.get_by_name(name) - if intern and intern.password.check(pwd): # type: ignore + if intern and intern.password.check(pwd): logger.info("successful login from intern user %s", name) return self.get_jwt(intern.id) diff --git a/antarest/login/web.py b/antarest/login/web.py index 801325df7c..5bc85c62a1 100644 --- a/antarest/login/web.py +++ b/antarest/login/web.py @@ -1,10 +1,20 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from datetime import timedelta from typing import Any, List, Optional, Union from fastapi import APIRouter, Depends, HTTPException -from fastapi_jwt_auth import AuthJWT # type: ignore from markupsafe import escape from pydantic import BaseModel @@ -12,7 +22,9 @@ from antarest.core.jwt import JWTGroup, JWTUser from antarest.core.requests import RequestParameters, UserHasNotPermissionError from antarest.core.roles import RoleType +from antarest.core.serialization import from_json from antarest.core.utils.web import APITag +from antarest.fastapi_jwt_auth import AuthJWT from antarest.login.auth import Auth from antarest.login.model import ( BotCreateDTO, @@ -55,8 +67,8 @@ def create_login_api(service: LoginService, config: Config) -> APIRouter: auth = Auth(config) def generate_tokens(user: JWTUser, jwt_manager: AuthJWT, expire: Optional[timedelta] = None) -> CredentialsDTO: - access_token = jwt_manager.create_access_token(subject=user.json(), expires_time=expire) - refresh_token = jwt_manager.create_refresh_token(subject=user.json()) + access_token = jwt_manager.create_access_token(subject=user.model_dump_json(), expires_time=expire) + refresh_token = jwt_manager.create_refresh_token(subject=user.model_dump_json()) return CredentialsDTO( user=user.id, access_token=access_token.decode() if isinstance(access_token, bytes) else access_token, @@ -91,7 +103,7 @@ def login( ) def refresh(jwt_manager: AuthJWT = Depends()) -> Any: jwt_manager.jwt_refresh_token_required() - identity = json.loads(jwt_manager.get_jwt_subject()) + identity = from_json(jwt_manager.get_jwt_subject()) logger.debug(f"Refreshing access token for {identity['id']}") user = service.get_jwt(identity["id"]) if user: @@ -114,11 +126,7 @@ def users_get_all( params = RequestParameters(user=current_user) return service.get_all_users(params, details) - @bp.get( - "/users/{id}", - tags=[APITag.users], - response_model=Union[IdentityDTO, UserInfo], # type: ignore - ) + @bp.get("/users/{id}", tags=[APITag.users], response_model=Union[IdentityDTO, UserInfo]) def users_get_id( id: int, details: bool = False, @@ -192,11 +200,7 @@ def groups_get_all( params = RequestParameters(user=current_user) return service.get_all_groups(params, details) - @bp.get( - "/groups/{id}", - tags=[APITag.users], - response_model=Union[GroupDetailDTO, GroupDTO], # type: ignore - ) + @bp.get("/groups/{id}", tags=[APITag.users], response_model=Union[GroupDetailDTO, GroupDTO]) def groups_get_id( id: str, details: bool = False, @@ -314,11 +318,7 @@ def bots_create( tokens = generate_tokens(jwt, jwt_manager, expire=timedelta(days=368 * 200)) return tokens.access_token - @bp.get( - "/bots/{id}", - tags=[APITag.users], - response_model=Union[BotIdentityDTO, BotDTO], # type: ignore - ) + @bp.get("/bots/{id}", tags=[APITag.users], response_model=Union[BotIdentityDTO, BotDTO]) def get_bot( id: int, verbose: Optional[int] = None, diff --git a/antarest/main.py b/antarest/main.py index 3973c79ace..e521124447 100644 --- a/antarest/main.py +++ b/antarest/main.py @@ -1,29 +1,37 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import argparse import copy import logging -import re +from contextlib import asynccontextmanager from pathlib import Path -from typing import Any, Dict, Optional, Sequence, Tuple, cast +from typing import Any, AsyncGenerator, Dict, Optional, Tuple, cast import pydantic -import uvicorn # type: ignore -import uvicorn.config # type: ignore -from fastapi import FastAPI, HTTPException +import uvicorn +import uvicorn.config +from fastapi import APIRouter, FastAPI, HTTPException from fastapi.encoders import jsonable_encoder from fastapi.exceptions import RequestValidationError -from fastapi_jwt_auth import AuthJWT # type: ignore from ratelimit import RateLimitMiddleware # type: ignore from ratelimit.backends.redis import RedisBackend # type: ignore from ratelimit.backends.simple import MemoryBackend # type: ignore -from starlette.middleware.base import BaseHTTPMiddleware, DispatchFunction, RequestResponseEndpoint from starlette.middleware.cors import CORSMiddleware from starlette.requests import Request from starlette.responses import JSONResponse -from starlette.staticfiles import StaticFiles -from starlette.templating import Jinja2Templates -from starlette.types import ASGIApp from antarest import __version__ +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.core.core_blueprint import create_utils_routes from antarest.core.filesystem_blueprint import create_file_system_blueprint @@ -34,14 +42,16 @@ from antarest.core.utils.fastapi_sqlalchemy import DBSessionMiddleware from antarest.core.utils.utils import get_local_path from antarest.core.utils.web import tags_metadata +from antarest.fastapi_jwt_auth import AuthJWT +from antarest.front import add_front_app from antarest.login.auth import Auth, JwtSettings from antarest.login.model import init_admin_user from antarest.matrixstore.matrix_garbage_collector import MatrixGarbageCollector +from antarest.service_creator import SESSION_ARGS, Module, create_services, init_db_engine from antarest.singleton_services import start_all_services from antarest.study.storage.auto_archive_service import AutoArchiveService from antarest.study.storage.rawstudy.watcher import Watcher from antarest.tools.admin_lib import clean_locks -from antarest.utils import SESSION_ARGS, Module, create_services, init_db_engine logger = logging.getLogger(__name__) @@ -177,55 +187,6 @@ def parse_arguments() -> argparse.Namespace: return parser.parse_args() -class URLRewriterMiddleware(BaseHTTPMiddleware): - """ - Middleware that rewrites the URL path to "/" (root path) for incoming requests - that do not match the known end points. This is useful for redirecting requests - to the main page of a ReactJS application when the user refreshes the browser. - """ - - def __init__( - self, - app: ASGIApp, - dispatch: Optional[DispatchFunction] = None, - root_path: str = "", - route_paths: Sequence[str] = (), - ) -> None: - """ - Initializes an instance of the URLRewriterMiddleware. - - Args: - app: The ASGI application to which the middleware is applied. - dispatch: The dispatch function to use. - root_path: The root path of the application. - The URL path will be rewritten relative to this root path. - route_paths: The known route paths of the application. - Requests that do not match any of these paths will be rewritten to the root path. - - Note: - The `root_path` can be set to a specific component of the URL path, such as "api". - The `route_paths` should contain all the known endpoints of the application. - """ - dispatch = self.dispatch if dispatch is None else dispatch - super().__init__(app, dispatch) - self.root_path = f"/{root_path}" if root_path else "" - self.known_prefixes = {re.findall(r"/(?:(?!/).)*", p)[0] for p in route_paths if p != "/"} - - async def dispatch(self, request: Request, call_next: RequestResponseEndpoint) -> Any: - """ - Intercepts the incoming request and rewrites the URL path if necessary. - Passes the modified or original request to the next middleware or endpoint handler. - """ - url_path = request.scope["path"] - if url_path in {"", "/"}: - pass - elif self.root_path and url_path.startswith(self.root_path): - request.scope["path"] = url_path[len(self.root_path) :] - elif not any(url_path.startswith(ep) for ep in self.known_prefixes): - request.scope["path"] = "/" - return await call_next(request) - - def fastapi_app( config_file: Path, resource_path: Optional[Path] = None, @@ -238,46 +199,39 @@ def fastapi_app( logger.info("Initiating application") + @asynccontextmanager + async def set_default_executor(app: FastAPI) -> AsyncGenerator[None, None]: + import asyncio + from concurrent.futures import ThreadPoolExecutor + + loop = asyncio.get_running_loop() + loop.set_default_executor(ThreadPoolExecutor(max_workers=config.server.worker_threadpool_size)) + yield + application = FastAPI( title="AntaREST", version=__version__, docs_url=None, root_path=config.root_path, openapi_tags=tags_metadata, + lifespan=set_default_executor, + openapi_url=f"{config.api_prefix}/openapi.json", ) + api_root = APIRouter(prefix=config.api_prefix) + + app_ctxt = AppBuildContext(application, api_root) + # Database engine = init_db_engine(config_file, config, auto_upgrade_db) application.add_middleware(DBSessionMiddleware, custom_engine=engine, session_args=SESSION_ARGS) + # Since Starlette Version 0.24.0, the middlewares are lazily build inside this function + # But we need to instantiate this middleware as it's needed for the study service. + # So we manually instantiate it here. + DBSessionMiddleware(None, custom_engine=engine, session_args=cast(Dict[str, bool], SESSION_ARGS)) application.add_middleware(LoggingMiddleware) - if mount_front: - application.mount( - "/static", - StaticFiles(directory=str(res / "webapp")), - name="static", - ) - templates = Jinja2Templates(directory=str(res / "templates")) - - @application.get("/", include_in_schema=False) - def home(request: Request) -> Any: - return templates.TemplateResponse("index.html", {"request": request}) - - else: - # noinspection PyUnusedLocal - @application.get("/", include_in_schema=False) - def home(request: Request) -> Any: - return "" - - @application.on_event("startup") - def set_default_executor() -> None: - import asyncio - from concurrent.futures import ThreadPoolExecutor - - loop = asyncio.get_running_loop() - loop.set_default_executor(ThreadPoolExecutor(max_workers=config.server.worker_threadpool_size)) - # TODO move that elsewhere @AuthJWT.load_config # type: ignore def get_config() -> JwtSettings: @@ -296,8 +250,8 @@ def get_config() -> JwtSettings: allow_methods=["*"], allow_headers=["*"], ) - application.include_router(create_utils_routes(config)) - application.include_router(create_file_system_blueprint(config)) + api_root.include_router(create_utils_routes(config)) + api_root.include_router(create_file_system_blueprint(config)) # noinspection PyUnusedLocal @application.exception_handler(HTTPException) @@ -407,19 +361,9 @@ def handle_all_exception(request: Request, exc: Exception) -> Any: ) init_admin_user(engine=engine, session_args=SESSION_ARGS, admin_password=config.security.admin_pwd) - services = create_services(config, application) + services = create_services(config, app_ctxt) - if mount_front: - # When the web application is running in Desktop mode, the ReactJS web app - # is served at the `/static` entry point. Any requests that are not API - # requests should be redirected to the `index.html` file, which will handle - # the route provided by the URL. - route_paths = [r.path for r in application.routes] # type: ignore - application.add_middleware( - URLRewriterMiddleware, - root_path=application.root_path, - route_paths=route_paths, - ) + application.include_router(api_root) if config.server.services and Module.WATCHER.value in config.server.services: watcher = cast(Watcher, services["watcher"]) @@ -434,6 +378,15 @@ def handle_all_exception(request: Request, exc: Exception) -> Any: auto_archiver.start() customize_openapi(application) + + if mount_front: + add_front_app(application, res, config.api_prefix) + else: + # noinspection PyUnusedLocal + @application.get("/", include_in_schema=False) + def home(request: Request) -> Any: + return "" + cancel_orphan_tasks(engine=engine, session_args=SESSION_ARGS) return application, services diff --git a/antarest/matrixstore/__init__.py b/antarest/matrixstore/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/matrixstore/__init__.py +++ b/antarest/matrixstore/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/matrixstore/exceptions.py b/antarest/matrixstore/exceptions.py index 305cf0539c..9f9051ca4d 100644 --- a/antarest/matrixstore/exceptions.py +++ b/antarest/matrixstore/exceptions.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from http import HTTPStatus from fastapi import HTTPException diff --git a/antarest/matrixstore/main.py b/antarest/matrixstore/main.py index b59e3eb87a..d8eaf0390a 100644 --- a/antarest/matrixstore/main.py +++ b/antarest/matrixstore/main.py @@ -1,7 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Optional -from fastapi import FastAPI +from fastapi import APIRouter, FastAPI +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.core.filetransfer.service import FileTransferManager from antarest.core.tasks.service import ITaskService @@ -12,7 +25,7 @@ def build_matrix_service( - application: Optional[FastAPI], + app_ctxt: Optional[AppBuildContext], config: Config, file_transfer_manager: FileTransferManager, task_service: ITaskService, @@ -23,7 +36,7 @@ def build_matrix_service( Matrix module linking dependency Args: - application: flask application + app_ctxt: application config: server configuration file_transfer_manager: File transfer manager task_service: Task manager @@ -48,7 +61,7 @@ def build_matrix_service( config=config, ) - if application: - application.include_router(create_matrix_api(service, file_transfer_manager, config)) + if app_ctxt: + app_ctxt.api_root.include_router(create_matrix_api(service, file_transfer_manager, config)) return service diff --git a/antarest/matrixstore/matrix_editor.py b/antarest/matrixstore/matrix_editor.py index ffaf619322..838af83860 100644 --- a/antarest/matrixstore/matrix_editor.py +++ b/antarest/matrixstore/matrix_editor.py @@ -1,8 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import functools import operator from typing import Any, Dict, List, Optional, Tuple -from pydantic import BaseModel, Extra, Field, root_validator, validator +from pydantic import BaseModel, Field, field_validator, model_validator class MatrixSlice(BaseModel): @@ -23,8 +35,8 @@ class MatrixSlice(BaseModel): column_to: int class Config: - extra = Extra.forbid - schema_extra = { + extra = "forbid" + json_schema_extra = { "example": { "column_from": 5, "column_to": 8, @@ -33,7 +45,7 @@ class Config: } } - @root_validator(pre=True) + @model_validator(mode="before") def check_values(cls, values: Dict[str, Any]) -> Dict[str, Any]: """ Converts and validates the slice coordinates. @@ -95,12 +107,12 @@ class Operation(BaseModel): - `value`: The value associated with the operation. """ - operation: str = Field(regex=r"[=/*+-]|ABS") + operation: str = Field(pattern=r"[=/*+-]|ABS") value: float class Config: - extra = Extra.forbid - schema_extra = {"example": {"operation": "=", "value": 120.0}} + extra = "forbid" + json_schema_extra = {"example": {"operation": "=", "value": 120.0}} # noinspection SpellCheckingInspection def compute(self, x: Any, use_coords: bool = False) -> Any: @@ -145,16 +157,17 @@ class MatrixEditInstruction(BaseModel): operation: Operation class Config: - extra = Extra.forbid - - @staticmethod - def schema_extra(schema: Dict[str, Any]) -> None: - schema["example"] = MatrixEditInstruction( - coordinates=[(0, 10), (0, 11), (0, 12)], - operation=Operation(operation="=", value=120.0), - ) + extra = "forbid" + json_schema_extra = { + "example": { + "column_from": 5, + "column_to": 8, + "row_from": 0, + "row_to": 8760, + } + } - @root_validator(pre=True) + @model_validator(mode="before") def check_slice_coordinates(cls, values: Dict[str, Any]) -> Dict[str, Any]: """ Validates the 'slices' and 'coordinates' fields. @@ -179,7 +192,7 @@ def check_slice_coordinates(cls, values: Dict[str, Any]) -> Dict[str, Any]: return values - @validator("coordinates") + @field_validator("coordinates") def validate_coordinates(cls, coordinates: Optional[List[Tuple[int, int]]]) -> Optional[List[Tuple[int, int]]]: """ Validates the `coordinates` field. diff --git a/antarest/matrixstore/matrix_garbage_collector.py b/antarest/matrixstore/matrix_garbage_collector.py index 340d038f15..eecbf19f96 100644 --- a/antarest/matrixstore/matrix_garbage_collector.py +++ b/antarest/matrixstore/matrix_garbage_collector.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import time from os import listdir diff --git a/antarest/matrixstore/model.py b/antarest/matrixstore/model.py index aa9a4a91a9..244cafadca 100644 --- a/antarest/matrixstore/model.py +++ b/antarest/matrixstore/model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import typing as t import uuid diff --git a/antarest/matrixstore/repository.py b/antarest/matrixstore/repository.py index 120db81dc4..c76d2909b0 100644 --- a/antarest/matrixstore/repository.py +++ b/antarest/matrixstore/repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import hashlib import logging import typing as t diff --git a/antarest/matrixstore/service.py b/antarest/matrixstore/service.py index 33623c7fb4..7e9450fdec 100644 --- a/antarest/matrixstore/service.py +++ b/antarest/matrixstore/service.py @@ -1,6 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import io -import json import logging import tempfile import typing as t @@ -19,6 +30,7 @@ from antarest.core.filetransfer.service import FileTransferManager from antarest.core.jwt import JWTUser from antarest.core.requests import RequestParameters, UserHasNotPermissionError +from antarest.core.serialization import from_json from antarest.core.tasks.model import TaskResult, TaskType from antarest.core.tasks.service import ITaskService, TaskUpdateNotifier from antarest.core.utils.fastapi_sqlalchemy import db @@ -213,6 +225,7 @@ def create_by_importation(self, file: UploadFile, is_json: bool = False) -> t.Li A list of `MatrixInfoDTO` objects containing the SHA256 hash of the imported matrices. """ with file.file as f: + assert file.filename is not None if file.content_type == "application/zip": with contextlib.closing(f): buffer = io.BytesIO(f.read()) @@ -250,7 +263,7 @@ def _file_importation(self, file: bytes, *, is_json: bool = False) -> str: A SHA256 hash that identifies the imported matrix. """ if is_json: - obj = json.loads(file) + obj = from_json(file) content = MatrixContent(**obj) return self.create(content.data) # noinspection PyTypeChecker diff --git a/antarest/matrixstore/uri_resolver_service.py b/antarest/matrixstore/uri_resolver_service.py index 01717c57bd..d35870029d 100644 --- a/antarest/matrixstore/uri_resolver_service.py +++ b/antarest/matrixstore/uri_resolver_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re from typing import Optional, Tuple diff --git a/antarest/matrixstore/web.py b/antarest/matrixstore/web.py index 523176b241..e50fddfbab 100644 --- a/antarest/matrixstore/web.py +++ b/antarest/matrixstore/web.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from pathlib import Path from typing import Any, List, Optional diff --git a/antarest/utils.py b/antarest/service_creator.py similarity index 76% rename from antarest/utils.py rename to antarest/service_creator.py index 1f61717ada..5859806a61 100644 --- a/antarest/utils.py +++ b/antarest/service_creator.py @@ -1,21 +1,29 @@ -import datetime +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging +import typing as t from enum import Enum from pathlib import Path -from typing import Any, Dict, Mapping, Optional, Tuple import redis -import sqlalchemy.ext.baked # type: ignore -import uvicorn # type: ignore -from fastapi import FastAPI -from fastapi_jwt_auth import AuthJWT # type: ignore from ratelimit import RateLimitMiddleware # type: ignore from ratelimit.backends.redis import RedisBackend # type: ignore from ratelimit.backends.simple import MemoryBackend # type: ignore -from sqlalchemy import create_engine +from sqlalchemy import create_engine # type: ignore from sqlalchemy.engine.base import Engine # type: ignore from sqlalchemy.pool import NullPool # type: ignore +from antarest.core.application import AppBuildContext from antarest.core.cache.main import build_cache from antarest.core.config import Config from antarest.core.filetransfer.main import build_filetransfer_service @@ -46,7 +54,7 @@ logger = logging.getLogger(__name__) -SESSION_ARGS: Mapping[str, bool] = { +SESSION_ARGS: t.Mapping[str, bool] = { "autocommit": False, "expire_on_commit": False, "autoflush": False, @@ -75,7 +83,7 @@ def init_db_engine( ) -> Engine: if auto_upgrade_db: upgrade_db(config_file) - connect_args: Dict[str, Any] = {} + connect_args: t.Dict[str, t.Any] = {} if config.db.db_url.startswith("sqlite"): connect_args["check_same_thread"] = False else: @@ -101,24 +109,24 @@ def init_db_engine( return engine -def create_event_bus(application: Optional[FastAPI], config: Config) -> Tuple[IEventBus, Optional[redis.Redis]]: # type: ignore +def create_event_bus(app_ctxt: t.Optional[AppBuildContext], config: Config) -> t.Tuple[IEventBus, t.Optional[redis.Redis]]: # type: ignore redis_client = new_redis_instance(config.redis) if config.redis is not None else None return ( - build_eventbus(application, config, True, redis_client), + build_eventbus(app_ctxt, config, True, redis_client), redis_client, ) def create_core_services( - application: Optional[FastAPI], config: Config -) -> Tuple[ICache, IEventBus, ITaskService, FileTransferManager, LoginService, MatrixService, StudyService,]: - event_bus, redis_client = create_event_bus(application, config) + app_ctxt: t.Optional[AppBuildContext], config: Config +) -> t.Tuple[ICache, IEventBus, ITaskService, FileTransferManager, LoginService, MatrixService, StudyService,]: + event_bus, redis_client = create_event_bus(app_ctxt, config) cache = build_cache(config=config, redis_client=redis_client) - filetransfer_service = build_filetransfer_service(application, event_bus, config) - task_service = build_taskjob_manager(application, config, event_bus) - login_service = build_login(application, config, event_bus=event_bus) + filetransfer_service = build_filetransfer_service(app_ctxt, event_bus, config) + task_service = build_taskjob_manager(app_ctxt, config, event_bus) + login_service = build_login(app_ctxt, config, event_bus=event_bus) matrix_service = build_matrix_service( - application, + app_ctxt, config=config, file_transfer_manager=filetransfer_service, task_service=task_service, @@ -126,7 +134,7 @@ def create_core_services( service=None, ) study_service = build_study_service( - application, + app_ctxt, config, matrix_service=matrix_service, cache=cache, @@ -148,8 +156,8 @@ def create_core_services( def create_watcher( config: Config, - application: Optional[FastAPI], - study_service: Optional[StudyService] = None, + app_ctxt: t.Optional[AppBuildContext], + study_service: t.Optional[StudyService] = None, ) -> Watcher: if study_service: watcher = Watcher( @@ -158,24 +166,24 @@ def create_watcher( task_service=study_service.task_service, ) else: - _, _, task_service, _, _, _, study_service = create_core_services(application, config) + _, _, task_service, _, _, _, study_service = create_core_services(app_ctxt, config) watcher = Watcher( config=config, study_service=study_service, task_service=task_service, ) - if application: - application.include_router(create_watcher_routes(watcher=watcher, config=config)) + if app_ctxt: + app_ctxt.api_root.include_router(create_watcher_routes(watcher=watcher, config=config)) return watcher def create_matrix_gc( config: Config, - application: Optional[FastAPI], - study_service: Optional[StudyService] = None, - matrix_service: Optional[MatrixService] = None, + app_ctxt: t.Optional[AppBuildContext], + study_service: t.Optional[StudyService] = None, + matrix_service: t.Optional[MatrixService] = None, ) -> MatrixGarbageCollector: if study_service and matrix_service: return MatrixGarbageCollector( @@ -184,7 +192,7 @@ def create_matrix_gc( matrix_service=matrix_service, ) else: - _, _, _, _, _, matrix_service, study_service = create_core_services(application, config) + _, _, _, _, _, matrix_service, study_service = create_core_services(app_ctxt, config) return MatrixGarbageCollector( config=config, study_service=study_service, @@ -196,7 +204,7 @@ def create_archive_worker( config: Config, workspace: str, local_root: Path = Path("/"), - event_bus: Optional[IEventBus] = None, + event_bus: t.Optional[IEventBus] = None, ) -> AbstractWorker: if not event_bus: event_bus, _ = create_event_bus(None, config) @@ -206,15 +214,17 @@ def create_archive_worker( def create_simulator_worker( config: Config, matrix_service: MatrixService, - event_bus: Optional[IEventBus] = None, + event_bus: t.Optional[IEventBus] = None, ) -> AbstractWorker: if not event_bus: event_bus, _ = create_event_bus(None, config) return SimulatorWorker(event_bus, matrix_service, config) -def create_services(config: Config, application: Optional[FastAPI], create_all: bool = False) -> Dict[str, Any]: - services: Dict[str, Any] = {} +def create_services( + config: Config, app_ctxt: t.Optional[AppBuildContext], create_all: bool = False +) -> t.Dict[str, t.Any]: + services: t.Dict[str, t.Any] = {} ( cache, @@ -224,12 +234,12 @@ def create_services(config: Config, application: Optional[FastAPI], create_all: user_service, matrix_service, study_service, - ) = create_core_services(application, config) + ) = create_core_services(app_ctxt, config) - maintenance_service = build_maintenance_manager(application, config=config, cache=cache, event_bus=event_bus) + maintenance_service = build_maintenance_manager(app_ctxt, config=config, cache=cache, event_bus=event_bus) launcher = build_launcher( - application, + app_ctxt, config, study_service=study_service, event_bus=event_bus, @@ -238,13 +248,13 @@ def create_services(config: Config, application: Optional[FastAPI], create_all: cache=cache, ) - watcher = create_watcher(config=config, application=application, study_service=study_service) + watcher = create_watcher(config=config, app_ctxt=app_ctxt, study_service=study_service) services["watcher"] = watcher if config.server.services and Module.MATRIX_GC.value in config.server.services or create_all: matrix_garbage_collector = create_matrix_gc( config=config, - application=application, + app_ctxt=app_ctxt, study_service=study_service, matrix_service=matrix_service, ) diff --git a/antarest/singleton_services.py b/antarest/singleton_services.py index 3f3f94a116..3b2373cc0c 100644 --- a/antarest/singleton_services.py +++ b/antarest/singleton_services.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import time from pathlib import Path from typing import Dict, List, cast @@ -7,8 +19,7 @@ from antarest.core.logging.utils import configure_logger from antarest.core.utils.fastapi_sqlalchemy import DBSessionMiddleware from antarest.core.utils.utils import get_local_path -from antarest.study.storage.auto_archive_service import AutoArchiveService -from antarest.utils import ( +from antarest.service_creator import ( SESSION_ARGS, Module, create_archive_worker, @@ -18,6 +29,7 @@ create_watcher, init_db_engine, ) +from antarest.study.storage.auto_archive_service import AutoArchiveService def _init(config_file: Path, services_list: List[Module]) -> Dict[Module, IService]: @@ -44,13 +56,13 @@ def _init(config_file: Path, services_list: List[Module]) -> Dict[Module, IServi services: Dict[Module, IService] = {} if Module.WATCHER in services_list: - watcher = create_watcher(config=config, application=None, study_service=study_service) + watcher = create_watcher(config=config, app_ctxt=None, study_service=study_service) services[Module.WATCHER] = watcher if Module.MATRIX_GC in services_list: matrix_gc = create_matrix_gc( config=config, - application=None, + app_ctxt=None, study_service=study_service, matrix_service=matrix_service, ) diff --git a/antarest/study/__init__.py b/antarest/study/__init__.py index 8b13789179..058c6b221a 100644 --- a/antarest/study/__init__.py +++ b/antarest/study/__init__.py @@ -1 +1,11 @@ - +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/business/__init__.py b/antarest/study/business/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/business/__init__.py +++ b/antarest/study/business/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/business/adequacy_patch_management.py b/antarest/study/business/adequacy_patch_management.py index f9ce0f01f3..ddc2214891 100644 --- a/antarest/study/business/adequacy_patch_management.py +++ b/antarest/study/business/adequacy_patch_management.py @@ -1,7 +1,20 @@ -from typing import Any, Dict, List, Optional - -from pydantic.types import StrictBool, confloat - +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from typing import Any, Dict, List + +from pydantic.types import StrictBool, confloat, conint + +from antarest.study.business.all_optional_meta import all_optional_model from antarest.study.business.enum_ignore_case import EnumIgnoreCase from antarest.study.business.utils import GENERAL_DATA_PATH, FieldInfo, FormFieldsBaseModel, execute_or_add_commands from antarest.study.model import Study @@ -17,18 +30,19 @@ class PriceTakingOrder(EnumIgnoreCase): ThresholdType = confloat(ge=0) +@all_optional_model class AdequacyPatchFormFields(FormFieldsBaseModel): # version 830 - enable_adequacy_patch: Optional[StrictBool] - ntc_from_physical_areas_out_to_physical_areas_in_adequacy_patch: Optional[StrictBool] - ntc_between_physical_areas_out_adequacy_patch: Optional[StrictBool] + enable_adequacy_patch: StrictBool + ntc_from_physical_areas_out_to_physical_areas_in_adequacy_patch: StrictBool + ntc_between_physical_areas_out_adequacy_patch: StrictBool # version 850 - price_taking_order: Optional[PriceTakingOrder] - include_hurdle_cost_csr: Optional[StrictBool] - check_csr_cost_function: Optional[StrictBool] - threshold_initiate_curtailment_sharing_rule: Optional[ThresholdType] # type: ignore - threshold_display_local_matching_rule_violations: Optional[ThresholdType] # type: ignore - threshold_csr_variable_bounds_relaxation: Optional[ThresholdType] # type: ignore + price_taking_order: PriceTakingOrder + include_hurdle_cost_csr: StrictBool + check_csr_cost_function: StrictBool + threshold_initiate_curtailment_sharing_rule: ThresholdType # type: ignore + threshold_display_local_matching_rule_violations: ThresholdType # type: ignore + threshold_csr_variable_bounds_relaxation: conint(ge=0, strict=True) # type: ignore ADEQUACY_PATCH_PATH = f"{GENERAL_DATA_PATH}/adequacy patch" diff --git a/antarest/study/business/advanced_parameters_management.py b/antarest/study/business/advanced_parameters_management.py index 46c58f36d6..3e68ff0aa1 100644 --- a/antarest/study/business/advanced_parameters_management.py +++ b/antarest/study/business/advanced_parameters_management.py @@ -1,9 +1,22 @@ -from typing import Any, Dict, List, Optional - -from pydantic import validator +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from typing import Any, Dict, List + +from pydantic import field_validator from pydantic.types import StrictInt, StrictStr from antarest.core.exceptions import InvalidFieldForVersionError +from antarest.study.business.all_optional_meta import all_optional_model from antarest.study.business.enum_ignore_case import EnumIgnoreCase from antarest.study.business.utils import GENERAL_DATA_PATH, FieldInfo, FormFieldsBaseModel, execute_or_add_commands from antarest.study.model import Study @@ -60,33 +73,34 @@ class RenewableGenerationModeling(EnumIgnoreCase): CLUSTERS = "clusters" +@all_optional_model class AdvancedParamsFormFields(FormFieldsBaseModel): # Advanced parameters - accuracy_on_correlation: Optional[StrictStr] + accuracy_on_correlation: StrictStr # Other preferences - initial_reservoir_levels: Optional[InitialReservoirLevel] - power_fluctuations: Optional[PowerFluctuation] - shedding_policy: Optional[SheddingPolicy] - hydro_pricing_mode: Optional[HydroPricingMode] - hydro_heuristic_policy: Optional[HydroHeuristicPolicy] - unit_commitment_mode: Optional[UnitCommitmentMode] - number_of_cores_mode: Optional[SimulationCore] - day_ahead_reserve_management: Optional[ReserveManagement] - renewable_generation_modelling: Optional[RenewableGenerationModeling] + initial_reservoir_levels: InitialReservoirLevel + power_fluctuations: PowerFluctuation + shedding_policy: SheddingPolicy + hydro_pricing_mode: HydroPricingMode + hydro_heuristic_policy: HydroHeuristicPolicy + unit_commitment_mode: UnitCommitmentMode + number_of_cores_mode: SimulationCore + day_ahead_reserve_management: ReserveManagement + renewable_generation_modelling: RenewableGenerationModeling # Seeds - seed_tsgen_wind: Optional[StrictInt] - seed_tsgen_load: Optional[StrictInt] - seed_tsgen_hydro: Optional[StrictInt] - seed_tsgen_thermal: Optional[StrictInt] - seed_tsgen_solar: Optional[StrictInt] - seed_tsnumbers: Optional[StrictInt] - seed_unsupplied_energy_costs: Optional[StrictInt] - seed_spilled_energy_costs: Optional[StrictInt] - seed_thermal_costs: Optional[StrictInt] - seed_hydro_costs: Optional[StrictInt] - seed_initial_reservoir_levels: Optional[StrictInt] - - @validator("accuracy_on_correlation") + seed_tsgen_wind: StrictInt + seed_tsgen_load: StrictInt + seed_tsgen_hydro: StrictInt + seed_tsgen_thermal: StrictInt + seed_tsgen_solar: StrictInt + seed_tsnumbers: StrictInt + seed_unsupplied_energy_costs: StrictInt + seed_spilled_energy_costs: StrictInt + seed_thermal_costs: StrictInt + seed_hydro_costs: StrictInt + seed_initial_reservoir_levels: StrictInt + + @field_validator("accuracy_on_correlation") def check_accuracy_on_correlation(cls, v: str) -> str: sanitized_v = v.strip().replace(" ", "") if not sanitized_v: diff --git a/antarest/study/business/aggregator_management.py b/antarest/study/business/aggregator_management.py index 57a2cce48e..a040faf1de 100644 --- a/antarest/study/business/aggregator_management.py +++ b/antarest/study/business/aggregator_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import typing as t from enum import Enum @@ -6,7 +18,7 @@ import numpy as np import pandas as pd -from antarest.core.exceptions import FileTooLargeError, OutputNotFound +from antarest.core.exceptions import FileTooLargeError, MCRootNotHandled, OutputNotFound, OutputSubFolderNotFound from antarest.study.storage.rawstudy.ini_reader import IniReader from antarest.study.storage.rawstudy.model.filesystem.matrix.date_serializer import ( FactoryDateSerializer, @@ -14,8 +26,7 @@ ) from antarest.study.storage.rawstudy.model.filesystem.matrix.matrix import MatrixFrequency -TEMPLATE_PARTS = "output/{sim_id}/economy/mc-ind" -"""Template for the path to reach the output data.""" +MC_TEMPLATE_PARTS = "output/{sim_id}/economy/{mc_root}" HORIZON_TEMPLATE = "output/{sim_id}/about-the-study/parameters.ini" # noinspection SpellCheckingInspection MCYEAR_COL = "mcYear" @@ -28,25 +39,50 @@ """Column name for the time index.""" TIME_COL = "time" """Column name for the timestamp.""" +CLUSTER_ID_COL = "cluster" +"""Column name for the cluster id.""" MC_YEAR_INDEX = 0 """Index in path parts starting from the Monte Carlo year to determine the Monte Carlo year.""" -AREA_OR_LINK_INDEX = 2 -"""Index in path parts starting from the Monte Carlo year to determine the area/link name.""" +AREA_OR_LINK_INDEX__IND, AREA_OR_LINK_INDEX__ALL = 2, 1 +"""Indexes in path parts starting from the output root `economy//mc-(ind/all)` to determine the area/link name.""" +PRODUCTION_COLUMN_NAME = "production" +PRODUCTION_COLUMN_REGEX = "mwh" +CLUSTER_ID_COMPONENT = 0 +ACTUAL_COLUMN_COMPONENT = 1 +DUMMY_COMPONENT = 2 logger = logging.getLogger(__name__) -class AreasQueryFile(str, Enum): +class MCRoot(str, Enum): + MC_IND = "mc-ind" + MC_ALL = "mc-all" + + +class MCIndAreasQueryFile(str, Enum): + VALUES = "values" + DETAILS = "details" + DETAILS_ST_STORAGE = "details-STstorage" + DETAILS_RES = "details-res" + + +class MCAllAreasQueryFile(str, Enum): VALUES = "values" DETAILS = "details" DETAILS_ST_STORAGE = "details-STstorage" DETAILS_RES = "details-res" + ID = "id" -class LinksQueryFile(str, Enum): +class MCIndLinksQueryFile(str, Enum): VALUES = "values" +class MCAllLinksQueryFile(str, Enum): + VALUES = "values" + ID = "id" + + def _checks_estimated_size(nb_files: int, df_bytes_size: int, nb_files_checked: int) -> None: maximum_size = 100 # size in Mo that corresponds to a 15 seconds task. estimated_df_size = nb_files * df_bytes_size // (nb_files_checked * 10**6) @@ -54,28 +90,84 @@ def _checks_estimated_size(nb_files: int, df_bytes_size: int, nb_files_checked: raise FileTooLargeError(estimated_df_size, maximum_size) +def _columns_ordering(df_cols: t.List[str], column_name: str, is_details: bool, mc_root: MCRoot) -> t.Sequence[str]: + # original columns + org_cols = df_cols.copy() + if is_details: + org_cols = [col for col in org_cols if col != CLUSTER_ID_COL and col != TIME_ID_COL] + if mc_root == MCRoot.MC_IND: + new_column_order = ( + [column_name] + ([CLUSTER_ID_COL] if is_details else []) + [MCYEAR_COL, TIME_ID_COL, TIME_COL] + org_cols + ) + elif mc_root == MCRoot.MC_ALL: + org_cols = [col for col in org_cols if col not in {column_name, MCYEAR_COL, TIME_COL}] + new_column_order = [column_name] + ([CLUSTER_ID_COL] if is_details else []) + [TIME_ID_COL, TIME_COL] + org_cols + else: + raise MCRootNotHandled(f"Unknown Monte Carlo root: {mc_root}") + + return new_column_order + + +def _infer_production_column(cols: t.Sequence[str]) -> t.Optional[str]: + return next((c for c in cols if PRODUCTION_COLUMN_REGEX in c.lower().strip()), None) + + +def _infer_time_id(df: pd.DataFrame, is_details: bool) -> t.List[int]: + if is_details: + return df[TIME_ID_COL].tolist() + else: + return list(range(1, len(df) + 1)) + + +def _filtered_files_listing( + folders_to_check: t.List[Path], + query_file: str, + frequency: str, +) -> t.Dict[str, t.MutableSequence[str]]: + filtered_files: t.Dict[str, t.MutableSequence[str]] = {} + for folder_path in folders_to_check: + for file in folder_path.iterdir(): + if file.stem == f"{query_file}-{frequency}": + filtered_files.setdefault(folder_path.name, []).append(file.name) + return filtered_files + + class AggregatorManager: def __init__( self, study_path: Path, output_id: str, - query_file: t.Union[AreasQueryFile, LinksQueryFile], + query_file: t.Union[MCIndAreasQueryFile, MCAllAreasQueryFile, MCIndLinksQueryFile, MCAllLinksQueryFile], frequency: MatrixFrequency, - mc_years: t.Sequence[int], - columns_names: t.Sequence[str], ids_to_consider: t.Sequence[str], + columns_names: t.Sequence[str], + mc_years: t.Optional[t.Sequence[int]] = None, ): - self.study_path: Path = study_path - self.output_id: str = output_id - self.query_file: t.Union[AreasQueryFile, LinksQueryFile] = query_file - self.frequency: MatrixFrequency = frequency - self.mc_years: t.Sequence[int] = mc_years - self.columns_names: t.Sequence[str] = columns_names - self.ids_to_consider: t.Sequence[str] = ids_to_consider - self.output_type = "areas" if isinstance(query_file, AreasQueryFile) else "links" - self.mc_ind_path = self.study_path / TEMPLATE_PARTS.format(sim_id=self.output_id) - - def _parse_output_file(self, file_path: Path) -> pd.DataFrame: + self.study_path = study_path + self.output_id = output_id + self.query_file = query_file + self.frequency = frequency + self.mc_years = mc_years + self.columns_names = columns_names + self.ids_to_consider = ids_to_consider + self.output_type = ( + "areas" + if (isinstance(query_file, MCIndAreasQueryFile) or isinstance(query_file, MCAllAreasQueryFile)) + else "links" + ) + self.mc_ind_path = self.study_path / MC_TEMPLATE_PARTS.format( + sim_id=self.output_id, mc_root=MCRoot.MC_IND.value + ) + self.mc_all_path = self.study_path / MC_TEMPLATE_PARTS.format( + sim_id=self.output_id, mc_root=MCRoot.MC_ALL.value + ) + self.mc_root = ( + MCRoot.MC_IND + if (isinstance(query_file, MCIndAreasQueryFile) or isinstance(query_file, MCIndLinksQueryFile)) + else MCRoot.MC_ALL + ) + + def _parse_output_file(self, file_path: Path, normalize_column_name: bool = True) -> pd.DataFrame: csv_file = pd.read_csv( file_path, sep="\t", @@ -88,13 +180,20 @@ def _parse_output_file(self, file_path: Path) -> pd.DataFrame: date, body = date_serializer.extract_date(csv_file) df = rename_unnamed(body).astype(float) + df.index = date + + if not normalize_column_name: + return df + # normalize columns names new_cols = [] for col in body.columns: - name_to_consider = col[0] if self.query_file.value == AreasQueryFile.VALUES else " ".join(col) + if self.mc_root == MCRoot.MC_IND: + name_to_consider = col[0] if self.query_file.value == MCIndAreasQueryFile.VALUES else " ".join(col) + else: + name_to_consider = " ".join([col[0], col[2]]) new_cols.append(name_to_consider.upper().strip()) - df.index = date df.columns = pd.Index(new_cols) return df @@ -113,51 +212,148 @@ def _filter_ids(self, folder_path: Path) -> t.List[str]: return links_ids def _gather_all_files_to_consider(self) -> t.Sequence[Path]: - # Monte Carlo years filtering - all_mc_years = [d.name for d in self.mc_ind_path.iterdir()] - if self.mc_years: - all_mc_years = [year for year in all_mc_years if int(year) in self.mc_years] - if not all_mc_years: - return [] - - # Links / Areas ids filtering - - # The list of areas and links is the same whatever the MC year under consideration: - # Therefore we choose the first year by default avoiding useless scanning directory operations. - first_mc_year = all_mc_years[0] - areas_or_links_ids = self._filter_ids(self.mc_ind_path / first_mc_year / self.output_type) - - # Frequency and query file filtering - folders_to_check = [self.mc_ind_path / first_mc_year / self.output_type / id for id in areas_or_links_ids] - filtered_files: t.Dict[str, t.MutableSequence[str]] = {} - for folder_path in folders_to_check: - for file in folder_path.iterdir(): - if file.stem == f"{self.query_file.value}-{self.frequency}": - filtered_files.setdefault(folder_path.name, []).append(file.name) - - # Loop on MC years to return the whole list of files - all_output_files = [ - self.mc_ind_path / mc_year / self.output_type / area_or_link / file - for mc_year in all_mc_years - for area_or_link, files in filtered_files.items() - for file in files - ] + if self.mc_root == MCRoot.MC_IND: + # Monte Carlo years filtering + all_mc_years = [d.name for d in self.mc_ind_path.iterdir()] + if self.mc_years: + all_mc_years = [year for year in all_mc_years if int(year) in self.mc_years] + if not all_mc_years: + return [] + + # Links / Areas ids filtering + + # The list of areas and links is the same whatever the MC year under consideration: + # Therefore we choose the first year by default avoiding useless scanning directory operations. + first_mc_year = all_mc_years[0] + areas_or_links_ids = self._filter_ids(self.mc_ind_path / first_mc_year / self.output_type) + + # Frequency and query file filtering + folders_to_check = [self.mc_ind_path / first_mc_year / self.output_type / id for id in areas_or_links_ids] + filtered_files = _filtered_files_listing(folders_to_check, self.query_file, self.frequency) + + # Loop on MC years to return the whole list of files + all_output_files = [ + self.mc_ind_path / mc_year / self.output_type / area_or_link / file + for mc_year in all_mc_years + for area_or_link, files in filtered_files.items() + for file in files + ] + elif self.mc_root == MCRoot.MC_ALL: + # Links / Areas ids filtering + areas_or_links_ids = self._filter_ids(self.mc_all_path / self.output_type) + + # Frequency and query file filtering + folders_to_check = [self.mc_all_path / self.output_type / id for id in areas_or_links_ids] + filtered_files = _filtered_files_listing(folders_to_check, self.query_file, self.frequency) + + # Loop to return the whole list of files + all_output_files = [ + self.mc_all_path / self.output_type / area_or_link / file + for area_or_link, files in filtered_files.items() + for file in files + ] + else: + raise MCRootNotHandled(f"Unknown Monte Carlo root: {self.mc_root}") return all_output_files + def columns_filtering(self, df: pd.DataFrame, is_details: bool) -> pd.DataFrame: + # columns filtering + lower_case_columns = [c.lower() for c in self.columns_names] + if lower_case_columns: + if is_details: + filtered_columns = [CLUSTER_ID_COL, TIME_ID_COL] + [ + c for c in df.columns.tolist() if any(regex in c.lower() for regex in lower_case_columns) + ] + elif self.mc_root == MCRoot.MC_ALL: + filtered_columns = [ + c for c in df.columns.tolist() if any(regex in c.lower() for regex in lower_case_columns) + ] + else: + filtered_columns = [c for c in df.columns.tolist() if c.lower() in lower_case_columns] + df = df.loc[:, filtered_columns] + return df + + def _process_df(self, file_path: Path, is_details: bool) -> pd.DataFrame: + """ + Process the output file to return a DataFrame with the correct columns and values + - In the case of a details file, the DataFrame, the columns include two parts cluster name + actual column name + - In other cases, the DataFrame, the columns include only the actual column name + + Thus, the DataFrame is normalized to have the real columns names in both cases. And a new column is added to + for the details file to record the cluster id. + + Args: + file_path: the file Path to extract the data Frame from + is_details: whether the file is a details file or not + + Returns: + the DataFrame with the correct columns and values + """ + + if is_details: + # extract the data frame from the file without processing the columns + un_normalized_df = self._parse_output_file(file_path, normalize_column_name=False) + # number of rows in the data frame + df_len = len(un_normalized_df) + cluster_dummy_product_cols = sorted( + set([(x[CLUSTER_ID_COMPONENT], x[DUMMY_COMPONENT]) for x in un_normalized_df.columns]) + ) + # actual columns without the cluster id (NODU, production etc.) + actual_cols = sorted(set(un_normalized_df.columns.map(lambda x: x[ACTUAL_COLUMN_COMPONENT]))) + + # using a dictionary to build the new data frame with the base columns (NO2, production etc.) + # and the cluster id and time id + new_obj: t.Dict[str, t.Any] = {k: [] for k in [CLUSTER_ID_COL, TIME_ID_COL] + actual_cols} + + # loop over the cluster id to extract the values of the actual columns + for cluster_id, dummy_component in cluster_dummy_product_cols: + for actual_col in actual_cols: + col_values = un_normalized_df[(cluster_id, actual_col, dummy_component)].tolist() # type: ignore + new_obj[actual_col] += col_values + new_obj[CLUSTER_ID_COL] += [cluster_id for _ in range(df_len)] + new_obj[TIME_ID_COL] += list(range(1, df_len + 1)) + + # check if there is a production column to rename it to `PRODUCTION_COLUMN_NAME` + prod_col = _infer_production_column(actual_cols) + if prod_col is not None: + new_obj[PRODUCTION_COLUMN_NAME] = new_obj.pop(prod_col) + actual_cols.remove(prod_col) + + # reorganize the data frame + # first the production column if it exists + add_prod = [PRODUCTION_COLUMN_NAME] if prod_col is not None else [] + columns_order = [CLUSTER_ID_COL, TIME_ID_COL] + add_prod + list(actual_cols) + df = pd.DataFrame(new_obj).reindex(columns=columns_order).sort_values(by=[TIME_ID_COL, CLUSTER_ID_COL]) + df.index = pd.Index(list(range(1, len(df) + 1))) + + return df + + else: + # just extract the data frame from the file by just merging the columns components + return self._parse_output_file(file_path) + def _build_dataframe(self, files: t.Sequence[Path], horizon: int) -> pd.DataFrame: + if self.mc_root not in [MCRoot.MC_IND, MCRoot.MC_ALL]: + raise MCRootNotHandled(f"Unknown Monte Carlo root: {self.mc_root}") + is_details = self.query_file in [ + MCIndAreasQueryFile.DETAILS, + MCAllAreasQueryFile.DETAILS, + MCIndAreasQueryFile.DETAILS_ST_STORAGE, + MCAllAreasQueryFile.DETAILS_ST_STORAGE, + MCIndAreasQueryFile.DETAILS_RES, + MCAllAreasQueryFile.DETAILS_RES, + ] final_df = pd.DataFrame() nb_files = len(files) for k, file_path in enumerate(files): - df = self._parse_output_file(file_path) + df = self._process_df(file_path, is_details) # columns filtering - if self.columns_names: - filtered_columns = [c for c in df.columns.tolist() if c in self.columns_names] - df = df.loc[:, filtered_columns] + df = self.columns_filtering(df, is_details) # if no columns, no need to continue list_of_df_columns = df.columns.tolist() - if not list_of_df_columns: + if not list_of_df_columns or set(list_of_df_columns) == {CLUSTER_ID_COL, TIME_ID_COL}: return pd.DataFrame() # checks if the estimated dataframe size does not exceed the limit @@ -167,22 +363,26 @@ def _build_dataframe(self, files: t.Sequence[Path], horizon: int) -> pd.DataFram estimated_binary_size = final_df.memory_usage().sum() _checks_estimated_size(nb_files, estimated_binary_size, k) - # add column for links/areas - relative_path_parts = file_path.relative_to(self.mc_ind_path).parts column_name = AREA_COL if self.output_type == "areas" else LINK_COL - new_column_order = [column_name, MCYEAR_COL, TIME_ID_COL, TIME_COL] + list_of_df_columns - df[column_name] = relative_path_parts[AREA_OR_LINK_INDEX] - - # add column to record the Monte Carlo year - df[MCYEAR_COL] = int(relative_path_parts[MC_YEAR_INDEX]) + new_column_order = _columns_ordering(list_of_df_columns, column_name, is_details, self.mc_root) + + if self.mc_root == MCRoot.MC_IND: + # add column for links/areas + relative_path_parts = file_path.relative_to(self.mc_ind_path).parts + df[column_name] = relative_path_parts[AREA_OR_LINK_INDEX__IND] + # add column to record the Monte Carlo year + df[MCYEAR_COL] = int(relative_path_parts[MC_YEAR_INDEX]) + else: + # add column for links/areas + relative_path_parts = file_path.relative_to(self.mc_all_path).parts + df[column_name] = relative_path_parts[AREA_OR_LINK_INDEX__ALL] # add a column for the time id - df[TIME_ID_COL] = list(range(1, len(df) + 1)) + df[TIME_ID_COL] = _infer_time_id(df, is_details) # add horizon column df[TIME_COL] = horizon - # Reorganize the columns - df = df.reindex(columns=new_column_order) + df = df.reindex(columns=pd.Index(new_column_order)) final_df = pd.concat([final_df, df], ignore_index=True) @@ -191,23 +391,38 @@ def _build_dataframe(self, files: t.Sequence[Path], horizon: int) -> pd.DataFram return final_df + def _check_mc_root_folder_exists(self) -> None: + if self.mc_root == MCRoot.MC_IND: + if not self.mc_ind_path.exists(): + raise OutputSubFolderNotFound(self.output_id, f"economy/{MCRoot.MC_IND.value}") + elif self.mc_root == MCRoot.MC_ALL: + if not self.mc_all_path.exists(): + raise OutputSubFolderNotFound(self.output_id, f"economy/{MCRoot.MC_ALL.value}") + else: + raise MCRootNotHandled(f"Unknown Monte Carlo root: {self.mc_root}") + def aggregate_output_data(self) -> pd.DataFrame: """ Aggregates the output data of a study and returns it as a DataFrame """ - # Checks if mc-ind results exist - if not self.mc_ind_path.exists(): + output_folder = (self.mc_ind_path or self.mc_all_path).parent.parent + + # checks if the output folder exists + if not output_folder.exists(): raise OutputNotFound(self.output_id) + # checks if the mc root folder exists + self._check_mc_root_folder_exists() + + # filters files to consider + all_output_files = sorted(self._gather_all_files_to_consider()) + # Retrieves the horizon from the study output horizon_path = self.study_path / HORIZON_TEMPLATE.format(sim_id=self.output_id) launching_config = IniReader().read(horizon_path) horizon = launching_config.get("general", {}).get("horizon", 2018) - # filters files to consider - all_output_files = sorted(self._gather_all_files_to_consider()) - logger.info( f"Parsing {len(all_output_files)} {self.frequency.value} files" f"to build the aggregated output for study `{self.study_path.name}`" diff --git a/antarest/study/business/all_optional_meta.py b/antarest/study/business/all_optional_meta.py index 06ddc012d8..7a8440226b 100644 --- a/antarest/study/business/all_optional_meta.py +++ b/antarest/study/business/all_optional_meta.py @@ -1,84 +1,46 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +import copy import typing as t -import pydantic.fields -import pydantic.main -from pydantic import BaseModel +from pydantic import BaseModel, create_model from antarest.core.utils.string import to_camel_case +ModelClass = t.TypeVar("ModelClass", bound=BaseModel) -class AllOptionalMetaclass(pydantic.main.ModelMetaclass): - """ - Metaclass that makes all fields of a Pydantic model optional. - - Usage: - class MyModel(BaseModel, metaclass=AllOptionalMetaclass): - field1: str - field2: int - ... - Instances of the model can be created even if not all fields are provided during initialization. - Default values, when provided, are used unless `use_none` is set to `True`. +def all_optional_model(model: t.Type[ModelClass]) -> t.Type[ModelClass]: """ + This decorator can be used to make all fields of a pydantic model optionals. - def __new__( - cls: t.Type["AllOptionalMetaclass"], - name: str, - bases: t.Tuple[t.Type[t.Any], ...], - namespaces: t.Dict[str, t.Any], - use_none: bool = False, - **kwargs: t.Dict[str, t.Any], - ) -> t.Any: - """ - Create a new instance of the metaclass. - - Args: - name: Name of the class to create. - bases: Base classes of the class to create (a Pydantic model). - namespaces: namespace of the class to create that defines the fields of the model. - use_none: If `True`, the default value of the fields is set to `None`. - Note that this field is not part of the Pydantic model, but it is an extension. - **kwargs: Additional keyword arguments used by the metaclass. - """ - # Modify the annotations of the class (but not of the ancestor classes) - # in order to make all fields optional. - # If the current model inherits from another model, the annotations of the ancestor models - # are not modified, because the fields are already converted to `ModelField`. - annotations = namespaces.get("__annotations__", {}) - for field_name, field_type in annotations.items(): - if not field_name.startswith("__"): - # Making already optional fields optional is not a problem (nothing is changed). - annotations[field_name] = t.Optional[field_type] - namespaces["__annotations__"] = annotations - - if use_none: - # Modify the namespace fields to set their default value to `None`. - for field_name, field_info in namespaces.items(): - if isinstance(field_info, pydantic.fields.FieldInfo): - field_info.default = None - field_info.default_factory = None - - # Create the class: all annotations are converted into `ModelField`. - instance = super().__new__(cls, name, bases, namespaces, **kwargs) - - # Modify the inherited fields of the class to make them optional - # and set their default value to `None`. - model_field: pydantic.fields.ModelField - for field_name, model_field in instance.__fields__.items(): - model_field.required = False - model_field.allow_none = True - if use_none: - model_field.default = None - model_field.default_factory = None - model_field.field_info.default = None - - return instance + Args: + model: The pydantic model to modify. + Returns: + The modified model. + """ + kwargs = {} + for field_name, field_info in model.model_fields.items(): + new = copy.deepcopy(field_info) + new.default = None + new.annotation = t.Optional[field_info.annotation] # type: ignore + kwargs[field_name] = (new.annotation, new) -MODEL = t.TypeVar("MODEL", bound=t.Type[BaseModel]) + return create_model(f"Partial{model.__name__}", __base__=model, __module__=model.__module__, **kwargs) # type: ignore -def camel_case_model(model: MODEL) -> MODEL: +def camel_case_model(model: t.Type[BaseModel]) -> t.Type[BaseModel]: """ This decorator can be used to modify a model to use camel case aliases. @@ -88,7 +50,14 @@ def camel_case_model(model: MODEL) -> MODEL: Returns: The modified model. """ - model.__config__.alias_generator = to_camel_case - for field_name, field in model.__fields__.items(): - field.alias = to_camel_case(field_name) + model.model_config["alias_generator"] = to_camel_case + + # Manually overriding already defined alias names (in base classes), + # otherwise they have precedence over generated ones. + # TODO There is probably a better way to handle those cases + for field_name, field in model.model_fields.items(): + new_alias = to_camel_case(field_name) + field.alias = new_alias + field.validation_alias = new_alias + field.serialization_alias = new_alias return model diff --git a/antarest/study/business/allocation_management.py b/antarest/study/business/allocation_management.py index 8c539ceac3..79c22f26cd 100644 --- a/antarest/study/business/allocation_management.py +++ b/antarest/study/business/allocation_management.py @@ -1,8 +1,22 @@ -from typing import Dict, List +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from typing import Dict, List, Union import numpy import numpy as np -from pydantic import conlist, root_validator, validator +from annotated_types import Len +from pydantic import ValidationInfo, field_validator, model_validator +from typing_extensions import Annotated from antarest.core.exceptions import AllocationDataNotFound, AreaNotFound from antarest.study.business.area_management import AreaInfoDTO @@ -24,9 +38,9 @@ class AllocationFormFields(FormFieldsBaseModel): allocation: List[AllocationField] - @root_validator - def check_allocation(cls, values: Dict[str, List[AllocationField]]) -> Dict[str, List[AllocationField]]: - allocation = values.get("allocation", []) + @model_validator(mode="after") + def check_allocation(self) -> "AllocationFormFields": + allocation = self.allocation if not allocation: raise ValueError("allocation must not be empty") @@ -44,7 +58,7 @@ def check_allocation(cls, values: Dict[str, List[AllocationField]]) -> Dict[str, if sum(a.coefficient for a in allocation) <= 0: raise ValueError("sum of allocation coefficients must be positive") - return values + return self class AllocationMatrix(FormFieldsBaseModel): @@ -55,14 +69,14 @@ class AllocationMatrix(FormFieldsBaseModel): data: 2D-array matrix of consumption coefficients """ - index: conlist(str, min_items=1) # type: ignore - columns: conlist(str, min_items=1) # type: ignore + index: Annotated[List[str], Len(min_length=1)] + columns: Annotated[List[str], Len(min_length=1)] data: List[List[float]] # NonNegativeFloat not necessary # noinspection PyMethodParameters - @validator("data") + @field_validator("data", mode="before") def validate_hydro_allocation_matrix( - cls, data: List[List[float]], values: Dict[str, List[str]] + cls, data: List[List[float]], values: Union[Dict[str, List[str]], ValidationInfo] ) -> List[List[float]]: """ Validate the hydraulic allocation matrix. @@ -77,8 +91,9 @@ def validate_hydro_allocation_matrix( """ array = np.array(data) - rows = len(values.get("index", [])) - cols = len(values.get("columns", [])) + new_values = values if isinstance(values, dict) else values.data + rows = len(new_values.get("index", [])) + cols = len(new_values.get("columns", [])) if array.size == 0: raise ValueError("allocation matrix must not be empty") @@ -124,7 +139,7 @@ def get_allocation_data(self, study: Study, area_id: str) -> Dict[str, List[Allo if not allocation_data: raise AllocationDataNotFound(area_id) - return allocation_data.get("[allocation]", {}) + return allocation_data.get("[allocation]", {}) # type: ignore def get_allocation_form_fields( self, all_areas: List[AreaInfoDTO], study: Study, area_id: str @@ -148,13 +163,10 @@ def get_allocation_form_fields( allocations = self.get_allocation_data(study, area_id) filtered_allocations = {area: value for area, value in allocations.items() if area in areas_ids} - - return AllocationFormFields.construct( - allocation=[ - AllocationField.construct(area_id=area, coefficient=value) - for area, value in filtered_allocations.items() - ] - ) + final_allocations = [ + AllocationField.construct(area_id=area, coefficient=value) for area, value in filtered_allocations.items() + ] + return AllocationFormFields.model_validate({"allocation": final_allocations}) def set_allocation_form_fields( self, diff --git a/antarest/study/business/area_management.py b/antarest/study/business/area_management.py index 6c87d8cb80..e79f2df575 100644 --- a/antarest/study/business/area_management.py +++ b/antarest/study/business/area_management.py @@ -1,13 +1,25 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import enum import logging import re import typing as t -from pydantic import BaseModel, Extra, Field +from pydantic import BaseModel, Field from antarest.core.exceptions import ConfigFileNotFound, DuplicateAreaName, LayerNotAllowedToBeDeleted, LayerNotFound from antarest.core.model import JSON -from antarest.study.business.all_optional_meta import AllOptionalMetaclass, camel_case_model +from antarest.study.business.all_optional_meta import all_optional_model, camel_case_model from antarest.study.business.utils import execute_or_add_commands from antarest.study.model import Patch, PatchArea, PatchCluster, RawStudy, Study from antarest.study.repository import StudyMetadataRepository @@ -38,8 +50,8 @@ class AreaType(enum.Enum): class AreaCreationDTO(BaseModel): name: str type: AreaType - metadata: t.Optional[PatchArea] - set: t.Optional[t.List[str]] + metadata: t.Optional[PatchArea] = None + set: t.Optional[t.List[str]] = None # review: is this class necessary? @@ -70,7 +82,7 @@ class LayerInfoDTO(BaseModel): areas: t.List[str] -class UpdateAreaUi(BaseModel, extra="forbid", allow_population_by_field_name=True): +class UpdateAreaUi(BaseModel, extra="forbid", populate_by_name=True): """ DTO for updating area UI @@ -95,7 +107,7 @@ class UpdateAreaUi(BaseModel, extra="forbid", allow_population_by_field_name=Tru ... } >>> model = UpdateAreaUi(**obj) - >>> pprint(model.dict(by_alias=True), width=80) + >>> pprint(model.model_dump(by_alias=True), width=80) {'colorRgb': [230, 108, 44], 'layerColor': {0: '230, 108, 44', 4: '230, 108, 44', @@ -167,9 +179,9 @@ class _BaseAreaDTO( OptimizationProperties.FilteringSection, OptimizationProperties.ModalOptimizationSection, AdequacyPathProperties.AdequacyPathSection, - extra=Extra.forbid, + extra="forbid", validate_assignment=True, - allow_population_by_field_name=True, + populate_by_name=True, ): """ Represents an area output. @@ -188,8 +200,9 @@ class _BaseAreaDTO( # noinspection SpellCheckingInspection +@all_optional_model @camel_case_model -class AreaOutput(_BaseAreaDTO, metaclass=AllOptionalMetaclass, use_none=True): +class AreaOutput(_BaseAreaDTO): """ DTO object use to get the area information using a flat structure. """ @@ -215,30 +228,32 @@ def from_model( obj = { "average_unsupplied_energy_cost": average_unsupplied_energy_cost, "average_spilled_energy_cost": average_spilled_energy_cost, - **area_folder.optimization.filtering.dict(by_alias=False), - **area_folder.optimization.nodal_optimization.dict(by_alias=False), + **area_folder.optimization.filtering.model_dump(by_alias=False), + **area_folder.optimization.nodal_optimization.model_dump(by_alias=False), # adequacy_patch is only available if study version >= 830. - **(area_folder.adequacy_patch.adequacy_patch.dict(by_alias=False) if area_folder.adequacy_patch else {}), + **( + area_folder.adequacy_patch.adequacy_patch.model_dump(by_alias=False) + if area_folder.adequacy_patch + else {} + ), } return cls(**obj) def _to_optimization(self) -> OptimizationProperties: - obj = {name: getattr(self, name) for name in OptimizationProperties.FilteringSection.__fields__} + obj = {name: getattr(self, name) for name in OptimizationProperties.FilteringSection.model_fields} filtering_section = OptimizationProperties.FilteringSection(**obj) - obj = {name: getattr(self, name) for name in OptimizationProperties.ModalOptimizationSection.__fields__} + obj = {name: getattr(self, name) for name in OptimizationProperties.ModalOptimizationSection.model_fields} nodal_optimization_section = OptimizationProperties.ModalOptimizationSection(**obj) - return OptimizationProperties( - filtering=filtering_section, - nodal_optimization=nodal_optimization_section, - ) + args = {"filtering": filtering_section, "nodal_optimization": nodal_optimization_section} + return OptimizationProperties.model_validate(args) def _to_adequacy_patch(self) -> t.Optional[AdequacyPathProperties]: - obj = {name: getattr(self, name) for name in AdequacyPathProperties.AdequacyPathSection.__fields__} + obj = {name: getattr(self, name) for name in AdequacyPathProperties.AdequacyPathSection.model_fields} # If all fields are `None`, the object is empty. if all(value is None for value in obj.values()): return None adequacy_path_section = AdequacyPathProperties.AdequacyPathSection(**obj) - return AdequacyPathProperties(adequacy_patch=adequacy_path_section) + return AdequacyPathProperties.model_validate({"adequacy_patch": adequacy_path_section}) @property def area_folder(self) -> AreaFolder: @@ -347,7 +362,7 @@ def update_areas_props( for area_id, update_area in update_areas_by_ids.items(): # Update the area properties. old_area = old_areas_by_ids[area_id] - new_area = old_area.copy(update=update_area.dict(by_alias=False, exclude_none=True)) + new_area = old_area.copy(update=update_area.model_dump(by_alias=False, exclude_none=True)) new_areas_by_ids[area_id] = new_area # Convert the DTO to a configuration object and update the configuration file. @@ -728,7 +743,7 @@ def update_thermal_cluster_metadata( id=area_id, name=file_study.config.areas[area_id].name, type=AreaType.AREA, - metadata=patch.areas.get(area_id, PatchArea()).dict(), + metadata=patch.areas.get(area_id, PatchArea()), thermals=self._get_clusters(file_study, area_id, patch), set=None, ) diff --git a/antarest/study/business/areas/__init__.py b/antarest/study/business/areas/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/business/areas/__init__.py +++ b/antarest/study/business/areas/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/business/areas/hydro_management.py b/antarest/study/business/areas/hydro_management.py index e0a52ee4e1..d464336d93 100644 --- a/antarest/study/business/areas/hydro_management.py +++ b/antarest/study/business/areas/hydro_management.py @@ -1,7 +1,20 @@ -from typing import Any, Dict, List, Optional - -from pydantic import Field - +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from typing import Any, Dict, List, Optional, Union + +from pydantic import Field, model_validator + +from antarest.study.business.all_optional_meta import all_optional_model from antarest.study.business.utils import FieldInfo, FormFieldsBaseModel, execute_or_add_commands from antarest.study.model import Study from antarest.study.storage.storage_service import StudyStorageService @@ -24,22 +37,23 @@ class InflowStructure(FormFieldsBaseModel): ) +@all_optional_model class ManagementOptionsFormFields(FormFieldsBaseModel): - inter_daily_breakdown: Optional[float] = Field(ge=0) - intra_daily_modulation: Optional[float] = Field(ge=1) - inter_monthly_breakdown: Optional[float] = Field(ge=0) - reservoir: Optional[bool] - reservoir_capacity: Optional[float] = Field(ge=0) - follow_load: Optional[bool] - use_water: Optional[bool] - hard_bounds: Optional[bool] - initialize_reservoir_date: Optional[int] = Field(ge=0, le=11) - use_heuristic: Optional[bool] - power_to_level: Optional[bool] - use_leeway: Optional[bool] - leeway_low: Optional[float] = Field(ge=0) - leeway_up: Optional[float] = Field(ge=0) - pumping_efficiency: Optional[float] = Field(ge=0) + inter_daily_breakdown: float = Field(ge=0) + intra_daily_modulation: float = Field(ge=1) + inter_monthly_breakdown: float = Field(ge=0) + reservoir: bool + reservoir_capacity: float = Field(ge=0) + follow_load: bool + use_water: bool + hard_bounds: bool + initialize_reservoir_date: int = Field(ge=0, le=11) + use_heuristic: bool + power_to_level: bool + use_leeway: bool + leeway_low: float = Field(ge=0) + leeway_up: float = Field(ge=0) + pumping_efficiency: float = Field(ge=0) HYDRO_PATH = "input/hydro/hydro" diff --git a/antarest/study/business/areas/properties_management.py b/antarest/study/business/areas/properties_management.py index 0bccdad784..ac3dbb902a 100644 --- a/antarest/study/business/areas/properties_management.py +++ b/antarest/study/business/areas/properties_management.py @@ -1,10 +1,23 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re import typing as t from builtins import sorted -from pydantic import root_validator +from pydantic import model_validator from antarest.core.exceptions import ChildNotFoundError +from antarest.study.business.all_optional_meta import all_optional_model from antarest.study.business.utils import FieldInfo, FormFieldsBaseModel, execute_or_add_commands from antarest.study.model import Study from antarest.study.storage.rawstudy.model.filesystem.config.area import AdequacyPatchMode @@ -37,18 +50,19 @@ def decode_filter(encoded_value: t.Set[str], current_filter: t.Optional[str] = N return ", ".join(sort_filter_options(encoded_value)) +@all_optional_model class PropertiesFormFields(FormFieldsBaseModel): - energy_cost_unsupplied: t.Optional[float] - energy_cost_spilled: t.Optional[float] - non_dispatch_power: t.Optional[bool] - dispatch_hydro_power: t.Optional[bool] - other_dispatch_power: t.Optional[bool] - filter_synthesis: t.Optional[t.Set[str]] - filter_by_year: t.Optional[t.Set[str]] + energy_cost_unsupplied: float + energy_cost_spilled: float + non_dispatch_power: bool + dispatch_hydro_power: bool + other_dispatch_power: bool + filter_synthesis: t.Set[str] + filter_by_year: t.Set[str] # version 830 - adequacy_patch_mode: t.Optional[AdequacyPatchMode] + adequacy_patch_mode: AdequacyPatchMode - @root_validator + @model_validator(mode="before") def validation(cls, values: t.Dict[str, t.Any]) -> t.Dict[str, t.Any]: filters = { "filter_synthesis": values.get("filter_synthesis"), @@ -131,7 +145,7 @@ def get_value(field_info: FieldInfo) -> t.Any: encode = field_info.get("encode") or (lambda x: x) return encode(val) - return PropertiesFormFields.construct(**{name: get_value(info) for name, info in FIELDS_INFO.items()}) + return PropertiesFormFields.model_construct(**{name: get_value(info) for name, info in FIELDS_INFO.items()}) def set_field_values( self, diff --git a/antarest/study/business/areas/renewable_management.py b/antarest/study/business/areas/renewable_management.py index 1009c9d22c..12af8abdb5 100644 --- a/antarest/study/business/areas/renewable_management.py +++ b/antarest/study/business/areas/renewable_management.py @@ -1,12 +1,23 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import collections -import json import typing as t -from pydantic import validator +from pydantic import field_validator from antarest.core.exceptions import DuplicateRenewableCluster, RenewableClusterConfigNotFound, RenewableClusterNotFound from antarest.core.model import JSON -from antarest.study.business.all_optional_meta import AllOptionalMetaclass, camel_case_model +from antarest.study.business.all_optional_meta import all_optional_model, camel_case_model from antarest.study.business.enum_ignore_case import EnumIgnoreCase from antarest.study.business.utils import execute_or_add_commands from antarest.study.model import Study @@ -34,23 +45,26 @@ class TimeSeriesInterpretation(EnumIgnoreCase): PRODUCTION_FACTOR = "production-factor" +@all_optional_model @camel_case_model -class RenewableClusterInput(RenewableProperties, metaclass=AllOptionalMetaclass, use_none=True): +class RenewableClusterInput(RenewableProperties): """ Model representing the data structure required to edit an existing renewable cluster. """ class Config: + populate_by_name = True + @staticmethod - def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: + def json_schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: schema["example"] = RenewableClusterInput( group="Gas", name="Gas Cluster XY", enabled=False, - unitCount=100, - nominalCapacity=1000.0, - tsInterpretation="power-generation", - ) + unit_count=100, + nominal_capacity=1000.0, + ts_interpretation="power-generation", + ).model_dump() class RenewableClusterCreation(RenewableClusterInput): @@ -59,7 +73,7 @@ class RenewableClusterCreation(RenewableClusterInput): """ # noinspection Pydantic - @validator("name", pre=True) + @field_validator("name", mode="before") def validate_name(cls, name: t.Optional[str]) -> str: """ Validator to check if the name is not empty. @@ -69,28 +83,29 @@ def validate_name(cls, name: t.Optional[str]) -> str: return name def to_config(self, study_version: t.Union[str, int]) -> RenewableConfigType: - values = self.dict(by_alias=False, exclude_none=True) + values = self.model_dump(by_alias=False, exclude_none=True) return create_renewable_config(study_version=study_version, **values) +@all_optional_model @camel_case_model -class RenewableClusterOutput(RenewableConfig, metaclass=AllOptionalMetaclass, use_none=True): +class RenewableClusterOutput(RenewableConfig): """ Model representing the output data structure to display the details of a renewable cluster. """ class Config: @staticmethod - def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: + def json_schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: schema["example"] = RenewableClusterOutput( id="Gas cluster YZ", group="Gas", name="Gas Cluster YZ", enabled=False, - unitCount=100, - nominalCapacity=1000.0, - tsInterpretation="power-generation", - ) + unit_count=100, + nominal_capacity=1000.0, + ts_interpretation="power-generation", + ).model_dump() def create_renewable_output( @@ -99,7 +114,7 @@ def create_renewable_output( config: t.Mapping[str, t.Any], ) -> "RenewableClusterOutput": obj = create_renewable_config(study_version=study_version, **config, id=cluster_id) - kwargs = obj.dict(by_alias=False) + kwargs = obj.model_dump(by_alias=False) return RenewableClusterOutput(**kwargs) @@ -206,7 +221,7 @@ def _make_create_cluster_cmd(self, area_id: str, cluster: RenewableConfigType) - command = CreateRenewablesCluster( area_id=area_id, cluster_name=cluster.id, - parameters=cluster.dict(by_alias=True, exclude={"id"}), + parameters=cluster.model_dump(mode="json", by_alias=True, exclude={"id"}), command_context=self.storage_service.variant_study_service.command_factory.command_context, ) return command @@ -269,16 +284,16 @@ def update_cluster( old_config = create_renewable_config(study_version, **values) # use Python values to synchronize Config and Form values - new_values = cluster_data.dict(by_alias=False, exclude_none=True) + new_values = cluster_data.model_dump(by_alias=False, exclude_none=True) new_config = old_config.copy(exclude={"id"}, update=new_values) - new_data = json.loads(new_config.json(by_alias=True, exclude={"id"})) + new_data = new_config.model_dump(mode="json", by_alias=True, exclude={"id"}) # create the dict containing the new values using aliases - data: t.Dict[str, t.Any] = { - field.alias: new_data[field.alias] - for field_name, field in new_config.__fields__.items() - if field_name in new_values - } + data: t.Dict[str, t.Any] = {} + for field_name, field in new_config.model_fields.items(): + if field_name in new_values: + name = field.alias if field.alias else field_name + data[name] = new_data[name] # create the update config commands with the modified data command_context = self.storage_service.variant_study_service.command_factory.command_context @@ -288,7 +303,7 @@ def update_cluster( ] execute_or_add_commands(study, file_study, commands, self.storage_service) - values = new_config.dict(by_alias=False) + values = new_config.model_dump(by_alias=False) return RenewableClusterOutput(**values, id=cluster_id) def delete_clusters(self, study: Study, area_id: str, cluster_ids: t.Sequence[str]) -> None: @@ -340,7 +355,7 @@ def duplicate_cluster( # Cluster duplication current_cluster = self.get_cluster(study, area_id, source_id) current_cluster.name = new_cluster_name - creation_form = RenewableClusterCreation(**current_cluster.dict(by_alias=False, exclude={"id"})) + creation_form = RenewableClusterCreation(**current_cluster.model_dump(by_alias=False, exclude={"id"})) new_config = creation_form.to_config(study.version) create_cluster_cmd = self._make_create_cluster_cmd(area_id, new_config) @@ -358,7 +373,7 @@ def duplicate_cluster( execute_or_add_commands(study, self._get_file_study(study), commands, self.storage_service) - return RenewableClusterOutput(**new_config.dict(by_alias=False)) + return RenewableClusterOutput(**new_config.model_dump(by_alias=False)) def update_renewables_props( self, @@ -375,17 +390,17 @@ def update_renewables_props( for renewable_id, update_cluster in update_renewables_by_ids.items(): # Update the renewable cluster properties. old_cluster = old_renewables_by_ids[renewable_id] - new_cluster = old_cluster.copy(update=update_cluster.dict(by_alias=False, exclude_none=True)) + new_cluster = old_cluster.copy(update=update_cluster.model_dump(by_alias=False, exclude_none=True)) new_renewables_by_areas[area_id][renewable_id] = new_cluster # Convert the DTO to a configuration object and update the configuration file. properties = create_renewable_config( - study.version, **new_cluster.dict(by_alias=False, exclude_none=True) + study.version, **new_cluster.model_dump(by_alias=False, exclude_none=True) ) path = _CLUSTER_PATH.format(area_id=area_id, cluster_id=renewable_id) cmd = UpdateConfig( target=path, - data=json.loads(properties.json(by_alias=True, exclude={"id"})), + data=properties.model_dump(mode="json", by_alias=True, exclude={"id"}), command_context=self.storage_service.variant_study_service.command_factory.command_context, ) commands.append(cmd) diff --git a/antarest/study/business/areas/st_storage_management.py b/antarest/study/business/areas/st_storage_management.py index 776f57a039..dcb5db5dc8 100644 --- a/antarest/study/business/areas/st_storage_management.py +++ b/antarest/study/business/areas/st_storage_management.py @@ -1,12 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import collections -import functools -import json import operator import typing as t import numpy as np -from pydantic import BaseModel, Extra, root_validator, validator -from requests.structures import CaseInsensitiveDict +from pydantic import BaseModel, field_validator, model_validator from typing_extensions import Literal from antarest.core.exceptions import ( @@ -18,7 +27,8 @@ STStorageNotFound, ) from antarest.core.model import JSON -from antarest.study.business.all_optional_meta import AllOptionalMetaclass, camel_case_model +from antarest.core.requests import CaseInsensitiveDict +from antarest.study.business.all_optional_meta import all_optional_model, camel_case_model from antarest.study.business.utils import execute_or_add_commands from antarest.study.model import Study from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id @@ -37,15 +47,16 @@ from antarest.study.storage.variantstudy.model.command.update_config import UpdateConfig +@all_optional_model @camel_case_model -class STStorageInput(STStorage880Properties, metaclass=AllOptionalMetaclass, use_none=True): +class STStorageInput(STStorage880Properties): """ Model representing the form used to EDIT an existing short-term storage. """ class Config: @staticmethod - def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: + def json_schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: schema["example"] = STStorageInput( name="Siemens Battery", group=STStorageGroup.BATTERY, @@ -55,7 +66,7 @@ def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: efficiency=0.94, initial_level=0.5, initial_level_optim=True, - ) + ).model_dump() class STStorageCreation(STStorageInput): @@ -64,7 +75,7 @@ class STStorageCreation(STStorageInput): """ # noinspection Pydantic - @validator("name", pre=True) + @field_validator("name", mode="before") def validate_name(cls, name: t.Optional[str]) -> str: """ Validator to check if the name is not empty. @@ -75,19 +86,20 @@ def validate_name(cls, name: t.Optional[str]) -> str: # noinspection PyUnusedLocal def to_config(self, study_version: t.Union[str, int]) -> STStorageConfigType: - values = self.dict(by_alias=False, exclude_none=True) + values = self.model_dump(by_alias=False, exclude_none=True) return create_st_storage_config(study_version=study_version, **values) +@all_optional_model @camel_case_model -class STStorageOutput(STStorage880Config, metaclass=AllOptionalMetaclass, use_none=True): +class STStorageOutput(STStorage880Config): """ Model representing the form used to display the details of a short-term storage entry. """ class Config: @staticmethod - def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: + def json_schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: schema["example"] = STStorageOutput( id="siemens_battery", name="Siemens Battery", @@ -97,7 +109,7 @@ def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: reservoir_capacity=600, efficiency=0.94, initial_level_optim=True, - ) + ).model_dump() # ============= @@ -119,13 +131,13 @@ class STStorageMatrix(BaseModel): """ class Config: - extra = Extra.forbid + extra = "forbid" data: t.List[t.List[float]] index: t.List[int] columns: t.List[int] - @validator("data") + @field_validator("data") def validate_time_series(cls, data: t.List[t.List[float]]) -> t.List[t.List[float]]: """ Validator to check the integrity of the time series data. @@ -160,7 +172,7 @@ class STStorageMatrices(BaseModel): """ class Config: - extra = Extra.forbid + extra = "forbid" pmax_injection: STStorageMatrix pmax_withdrawal: STStorageMatrix @@ -168,7 +180,7 @@ class Config: upper_rule_curve: STStorageMatrix inflows: STStorageMatrix - @validator( + @field_validator( "pmax_injection", "pmax_withdrawal", "lower_rule_curve", @@ -183,23 +195,18 @@ def validate_time_series(cls, matrix: STStorageMatrix) -> STStorageMatrix: raise ValueError("Matrix values should be between 0 and 1") return matrix - @root_validator() - def validate_rule_curve( - cls, values: t.MutableMapping[str, STStorageMatrix] - ) -> t.MutableMapping[str, STStorageMatrix]: + @model_validator(mode="after") + def validate_rule_curve(self) -> "STStorageMatrices": """ Validator to ensure 'lower_rule_curve' values are less than or equal to 'upper_rule_curve' values. """ - if "lower_rule_curve" in values and "upper_rule_curve" in values: - lower_rule_curve = values["lower_rule_curve"] - upper_rule_curve = values["upper_rule_curve"] - lower_array = np.array(lower_rule_curve.data, dtype=np.float64) - upper_array = np.array(upper_rule_curve.data, dtype=np.float64) - # noinspection PyUnresolvedReferences - if (lower_array > upper_array).any(): - raise ValueError("Each 'lower_rule_curve' value must be lower or equal to each 'upper_rule_curve'") - return values + lower_array = np.array(self.lower_rule_curve.data, dtype=np.float64) + upper_array = np.array(self.upper_rule_curve.data, dtype=np.float64) + if (lower_array > upper_array).any(): + raise ValueError("Each 'lower_rule_curve' value must be lower or equal to each 'upper_rule_curve'") + + return self # noinspection SpellCheckingInspection @@ -237,7 +244,7 @@ def create_storage_output( config: t.Mapping[str, t.Any], ) -> "STStorageOutput": obj = create_st_storage_config(study_version=study_version, **config, id=cluster_id) - kwargs = obj.dict(by_alias=False) + kwargs = obj.model_dump(by_alias=False) return STStorageOutput(**kwargs) @@ -381,17 +388,17 @@ def update_storages_props( for storage_id, update_cluster in update_storages_by_ids.items(): # Update the storage cluster properties. old_cluster = old_storages_by_ids[storage_id] - new_cluster = old_cluster.copy(update=update_cluster.dict(by_alias=False, exclude_none=True)) + new_cluster = old_cluster.copy(update=update_cluster.model_dump(by_alias=False, exclude_none=True)) new_storages_by_areas[area_id][storage_id] = new_cluster # Convert the DTO to a configuration object and update the configuration file. properties = create_st_storage_config( - study.version, **new_cluster.dict(by_alias=False, exclude_none=True) + study.version, **new_cluster.model_dump(by_alias=False, exclude_none=True) ) path = _STORAGE_LIST_PATH.format(area_id=area_id, storage_id=storage_id) cmd = UpdateConfig( target=path, - data=json.loads(properties.json(by_alias=True, exclude={"id"})), + data=properties.model_dump(mode="json", by_alias=True, exclude={"id"}), command_context=self.storage_service.variant_study_service.command_factory.command_context, ) commands.append(cmd) @@ -460,16 +467,16 @@ def update_storage( old_config = create_st_storage_config(study_version, **values) # use Python values to synchronize Config and Form values - new_values = form.dict(by_alias=False, exclude_none=True) + new_values = form.model_dump(by_alias=False, exclude_none=True) new_config = old_config.copy(exclude={"id"}, update=new_values) - new_data = json.loads(new_config.json(by_alias=True, exclude={"id"})) + new_data = new_config.model_dump(mode="json", by_alias=True, exclude={"id"}) # create the dict containing the new values using aliases - data: t.Dict[str, t.Any] = { - field.alias: new_data[field.alias] - for field_name, field in new_config.__fields__.items() - if field_name in new_values - } + data: t.Dict[str, t.Any] = {} + for field_name, field in new_config.model_fields.items(): + if field_name in new_values: + name = field.alias if field.alias else field_name + data[name] = new_data[name] # create the update config commands with the modified data command_context = self.storage_service.variant_study_service.command_factory.command_context @@ -480,7 +487,7 @@ def update_storage( ] execute_or_add_commands(study, file_study, commands, self.storage_service) - values = new_config.dict(by_alias=False) + values = new_config.model_dump(by_alias=False) return STStorageOutput(**values, id=storage_id) def delete_storages( @@ -542,7 +549,7 @@ def duplicate_cluster(self, study: Study, area_id: str, source_id: str, new_clus # We should remove the field 'enabled' for studies before v8.8 as it didn't exist if int(study.version) < 880: fields_to_exclude.add("enabled") - creation_form = STStorageCreation(**current_cluster.dict(by_alias=False, exclude=fields_to_exclude)) + creation_form = STStorageCreation(**current_cluster.model_dump(by_alias=False, exclude=fields_to_exclude)) new_config = creation_form.to_config(study.version) create_cluster_cmd = self._make_create_cluster_cmd(area_id, new_config) @@ -571,7 +578,7 @@ def duplicate_cluster(self, study: Study, area_id: str, source_id: str, new_clus execute_or_add_commands(study, self._get_file_study(study), commands, self.storage_service) - return STStorageOutput(**new_config.dict(by_alias=False)) + return STStorageOutput(**new_config.model_dump(by_alias=False)) def get_matrix( self, @@ -672,17 +679,18 @@ def validate_matrices( Returns: bool: True if validation is successful. """ - # Create a partial function to retrieve matrix objects - get_matrix_obj = functools.partial(self._get_matrix_obj, study, area_id, storage_id) + + def validate_matrix(matrix_type: STStorageTimeSeries) -> STStorageMatrix: + return STStorageMatrix.model_validate(self._get_matrix_obj(study, area_id, storage_id, matrix_type)) # Validate matrices by constructing the `STStorageMatrices` object # noinspection SpellCheckingInspection STStorageMatrices( - pmax_injection=get_matrix_obj("pmax_injection"), - pmax_withdrawal=get_matrix_obj("pmax_withdrawal"), - lower_rule_curve=get_matrix_obj("lower_rule_curve"), - upper_rule_curve=get_matrix_obj("upper_rule_curve"), - inflows=get_matrix_obj("inflows"), + pmax_injection=validate_matrix("pmax_injection"), + pmax_withdrawal=validate_matrix("pmax_withdrawal"), + lower_rule_curve=validate_matrix("lower_rule_curve"), + upper_rule_curve=validate_matrix("upper_rule_curve"), + inflows=validate_matrix("inflows"), ) # Validation successful diff --git a/antarest/study/business/areas/thermal_management.py b/antarest/study/business/areas/thermal_management.py index 205965eb54..c1a06068aa 100644 --- a/antarest/study/business/areas/thermal_management.py +++ b/antarest/study/business/areas/thermal_management.py @@ -1,9 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import collections -import json import typing as t from pathlib import Path -from pydantic import validator +from pydantic import field_validator from antarest.core.exceptions import ( DuplicateThermalCluster, @@ -13,7 +24,7 @@ WrongMatrixHeightError, ) from antarest.core.model import JSON -from antarest.study.business.all_optional_meta import AllOptionalMetaclass, camel_case_model +from antarest.study.business.all_optional_meta import all_optional_model, camel_case_model from antarest.study.business.utils import execute_or_add_commands from antarest.study.model import Study from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id @@ -42,33 +53,35 @@ _ALL_CLUSTERS_PATH = "input/thermal/clusters" +@all_optional_model @camel_case_model -class ThermalClusterInput(Thermal870Properties, metaclass=AllOptionalMetaclass, use_none=True): +class ThermalClusterInput(Thermal870Properties): """ Model representing the data structure required to edit an existing thermal cluster within a study. """ class Config: @staticmethod - def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: + def json_schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: schema["example"] = ThermalClusterInput( group="Gas", name="Gas Cluster XY", enabled=False, - unitCount=100, - nominalCapacity=1000.0, - genTs="use global", + unit_count=100, + nominal_capacity=1000.0, + gen_ts="use global", co2=7.0, - ) + ).model_dump() +@camel_case_model class ThermalClusterCreation(ThermalClusterInput): """ Model representing the data structure required to create a new thermal cluster within a study. """ # noinspection Pydantic - @validator("name", pre=True) + @field_validator("name", mode="before") def validate_name(cls, name: t.Optional[str]) -> str: """ Validator to check if the name is not empty. @@ -78,29 +91,30 @@ def validate_name(cls, name: t.Optional[str]) -> str: return name def to_config(self, study_version: t.Union[str, int]) -> ThermalConfigType: - values = self.dict(by_alias=False, exclude_none=True) + values = self.model_dump(by_alias=False, exclude_none=True) return create_thermal_config(study_version=study_version, **values) +@all_optional_model @camel_case_model -class ThermalClusterOutput(Thermal870Config, metaclass=AllOptionalMetaclass, use_none=True): +class ThermalClusterOutput(Thermal870Config): """ Model representing the output data structure to display the details of a thermal cluster within a study. """ class Config: @staticmethod - def schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: + def json_schema_extra(schema: t.MutableMapping[str, t.Any]) -> None: schema["example"] = ThermalClusterOutput( id="Gas cluster YZ", group="Gas", name="Gas Cluster YZ", enabled=False, - unitCount=100, - nominalCapacity=1000.0, - genTs="use global", + unit_count=100, + nominal_capacity=1000.0, + gen_ts="use global", co2=7.0, - ) + ).model_dump() def create_thermal_output( @@ -109,7 +123,7 @@ def create_thermal_output( config: t.Mapping[str, t.Any], ) -> "ThermalClusterOutput": obj = create_thermal_config(study_version=study_version, **config, id=cluster_id) - kwargs = obj.dict(by_alias=False) + kwargs = obj.model_dump(by_alias=False) return ThermalClusterOutput(**kwargs) @@ -240,15 +254,17 @@ def update_thermals_props( for thermal_id, update_cluster in update_thermals_by_ids.items(): # Update the thermal cluster properties. old_cluster = old_thermals_by_ids[thermal_id] - new_cluster = old_cluster.copy(update=update_cluster.dict(by_alias=False, exclude_none=True)) + new_cluster = old_cluster.copy(update=update_cluster.model_dump(by_alias=False, exclude_none=True)) new_thermals_by_areas[area_id][thermal_id] = new_cluster # Convert the DTO to a configuration object and update the configuration file. - properties = create_thermal_config(study.version, **new_cluster.dict(by_alias=False, exclude_none=True)) + properties = create_thermal_config( + study.version, **new_cluster.model_dump(by_alias=False, exclude_none=True) + ) path = _CLUSTER_PATH.format(area_id=area_id, cluster_id=thermal_id) cmd = UpdateConfig( target=path, - data=json.loads(properties.json(by_alias=True, exclude={"id"})), + data=properties.model_dump(mode="json", by_alias=True, exclude={"id"}), command_context=self.storage_service.variant_study_service.command_factory.command_context, ) commands.append(cmd) @@ -290,12 +306,13 @@ def create_cluster(self, study: Study, area_id: str, cluster_data: ThermalCluste def _make_create_cluster_cmd(self, area_id: str, cluster: ThermalConfigType) -> CreateCluster: # NOTE: currently, in the `CreateCluster` class, there is a confusion # between the cluster name and the cluster ID (which is a section name). - command = CreateCluster( - area_id=area_id, - cluster_name=cluster.id, - parameters=cluster.dict(by_alias=True, exclude={"id"}), - command_context=self.storage_service.variant_study_service.command_factory.command_context, - ) + args = { + "area_id": area_id, + "cluster_name": cluster.id, + "parameters": cluster.model_dump(mode="json", by_alias=True, exclude={"id"}), + "command_context": self.storage_service.variant_study_service.command_factory.command_context, + } + command = CreateCluster.model_validate(args) return command def update_cluster( @@ -334,16 +351,16 @@ def update_cluster( old_config = create_thermal_config(study_version, **values) # Use Python values to synchronize Config and Form values - new_values = cluster_data.dict(by_alias=False, exclude_none=True) + new_values = cluster_data.model_dump(by_alias=False, exclude_none=True) new_config = old_config.copy(exclude={"id"}, update=new_values) - new_data = json.loads(new_config.json(by_alias=True, exclude={"id"})) + new_data = new_config.model_dump(mode="json", by_alias=True, exclude={"id"}) # create the dict containing the new values using aliases - data: t.Dict[str, t.Any] = { - field.alias: new_data[field.alias] - for field_name, field in new_config.__fields__.items() - if field_name in new_values - } + data: t.Dict[str, t.Any] = {} + for field_name, field in new_config.model_fields.items(): + if field_name in new_values: + name = field.alias if field.alias else field_name + data[name] = new_data[name] # create the update config commands with the modified data command_context = self.storage_service.variant_study_service.command_factory.command_context @@ -353,8 +370,8 @@ def update_cluster( ] execute_or_add_commands(study, file_study, commands, self.storage_service) - values = new_config.dict(by_alias=False) - return ThermalClusterOutput(**values, id=cluster_id) + values = {**new_config.model_dump(mode="json", by_alias=False), "id": cluster_id} + return ThermalClusterOutput.model_validate(values) def delete_clusters(self, study: Study, area_id: str, cluster_ids: t.Sequence[str]) -> None: """ @@ -406,7 +423,7 @@ def duplicate_cluster( # Cluster duplication source_cluster = self.get_cluster(study, area_id, source_id) source_cluster.name = new_cluster_name - creation_form = ThermalClusterCreation(**source_cluster.dict(by_alias=False, exclude={"id"})) + creation_form = ThermalClusterCreation(**source_cluster.model_dump(by_alias=False, exclude={"id"})) new_config = creation_form.to_config(study.version) create_cluster_cmd = self._make_create_cluster_cmd(area_id, new_config) @@ -439,7 +456,7 @@ def duplicate_cluster( execute_or_add_commands(study, self._get_file_study(study), commands, self.storage_service) - return ThermalClusterOutput(**new_config.dict(by_alias=False)) + return ThermalClusterOutput(**new_config.model_dump(by_alias=False)) def validate_series(self, study: Study, area_id: str, cluster_id: str) -> bool: lower_cluster_id = cluster_id.lower() diff --git a/antarest/study/business/binding_constraint_management.py b/antarest/study/business/binding_constraint_management.py index 50220da54a..4ef2a5fffc 100644 --- a/antarest/study/business/binding_constraint_management.py +++ b/antarest/study/business/binding_constraint_management.py @@ -1,11 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import collections -import json import logging import typing as t import numpy as np -from pydantic import BaseModel, Field, root_validator, validator -from requests.utils import CaseInsensitiveDict +from pydantic import BaseModel, Field, field_validator, model_validator from antarest.core.exceptions import ( BindingConstraintNotFound, @@ -19,11 +29,15 @@ WrongMatrixHeightError, ) from antarest.core.model import JSON +from antarest.core.requests import CaseInsensitiveDict from antarest.core.utils.string import to_camel_case from antarest.study.business.all_optional_meta import camel_case_model from antarest.study.business.utils import execute_or_add_commands from antarest.study.model import Study from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import ( + DEFAULT_GROUP, + DEFAULT_OPERATOR, + DEFAULT_TIMESTEP, BindingConstraintFrequency, BindingConstraintOperator, ) @@ -43,7 +57,6 @@ default_bc_weekly_daily as default_bc_weekly_daily_86, ) from antarest.study.storage.variantstudy.model.command.create_binding_constraint import ( - DEFAULT_GROUP, EXPECTED_MATRIX_SHAPES, BindingConstraintMatrices, BindingConstraintPropertiesBase, @@ -115,12 +128,12 @@ class ConstraintTerm(BaseModel): data: the constraint term data (link or cluster), if any. """ - id: t.Optional[str] - weight: t.Optional[float] - offset: t.Optional[int] - data: t.Optional[t.Union[LinkTerm, ClusterTerm]] + id: t.Optional[str] = None + weight: t.Optional[float] = None + offset: t.Optional[int] = None + data: t.Optional[t.Union[LinkTerm, ClusterTerm]] = None - @validator("id") + @field_validator("id") def id_to_lower(cls, v: t.Optional[str]) -> t.Optional[str]: """Ensure the ID is lower case.""" if v is None: @@ -251,7 +264,7 @@ class ConstraintInput(BindingConstraintMatrices, ConstraintInput870): class ConstraintCreation(ConstraintInput): name: str - @root_validator(pre=True) + @model_validator(mode="before") def check_matrices_dimensions(cls, values: t.Dict[str, t.Any]) -> t.Dict[str, t.Any]: for _key in ["time_step"] + [m.value for m in TermMatrices]: _camel = to_camel_case(_key) @@ -302,20 +315,19 @@ def check_matrices_dimensions(cls, values: t.Dict[str, t.Any]) -> t.Dict[str, t. raise ValueError(err_msg) -@camel_case_model class ConstraintOutputBase(BindingConstraintPropertiesBase): id: str name: str terms: t.MutableSequence[ConstraintTerm] = Field(default_factory=lambda: []) + # I have to redefine the time_step attribute to give him another alias. + time_step: t.Optional[BindingConstraintFrequency] = Field(DEFAULT_TIMESTEP, alias="timeStep") # type: ignore -@camel_case_model class ConstraintOutput830(ConstraintOutputBase): - filter_year_by_year: str = "" - filter_synthesis: str = "" + filter_year_by_year: str = Field(default="", alias="filterYearByYear") + filter_synthesis: str = Field(default="", alias="filterSynthesis") -@camel_case_model class ConstraintOutput870(ConstraintOutput830): group: str = DEFAULT_GROUP @@ -358,7 +370,7 @@ def _get_references_by_widths( continue matrix_height = matrix.shape[0] - expected_height = EXPECTED_MATRIX_SHAPES[bc.time_step][0] + expected_height = EXPECTED_MATRIX_SHAPES[bc.time_step][0] # type: ignore if matrix_height != expected_height: raise WrongMatrixHeightError( f"The binding constraint '{bc.name}' should have {expected_height} rows, currently: {matrix_height}" @@ -429,17 +441,22 @@ def parse_and_add_terms(key: str, value: t.Any, adapted_constraint: ConstraintOu id=key, weight=weight, offset=offset, - data={ - "area1": term_data[0], - "area2": term_data[1], - }, + data=LinkTerm.model_validate( + { + "area1": term_data[0], + "area2": term_data[1], + } + ), ) ) # Cluster term else: adapted_constraint.terms.append( ConstraintTerm( - id=key, weight=weight, offset=offset, data={"area": term_data[0], "cluster": term_data[1]} + id=key, + weight=weight, + offset=offset, + data=ClusterTerm.model_validate({"area": term_data[0], "cluster": term_data[1]}), ) ) @@ -470,8 +487,8 @@ def constraint_model_adapter(constraint: t.Mapping[str, t.Any], version: int) -> "id": constraint["id"], "name": constraint["name"], "enabled": constraint.get("enabled", True), - "time_step": constraint.get("type", BindingConstraintFrequency.HOURLY), - "operator": constraint.get("operator", BindingConstraintOperator.EQUAL), + "time_step": constraint.get("type", DEFAULT_TIMESTEP), + "operator": constraint.get("operator", DEFAULT_OPERATOR), "comments": constraint.get("comments", ""), "terms": constraint.get("terms", []), } @@ -587,7 +604,7 @@ def get_grouped_constraints(self, study: Study) -> t.Mapping[str, t.Sequence[Con storage_service = self.storage_service.get_storage(study) file_study = storage_service.get_raw(study) config = file_study.tree.get(["input", "bindingconstraints", "bindingconstraints"]) - grouped_constraints = CaseInsensitiveDict() # type: ignore + grouped_constraints = CaseInsensitiveDict() for constraint in config.values(): constraint_config = self.constraint_model_adapter(constraint, int(study.version)) @@ -694,10 +711,12 @@ def create_binding_constraint( if bc_id in {bc.id for bc in self.get_binding_constraints(study)}: raise DuplicateConstraintName(f"A binding constraint with the same name already exists: {bc_id}.") - # TODO: the default operator should be fixed somewhere so this condition can be consistent - check_attributes_coherence(data, version, data.operator or BindingConstraintOperator.EQUAL) + check_attributes_coherence(data, version, data.operator or DEFAULT_OPERATOR) - new_constraint = {"name": data.name, **json.loads(data.json(exclude={"terms", "name"}, exclude_none=True))} + new_constraint = { + "name": data.name, + **data.model_dump(mode="json", exclude={"terms", "name"}, exclude_none=True), + } args = { **new_constraint, "command_context": self.storage_service.variant_study_service.command_factory.command_context, @@ -709,7 +728,7 @@ def create_binding_constraint( # Validates the matrices. Needed when the study is a variant because we only append the command to the list if isinstance(study, VariantStudy): - time_step = data.time_step or BindingConstraintFrequency.HOURLY + time_step = data.time_step or DEFAULT_TIMESTEP command.validates_and_fills_matrices( time_step=time_step, specific_matrices=None, version=version, create=True ) @@ -735,7 +754,7 @@ def update_binding_constraint( upd_constraint = { "id": binding_constraint_id, - **json.loads(data.json(exclude={"terms", "name"}, exclude_none=True)), + **data.model_dump(mode="json", exclude={"terms", "name"}, exclude_none=True), } args = { **upd_constraint, @@ -755,7 +774,7 @@ def update_binding_constraint( updated_matrices = [term for term in [m.value for m in TermMatrices] if getattr(data, term)] time_step = data.time_step or existing_constraint.time_step command.validates_and_fills_matrices( - time_step=time_step, specific_matrices=updated_matrices, version=study_version, create=False + time_step=time_step, specific_matrices=updated_matrices, version=study_version, create=False # type: ignore ) execute_or_add_commands(study, file_study, [command], self.storage_service) @@ -821,11 +840,9 @@ def _update_constraint_with_terms( coeffs = { term_id: [term.weight, term.offset] if term.offset else [term.weight] for term_id, term in terms.items() } - command = UpdateBindingConstraint( - id=bc.id, - coeffs=coeffs, - command_context=self.storage_service.variant_study_service.command_factory.command_context, - ) + command_context = self.storage_service.variant_study_service.command_factory.command_context + args = {"id": bc.id, "coeffs": coeffs, "command_context": command_context} + command = UpdateBindingConstraint.model_validate(args) file_study = self.storage_service.get_storage(study).get_raw(study) execute_or_add_commands(study, file_study, [command], self.storage_service) @@ -848,7 +865,7 @@ def update_constraint_terms( if update_mode == "add": for term in constraint_terms: if term.data is None: - raise InvalidConstraintTerm(binding_constraint_id, term.json()) + raise InvalidConstraintTerm(binding_constraint_id, term.model_dump_json()) constraint = self.get_binding_constraint(study, binding_constraint_id) existing_terms = collections.OrderedDict((term.generate_id(), term) for term in constraint.terms) diff --git a/antarest/study/business/config_management.py b/antarest/study/business/config_management.py index 35f46c01ca..856a48b535 100644 --- a/antarest/study/business/config_management.py +++ b/antarest/study/business/config_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Dict, List, Optional from antarest.study.business.utils import execute_or_add_commands diff --git a/antarest/study/business/correlation_management.py b/antarest/study/business/correlation_management.py index b9abcff2f2..c05b293b3e 100644 --- a/antarest/study/business/correlation_management.py +++ b/antarest/study/business/correlation_management.py @@ -1,13 +1,25 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Management of spatial correlations between the different generators. The generators are of the same category and can be hydraulic, wind, load or solar. """ import collections -from typing import Dict, List, Sequence +from typing import Dict, List, Sequence, Union import numpy as np import numpy.typing as npt -from pydantic import conlist, validator +from pydantic import ValidationInfo, field_validator from antarest.core.exceptions import AreaNotFound from antarest.study.business.area_management import AreaInfoDTO @@ -28,7 +40,7 @@ class AreaCoefficientItem(FormFieldsBaseModel): """ class Config: - allow_population_by_field_name = True + populate_by_name = True area_id: str coefficient: float @@ -45,7 +57,7 @@ class CorrelationFormFields(FormFieldsBaseModel): correlation: List[AreaCoefficientItem] # noinspection PyMethodParameters - @validator("correlation") + @field_validator("correlation") def check_correlation(cls, correlation: List[AreaCoefficientItem]) -> List[AreaCoefficientItem]: if not correlation: raise ValueError("correlation must not be empty") @@ -72,13 +84,21 @@ class CorrelationMatrix(FormFieldsBaseModel): data: A 2D-array matrix of correlation coefficients. """ - index: conlist(str, min_items=1) # type: ignore - columns: conlist(str, min_items=1) # type: ignore + index: List[str] + columns: List[str] data: List[List[float]] # NonNegativeFloat not necessary + @field_validator("index", "columns", mode="before") + def validate_list_length(cls, values: List[str]) -> List[str]: + if len(values) == 0: + raise ValueError("correlation matrix cannot have 0 columns/index") + return values + # noinspection PyMethodParameters - @validator("data") - def validate_correlation_matrix(cls, data: List[List[float]], values: Dict[str, List[str]]) -> List[List[float]]: + @field_validator("data", mode="before") + def validate_correlation_matrix( + cls, data: List[List[float]], values: Union[Dict[str, List[str]], ValidationInfo] + ) -> List[List[float]]: """ Validates the correlation matrix by checking its shape and range of coefficients. @@ -100,8 +120,9 @@ def validate_correlation_matrix(cls, data: List[List[float]], values: Dict[str, """ array = np.array(data) - rows = len(values.get("index", [])) - cols = len(values.get("columns", [])) + new_values = values if isinstance(values, dict) else values.data + rows = len(new_values.get("index", [])) + cols = len(new_values.get("columns", [])) if array.size == 0: raise ValueError("correlation matrix must not be empty") @@ -117,7 +138,7 @@ def validate_correlation_matrix(cls, data: List[List[float]], values: Dict[str, return data class Config: - schema_extra = { + json_schema_extra = { "example": { "columns": ["north", "east", "south", "west"], "data": [ diff --git a/antarest/study/business/district_manager.py b/antarest/study/business/district_manager.py index 5a214c284c..c642d61531 100644 --- a/antarest/study/business/district_manager.py +++ b/antarest/study/business/district_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List from pydantic import BaseModel @@ -57,16 +69,19 @@ def get_districts(self, study: Study) -> List[DistrictInfoDTO]: """ file_study = self.storage_service.get_storage(study).get_raw(study) all_areas = list(file_study.config.areas) - return [ - DistrictInfoDTO( - id=district_id, - name=district.name, - areas=district.get_areas(all_areas), - output=district.output, - comments=file_study.tree.get(["input", "areas", "sets", district_id]).get("comments", ""), + districts = [] + for district_id, district in file_study.config.sets.items(): + assert district.name is not None + districts.append( + DistrictInfoDTO( + id=district_id, + name=district.name, + areas=district.get_areas(all_areas), + output=district.output, + comments=file_study.tree.get(["input", "areas", "sets", district_id]).get("comments", ""), + ) ) - for district_id, district in file_study.config.sets.items() - ] + return districts def create_district( self, @@ -136,14 +151,14 @@ def update_district( file_study = self.storage_service.get_storage(study).get_raw(study) if district_id not in file_study.config.sets: raise DistrictNotFound(district_id) - areas = frozenset(dto.areas or []) - all_areas = frozenset(file_study.config.areas) + areas = set(dto.areas or []) + all_areas = set(file_study.config.areas) if invalid_areas := areas - all_areas: raise AreaNotFound(*invalid_areas) command = UpdateDistrict( id=district_id, base_filter=DistrictBaseFilter.remove_all, - filter_items=areas, + filter_items=dto.areas or [], output=dto.output, comments=dto.comments, command_context=self.storage_service.variant_study_service.command_factory.command_context, diff --git a/antarest/study/business/enum_ignore_case.py b/antarest/study/business/enum_ignore_case.py index aa784aa9c4..2259d229f7 100644 --- a/antarest/study/business/enum_ignore_case.py +++ b/antarest/study/business/enum_ignore_case.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import enum import typing diff --git a/antarest/study/business/general_management.py b/antarest/study/business/general_management.py index 4cf2dc62e0..53e1b9a2ed 100644 --- a/antarest/study/business/general_management.py +++ b/antarest/study/business/general_management.py @@ -1,7 +1,20 @@ -from typing import Any, Dict, List, Optional, cast - -from pydantic import PositiveInt, StrictBool, conint, root_validator - +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from typing import Any, Dict, List, Union, cast + +from pydantic import PositiveInt, StrictBool, ValidationInfo, conint, model_validator + +from antarest.study.business.all_optional_meta import all_optional_model from antarest.study.business.enum_ignore_case import EnumIgnoreCase from antarest.study.business.utils import GENERAL_DATA_PATH, FieldInfo, FormFieldsBaseModel, execute_or_add_commands from antarest.study.model import Study @@ -51,39 +64,41 @@ class BuildingMode(EnumIgnoreCase): DayNumberType = conint(ge=1, le=366) +@all_optional_model class GeneralFormFields(FormFieldsBaseModel): - mode: Optional[Mode] - first_day: Optional[DayNumberType] # type: ignore - last_day: Optional[DayNumberType] # type: ignore - horizon: Optional[str] # Don't use `StrictStr` because it can be an int - first_month: Optional[Month] - first_week_day: Optional[WeekDay] - first_january: Optional[WeekDay] - leap_year: Optional[StrictBool] - nb_years: Optional[PositiveInt] - building_mode: Optional[BuildingMode] - selection_mode: Optional[StrictBool] - year_by_year: Optional[StrictBool] - simulation_synthesis: Optional[StrictBool] - mc_scenario: Optional[StrictBool] + mode: Mode + first_day: DayNumberType # type: ignore + last_day: DayNumberType # type: ignore + horizon: Union[str, int] + first_month: Month + first_week_day: WeekDay + first_january: WeekDay + leap_year: StrictBool + nb_years: PositiveInt + building_mode: BuildingMode + selection_mode: StrictBool + year_by_year: StrictBool + simulation_synthesis: StrictBool + mc_scenario: StrictBool # Geographic trimming + Thematic trimming. # For study versions < 710 - filtering: Optional[StrictBool] + filtering: StrictBool # For study versions >= 710 - geographic_trimming: Optional[StrictBool] - thematic_trimming: Optional[StrictBool] - - @root_validator - def day_fields_validation(cls, values: Dict[str, Any]) -> Dict[str, Any]: - first_day = values.get("first_day") - last_day = values.get("last_day") - leap_year = values.get("leap_year") + geographic_trimming: StrictBool + thematic_trimming: StrictBool + + @model_validator(mode="before") + def day_fields_validation(cls, values: Union[Dict[str, Any], ValidationInfo]) -> Dict[str, Any]: + new_values = values if isinstance(values, dict) else values.data + first_day = new_values.get("first_day") + last_day = new_values.get("last_day") + leap_year = new_values.get("leap_year") day_fields = [first_day, last_day, leap_year] if all(v is None for v in day_fields): # The user wishes to update another field than these three. # no need to validate anything: - return values + return new_values if any(v is None for v in day_fields): raise ValueError("First day, last day and leap year fields must be defined together") @@ -98,7 +113,7 @@ def day_fields_validation(cls, values: Dict[str, Any]) -> Dict[str, Any]: if last_day > num_days_in_year: raise ValueError(f"Last day cannot be greater than {num_days_in_year}") - return values + return new_values GENERAL = "general" diff --git a/antarest/study/business/link_management.py b/antarest/study/business/link_management.py index 744401772a..6f696d2a5e 100644 --- a/antarest/study/business/link_management.py +++ b/antarest/study/business/link_management.py @@ -1,10 +1,22 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from pydantic import BaseModel from antarest.core.exceptions import ConfigFileNotFound from antarest.core.model import JSON -from antarest.study.business.all_optional_meta import AllOptionalMetaclass, camel_case_model +from antarest.study.business.all_optional_meta import all_optional_model, camel_case_model from antarest.study.business.utils import execute_or_add_commands from antarest.study.model import RawStudy from antarest.study.storage.rawstudy.model.filesystem.config.links import LinkProperties @@ -28,8 +40,9 @@ class LinkInfoDTO(BaseModel): ui: t.Optional[LinkUIDTO] = None +@all_optional_model @camel_case_model -class LinkOutput(LinkProperties, metaclass=AllOptionalMetaclass, use_none=True): +class LinkOutput(LinkProperties): """ DTO object use to get the link information. """ @@ -109,7 +122,7 @@ def get_all_links_props(self, study: RawStudy) -> t.Mapping[t.Tuple[str, str], L for area2_id, properties_cfg in property_map.items(): area1_id, area2_id = sorted([area1_id, area2_id]) properties = LinkProperties(**properties_cfg) - links_by_ids[(area1_id, area2_id)] = LinkOutput(**properties.dict(by_alias=False)) + links_by_ids[(area1_id, area2_id)] = LinkOutput(**properties.model_dump(by_alias=False)) return links_by_ids @@ -125,11 +138,11 @@ def update_links_props( for (area1, area2), update_link_dto in update_links_by_ids.items(): # Update the link properties. old_link_dto = old_links_by_ids[(area1, area2)] - new_link_dto = old_link_dto.copy(update=update_link_dto.dict(by_alias=False, exclude_none=True)) + new_link_dto = old_link_dto.copy(update=update_link_dto.model_dump(by_alias=False, exclude_none=True)) new_links_by_ids[(area1, area2)] = new_link_dto # Convert the DTO to a configuration object and update the configuration file. - properties = LinkProperties(**new_link_dto.dict(by_alias=False)) + properties = LinkProperties(**new_link_dto.model_dump(by_alias=False)) path = f"{_ALL_LINKS_PATH}/{area1}/properties/{area2}" cmd = UpdateConfig( target=path, diff --git a/antarest/study/business/matrix_management.py b/antarest/study/business/matrix_management.py index 282ddebedd..67f809b7e8 100644 --- a/antarest/study/business/matrix_management.py +++ b/antarest/study/business/matrix_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import itertools import logging import operator diff --git a/antarest/study/business/optimization_management.py b/antarest/study/business/optimization_management.py index 5defcc2a2a..cb599d12e2 100644 --- a/antarest/study/business/optimization_management.py +++ b/antarest/study/business/optimization_management.py @@ -1,7 +1,20 @@ -from typing import Any, Dict, List, Optional, Union, cast +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from typing import Any, Dict, List, Union, cast from pydantic.types import StrictBool +from antarest.study.business.all_optional_meta import all_optional_model from antarest.study.business.enum_ignore_case import EnumIgnoreCase from antarest.study.business.utils import GENERAL_DATA_PATH, FieldInfo, FormFieldsBaseModel, execute_or_add_commands from antarest.study.model import Study @@ -33,24 +46,20 @@ class SimplexOptimizationRange(EnumIgnoreCase): WEEK = "week" +@all_optional_model class OptimizationFormFields(FormFieldsBaseModel): - binding_constraints: Optional[StrictBool] - hurdle_costs: Optional[StrictBool] - transmission_capacities: Optional[ - Union[ - StrictBool, - Union[LegacyTransmissionCapacities, TransmissionCapacities], - ] - ] - thermal_clusters_min_stable_power: Optional[StrictBool] - thermal_clusters_min_ud_time: Optional[StrictBool] - day_ahead_reserve: Optional[StrictBool] - primary_reserve: Optional[StrictBool] - strategic_reserve: Optional[StrictBool] - spinning_reserve: Optional[StrictBool] - export_mps: Optional[Union[bool, str]] - unfeasible_problem_behavior: Optional[UnfeasibleProblemBehavior] - simplex_optimization_range: Optional[SimplexOptimizationRange] + binding_constraints: StrictBool + hurdle_costs: StrictBool + transmission_capacities: Union[StrictBool, LegacyTransmissionCapacities, TransmissionCapacities] + thermal_clusters_min_stable_power: StrictBool + thermal_clusters_min_ud_time: StrictBool + day_ahead_reserve: StrictBool + primary_reserve: StrictBool + strategic_reserve: StrictBool + spinning_reserve: StrictBool + export_mps: Union[bool, str] + unfeasible_problem_behavior: UnfeasibleProblemBehavior + simplex_optimization_range: SimplexOptimizationRange OPTIMIZATION_PATH = f"{GENERAL_DATA_PATH}/optimization" diff --git a/antarest/study/business/playlist_management.py b/antarest/study/business/playlist_management.py index 89c9f6ea17..fef4a4d2a4 100644 --- a/antarest/study/business/playlist_management.py +++ b/antarest/study/business/playlist_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Dict, List, Union from pydantic.types import StrictBool, StrictFloat, StrictInt diff --git a/antarest/study/business/scenario_builder_management.py b/antarest/study/business/scenario_builder_management.py index 0f7c94f7bb..c8a38b28c3 100644 --- a/antarest/study/business/scenario_builder_management.py +++ b/antarest/study/business/scenario_builder_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import enum import typing as t diff --git a/antarest/study/business/table_mode_management.py b/antarest/study/business/table_mode_management.py index bc31683139..342c1c5abb 100644 --- a/antarest/study/business/table_mode_management.py +++ b/antarest/study/business/table_mode_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import collections import typing as t @@ -83,36 +95,37 @@ def __init__( def _get_table_data_unsafe(self, study: RawStudy, table_type: TableModeType) -> TableDataDTO: if table_type == TableModeType.AREA: areas_map = self._area_manager.get_all_area_props(study) - data = {area_id: area.dict(by_alias=True) for area_id, area in areas_map.items()} + data = {area_id: area.model_dump(by_alias=True) for area_id, area in areas_map.items()} elif table_type == TableModeType.LINK: links_map = self._link_manager.get_all_links_props(study) data = { - f"{area1_id} / {area2_id}": link.dict(by_alias=True) for (area1_id, area2_id), link in links_map.items() + f"{area1_id} / {area2_id}": link.model_dump(by_alias=True) + for (area1_id, area2_id), link in links_map.items() } elif table_type == TableModeType.THERMAL: thermals_by_areas = self._thermal_manager.get_all_thermals_props(study) data = { - f"{area_id} / {cluster_id}": cluster.dict(by_alias=True, exclude={"id", "name"}) + f"{area_id} / {cluster_id}": cluster.model_dump(by_alias=True, exclude={"id", "name"}) for area_id, thermals_by_ids in thermals_by_areas.items() for cluster_id, cluster in thermals_by_ids.items() } elif table_type == TableModeType.RENEWABLE: renewables_by_areas = self._renewable_manager.get_all_renewables_props(study) data = { - f"{area_id} / {cluster_id}": cluster.dict(by_alias=True, exclude={"id", "name"}) + f"{area_id} / {cluster_id}": cluster.model_dump(by_alias=True, exclude={"id", "name"}) for area_id, renewables_by_ids in renewables_by_areas.items() for cluster_id, cluster in renewables_by_ids.items() } elif table_type == TableModeType.ST_STORAGE: storages_by_areas = self._st_storage_manager.get_all_storages_props(study) data = { - f"{area_id} / {cluster_id}": cluster.dict(by_alias=True, exclude={"id", "name"}) + f"{area_id} / {cluster_id}": cluster.model_dump(by_alias=True, exclude={"id", "name"}) for area_id, storages_by_ids in storages_by_areas.items() for cluster_id, cluster in storages_by_ids.items() } elif table_type == TableModeType.BINDING_CONSTRAINT: bc_seq = self._binding_constraint_manager.get_binding_constraints(study) - data = {bc.id: bc.dict(by_alias=True, exclude={"id", "name", "terms"}) for bc in bc_seq} + data = {bc.id: bc.model_dump(by_alias=True, exclude={"id", "name", "terms"}) for bc in bc_seq} else: # pragma: no cover raise NotImplementedError(f"Table type {table_type} not implemented") return data @@ -177,13 +190,13 @@ def update_table_data( # Use AreaOutput to update properties of areas, which may include `None` values area_props_by_ids = {key: AreaOutput(**values) for key, values in data.items()} areas_map = self._area_manager.update_areas_props(study, area_props_by_ids) - data = {area_id: area.dict(by_alias=True, exclude_none=True) for area_id, area in areas_map.items()} + data = {area_id: area.model_dump(by_alias=True, exclude_none=True) for area_id, area in areas_map.items()} return data elif table_type == TableModeType.LINK: links_map = {tuple(key.split(" / ")): LinkOutput(**values) for key, values in data.items()} updated_map = self._link_manager.update_links_props(study, links_map) # type: ignore data = { - f"{area1_id} / {area2_id}": link.dict(by_alias=True) + f"{area1_id} / {area2_id}": link.model_dump(by_alias=True) for (area1_id, area2_id), link in updated_map.items() } return data @@ -195,7 +208,7 @@ def update_table_data( thermals_by_areas[area_id][cluster_id] = ThermalClusterInput(**values) thermals_map = self._thermal_manager.update_thermals_props(study, thermals_by_areas) data = { - f"{area_id} / {cluster_id}": cluster.dict(by_alias=True, exclude={"id", "name"}) + f"{area_id} / {cluster_id}": cluster.model_dump(by_alias=True, exclude={"id", "name"}) for area_id, thermals_by_ids in thermals_map.items() for cluster_id, cluster in thermals_by_ids.items() } @@ -208,7 +221,7 @@ def update_table_data( renewables_by_areas[area_id][cluster_id] = RenewableClusterInput(**values) renewables_map = self._renewable_manager.update_renewables_props(study, renewables_by_areas) data = { - f"{area_id} / {cluster_id}": cluster.dict(by_alias=True, exclude={"id", "name"}) + f"{area_id} / {cluster_id}": cluster.model_dump(by_alias=True, exclude={"id", "name"}) for area_id, renewables_by_ids in renewables_map.items() for cluster_id, cluster in renewables_by_ids.items() } @@ -221,7 +234,7 @@ def update_table_data( storages_by_areas[area_id][cluster_id] = STStorageInput(**values) storages_map = self._st_storage_manager.update_storages_props(study, storages_by_areas) data = { - f"{area_id} / {cluster_id}": cluster.dict(by_alias=True, exclude={"id", "name"}) + f"{area_id} / {cluster_id}": cluster.model_dump(by_alias=True, exclude={"id", "name"}) for area_id, storages_by_ids in storages_map.items() for cluster_id, cluster in storages_by_ids.items() } @@ -229,7 +242,9 @@ def update_table_data( elif table_type == TableModeType.BINDING_CONSTRAINT: bcs_by_ids = {key: ConstraintInput(**values) for key, values in data.items()} bcs_map = self._binding_constraint_manager.update_binding_constraints(study, bcs_by_ids) - return {bc_id: bc.dict(by_alias=True, exclude={"id", "name", "terms"}) for bc_id, bc in bcs_map.items()} + return { + bc_id: bc.model_dump(by_alias=True, exclude={"id", "name", "terms"}) for bc_id, bc in bcs_map.items() + } else: # pragma: no cover raise NotImplementedError(f"Table type {table_type} not implemented") diff --git a/antarest/study/business/thematic_trimming_field_infos.py b/antarest/study/business/thematic_trimming_field_infos.py index 3baabd8014..06086005fd 100644 --- a/antarest/study/business/thematic_trimming_field_infos.py +++ b/antarest/study/business/thematic_trimming_field_infos.py @@ -1,14 +1,27 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ List of fields of the Thematic Trimming panel """ import typing as t -from antarest.study.business.all_optional_meta import AllOptionalMetaclass +from antarest.study.business.all_optional_meta import all_optional_model from antarest.study.business.utils import FormFieldsBaseModel -class ThematicTrimmingFormFields(FormFieldsBaseModel, metaclass=AllOptionalMetaclass, use_none=True): +@all_optional_model +class ThematicTrimmingFormFields(FormFieldsBaseModel): """ This class manages the configuration of result filtering in a simulation. @@ -225,6 +238,5 @@ class ThematicTrimmingFormFields(FormFieldsBaseModel, metaclass=AllOptionalMetac } -def get_fields_info(study_version: t.Union[str, int]) -> t.Mapping[str, t.Mapping[str, t.Any]]: - study_version = int(study_version) +def get_fields_info(study_version: int) -> t.Mapping[str, t.Mapping[str, t.Any]]: return {key: info for key, info in FIELDS_INFO.items() if (info.get("start_version") or 0) <= study_version} diff --git a/antarest/study/business/thematic_trimming_management.py b/antarest/study/business/thematic_trimming_management.py index d4af9f960e..96bd5732d6 100644 --- a/antarest/study/business/thematic_trimming_management.py +++ b/antarest/study/business/thematic_trimming_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from antarest.study.business.thematic_trimming_field_infos import ThematicTrimmingFormFields, get_fields_info @@ -37,7 +49,7 @@ def set_field_values(self, study: Study, field_values: ThematicTrimmingFormField Set Thematic Trimming config from the webapp form """ file_study = self.storage_service.get_storage(study).get_raw(study) - field_values_dict = field_values.dict() + field_values_dict = field_values.model_dump() keys_by_bool: t.Dict[bool, t.List[t.Any]] = {True: [], False: []} fields_info = get_fields_info(int(study.version)) diff --git a/antarest/study/business/timeseries_config_management.py b/antarest/study/business/timeseries_config_management.py index 56cf07cfa1..7e77612fd8 100644 --- a/antarest/study/business/timeseries_config_management.py +++ b/antarest/study/business/timeseries_config_management.py @@ -1,8 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t -from pydantic import StrictBool, StrictInt, root_validator, validator +from pydantic import StrictBool, StrictInt, field_validator, model_validator from antarest.core.model import JSON +from antarest.study.business.all_optional_meta import all_optional_model from antarest.study.business.enum_ignore_case import EnumIgnoreCase from antarest.study.business.utils import GENERAL_DATA_PATH, FormFieldsBaseModel, execute_or_add_commands from antarest.study.model import Study @@ -27,28 +40,30 @@ class SeasonCorrelation(EnumIgnoreCase): ANNUAL = "annual" +@all_optional_model class TSFormFieldsForType(FormFieldsBaseModel): - stochastic_ts_status: t.Optional[StrictBool] - number: t.Optional[StrictInt] - refresh: t.Optional[StrictBool] - refresh_interval: t.Optional[StrictInt] - season_correlation: t.Optional[SeasonCorrelation] - store_in_input: t.Optional[StrictBool] - store_in_output: t.Optional[StrictBool] - intra_modal: t.Optional[StrictBool] - inter_modal: t.Optional[StrictBool] - - + stochastic_ts_status: StrictBool + number: StrictInt + refresh: StrictBool + refresh_interval: StrictInt + season_correlation: SeasonCorrelation + store_in_input: StrictBool + store_in_output: StrictBool + intra_modal: StrictBool + inter_modal: StrictBool + + +@all_optional_model class TSFormFields(FormFieldsBaseModel): - load: t.Optional[TSFormFieldsForType] = None - hydro: t.Optional[TSFormFieldsForType] = None - thermal: t.Optional[TSFormFieldsForType] = None - wind: t.Optional[TSFormFieldsForType] = None - solar: t.Optional[TSFormFieldsForType] = None - renewables: t.Optional[TSFormFieldsForType] = None - ntc: t.Optional[TSFormFieldsForType] = None - - @root_validator(pre=True) + load: TSFormFieldsForType + hydro: TSFormFieldsForType + thermal: TSFormFieldsForType + wind: TSFormFieldsForType + solar: TSFormFieldsForType + renewables: TSFormFieldsForType + ntc: TSFormFieldsForType + + @model_validator(mode="before") def check_type_validity( cls, values: t.Dict[str, t.Optional[TSFormFieldsForType]] ) -> t.Dict[str, t.Optional[TSFormFieldsForType]]: @@ -61,7 +76,7 @@ def has_type(ts_type: TSType) -> bool: ) return values - @validator("thermal") + @field_validator("thermal") def thermal_validation(cls, v: TSFormFieldsForType) -> TSFormFieldsForType: if v.season_correlation is not None: raise ValueError("season_correlation is not allowed for 'thermal' type") @@ -118,7 +133,7 @@ def __set_field_values_for_type( field_values: TSFormFieldsForType, ) -> None: commands: t.List[UpdateConfig] = [] - values = field_values.dict() + values = field_values.model_dump() for field, path in PATH_BY_TS_STR_FIELD.items(): field_val = values[field] diff --git a/antarest/study/business/utils.py b/antarest/study/business/utils.py index 8c4b567b22..1afacecc04 100644 --- a/antarest/study/business/utils.py +++ b/antarest/study/business/utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from pydantic import BaseModel @@ -5,7 +17,7 @@ from antarest.core.exceptions import CommandApplicationError from antarest.core.jwt import DEFAULT_ADMIN_USER from antarest.core.requests import RequestParameters -from antarest.core.utils.string import to_camel_case +from antarest.study.business.all_optional_meta import camel_case_model from antarest.study.model import RawStudy, Study from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.storage_service import StudyStorageService @@ -57,12 +69,12 @@ def execute_or_add_commands( ) +@camel_case_model class FormFieldsBaseModel( BaseModel, - alias_generator=to_camel_case, extra="forbid", validate_assignment=True, - allow_population_by_field_name=True, + populate_by_name=True, ): """ Pydantic Model for webapp form diff --git a/antarest/study/business/xpansion_management.py b/antarest/study/business/xpansion_management.py index 66d25860dd..6c02724afd 100644 --- a/antarest/study/business/xpansion_management.py +++ b/antarest/study/business/xpansion_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import http import io @@ -7,11 +19,11 @@ import zipfile from fastapi import HTTPException, UploadFile -from pydantic import BaseModel, Extra, Field, ValidationError, root_validator, validator +from pydantic import BaseModel, Field, ValidationError, field_validator, model_validator from antarest.core.exceptions import BadZipBinary, ChildNotFoundError from antarest.core.model import JSON -from antarest.study.business.all_optional_meta import AllOptionalMetaclass +from antarest.study.business.all_optional_meta import all_optional_model from antarest.study.business.enum_ignore_case import EnumIgnoreCase from antarest.study.model import Study from antarest.study.storage.rawstudy.model.filesystem.bucket_node import BucketNode @@ -62,12 +74,12 @@ class XpansionSensitivitySettings(BaseModel): projection: t.List[str] = Field(default_factory=list, description="List of candidate names to project") capex: bool = Field(default=False, description="Whether to include capex in the sensitivity analysis") - @validator("projection", pre=True) + @field_validator("projection", mode="before") def projection_validation(cls, v: t.Optional[t.Sequence[str]]) -> t.Sequence[str]: return [] if v is None else v -class XpansionSettings(BaseModel, extra=Extra.ignore, validate_assignment=True, allow_population_by_field_name=True): +class XpansionSettings(BaseModel, extra="ignore", validate_assignment=True, populate_by_name=True): """ A data transfer object representing the general settings used for Xpansion. @@ -140,8 +152,8 @@ class XpansionSettings(BaseModel, extra=Extra.ignore, validate_assignment=True, # The sensitivity analysis is optional sensitivity_config: t.Optional[XpansionSensitivitySettings] = None - @root_validator(pre=True) - def normalize_values(cls, values: t.MutableMapping[str, t.Any]) -> t.MutableMapping[str, t.Any]: + @model_validator(mode="before") + def validate_float_values(cls, values: t.MutableMapping[str, t.Any]) -> t.MutableMapping[str, t.Any]: if "relaxed-optimality-gap" in values: values["relaxed_optimality_gap"] = values.pop("relaxed-optimality-gap") @@ -196,7 +208,8 @@ def from_config(cls, config_obj: JSON) -> "GetXpansionSettings": return cls.construct(**config_obj) -class UpdateXpansionSettings(XpansionSettings, metaclass=AllOptionalMetaclass, use_none=True): +@all_optional_model +class UpdateXpansionSettings(XpansionSettings): """ DTO object used to update the Xpansion settings. @@ -207,13 +220,6 @@ class UpdateXpansionSettings(XpansionSettings, metaclass=AllOptionalMetaclass, u # note: for some reason, the alias is not taken into account when using the metaclass, # so we have to redefine the fields with the alias. - - # On the other hand, we make these fields mandatory, because there is an anomaly on the front side: - # When the user does not select any file, the front sends a request without the "yearly-weights" - # or "additional-constraints" field, instead of sending the field with an empty value. - # This is not a problem as long as the front sends a request with all the fields (PUT case), - # but it is a problem for partial requests (PATCH case). - yearly_weights: str = Field( "", alias="yearly-weights", @@ -233,19 +239,21 @@ class XpansionCandidateDTO(BaseModel): name: str link: str annual_cost_per_mw: float = Field(alias="annual-cost-per-mw", ge=0) - unit_size: t.Optional[float] = Field(None, alias="unit-size", ge=0) - max_units: t.Optional[int] = Field(None, alias="max-units", ge=0) - max_investment: t.Optional[float] = Field(None, alias="max-investment", ge=0) - already_installed_capacity: t.Optional[int] = Field(None, alias="already-installed-capacity", ge=0) + unit_size: t.Optional[float] = Field(default=None, alias="unit-size", ge=0) + max_units: t.Optional[int] = Field(default=None, alias="max-units", ge=0) + max_investment: t.Optional[float] = Field(default=None, alias="max-investment", ge=0) + already_installed_capacity: t.Optional[int] = Field(default=None, alias="already-installed-capacity", ge=0) # this is obsolete (replaced by direct/indirect) - link_profile: t.Optional[str] = Field(None, alias="link-profile") + link_profile: t.Optional[str] = Field(default=None, alias="link-profile") # this is obsolete (replaced by direct/indirect) - already_installed_link_profile: t.Optional[str] = Field(None, alias="already-installed-link-profile") - direct_link_profile: t.Optional[str] = Field(None, alias="direct-link-profile") - indirect_link_profile: t.Optional[str] = Field(None, alias="indirect-link-profile") - already_installed_direct_link_profile: t.Optional[str] = Field(None, alias="already-installed-direct-link-profile") + already_installed_link_profile: t.Optional[str] = Field(default=None, alias="already-installed-link-profile") + direct_link_profile: t.Optional[str] = Field(default=None, alias="direct-link-profile") + indirect_link_profile: t.Optional[str] = Field(default=None, alias="indirect-link-profile") + already_installed_direct_link_profile: t.Optional[str] = Field( + default=None, alias="already-installed-direct-link-profile" + ) already_installed_indirect_link_profile: t.Optional[str] = Field( - None, alias="already-installed-indirect-link-profile" + default=None, alias="already-installed-indirect-link-profile" ) @@ -335,9 +343,11 @@ def create_xpansion_configuration(self, study: Study, zipped_config: t.Optional[ raise BadZipBinary("Only zip file are allowed.") xpansion_settings = XpansionSettings() - settings_obj = xpansion_settings.dict(by_alias=True, exclude_none=True, exclude={"sensitivity_config"}) + settings_obj = xpansion_settings.model_dump( + by_alias=True, exclude_none=True, exclude={"sensitivity_config"} + ) if xpansion_settings.sensitivity_config: - sensitivity_obj = xpansion_settings.sensitivity_config.dict(by_alias=True, exclude_none=True) + sensitivity_obj = xpansion_settings.sensitivity_config.model_dump(by_alias=True, exclude_none=True) else: sensitivity_obj = {} @@ -377,7 +387,9 @@ def update_xpansion_settings( logger.info(f"Updating xpansion settings for study '{study.id}'") actual_settings = self.get_xpansion_settings(study) - settings_fields = new_xpansion_settings.dict(by_alias=False, exclude_none=True, exclude={"sensitivity_config"}) + settings_fields = new_xpansion_settings.model_dump( + by_alias=False, exclude_none=True, exclude={"sensitivity_config"} + ) updated_settings = actual_settings.copy(deep=True, update=settings_fields) file_study = self.study_storage_service.get_storage(study).get_raw(study) @@ -397,11 +409,11 @@ def update_xpansion_settings( msg = f"Additional constraints file '{constraints_file}' does not exist" raise XpansionFileNotFoundError(msg) from None - config_obj = updated_settings.dict(by_alias=True, exclude={"sensitivity_config"}) + config_obj = updated_settings.model_dump(by_alias=True, exclude={"sensitivity_config"}) file_study.tree.save(config_obj, ["user", "expansion", "settings"]) if new_xpansion_settings.sensitivity_config: - sensitivity_obj = new_xpansion_settings.sensitivity_config.dict(by_alias=True) + sensitivity_obj = new_xpansion_settings.sensitivity_config.model_dump(by_alias=True) file_study.tree.save(sensitivity_obj, ["user", "expansion", "sensitivity", "sensitivity_in"]) return self.get_xpansion_settings(study) @@ -541,7 +553,7 @@ def add_candidate(self, study: Study, xpansion_candidate: XpansionCandidateDTO) ) # The primary key is actually the name, the id does not matter and is never checked. logger.info(f"Adding candidate '{xpansion_candidate.name}' to study '{study.id}'") - candidates_obj[next_id] = xpansion_candidate.dict(by_alias=True, exclude_none=True) + candidates_obj[next_id] = xpansion_candidate.model_dump(by_alias=True, exclude_none=True) candidates_data = {"user": {"expansion": {"candidates": candidates_obj}}} file_study.tree.save(candidates_data) # Should we add a field in the study config containing the xpansion candidates like the links or the areas ? @@ -582,7 +594,7 @@ def update_candidate( for candidate_id, candidate in candidates.items(): if candidate["name"] == candidate_name: logger.info(f"Updating candidate '{candidate_name}' of study '{study.id}'") - candidates[candidate_id] = xpansion_candidate_dto.dict(by_alias=True, exclude_none=True) + candidates[candidate_id] = xpansion_candidate_dto.model_dump(by_alias=True, exclude_none=True) file_study.tree.save(candidates, ["user", "expansion", "candidates"]) return raise CandidateNotFoundError(f"The candidate '{xpansion_candidate_dto.name}' does not exist") @@ -602,7 +614,8 @@ def update_xpansion_constraints_settings(self, study: Study, constraints_file_na # Make sure filename is not `None`, because `None` values are ignored by the update. constraints_file_name = constraints_file_name or "" # noinspection PyArgumentList - xpansion_settings = UpdateXpansionSettings(additional_constraints=constraints_file_name) + args = {"additional_constraints": constraints_file_name} + xpansion_settings = UpdateXpansionSettings.model_validate(args) return self.update_xpansion_settings(study, xpansion_settings) def _raw_file_dir(self, raw_file_type: XpansionResourceFileType) -> t.List[str]: @@ -643,6 +656,7 @@ def _add_raw_files( content = file.file.read() if isinstance(content, str): content = content.encode(encoding="utf-8") + assert file.filename is not None buffer[file.filename] = content file_study.tree.save(data) diff --git a/antarest/study/common/__init__.py b/antarest/study/common/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/common/__init__.py +++ b/antarest/study/common/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/common/studystorage.py b/antarest/study/common/studystorage.py index 94664ef339..906564da35 100644 --- a/antarest/study/common/studystorage.py +++ b/antarest/study/common/studystorage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from abc import ABC, abstractmethod from pathlib import Path diff --git a/antarest/study/css4_colors.py b/antarest/study/css4_colors.py index 9d87c4a53e..acac63cdde 100644 --- a/antarest/study/css4_colors.py +++ b/antarest/study/css4_colors.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ CSS Color Module Level 4 diff --git a/antarest/study/main.py b/antarest/study/main.py index 83ad90dca3..1efa9cb00b 100644 --- a/antarest/study/main.py +++ b/antarest/study/main.py @@ -1,7 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Optional -from fastapi import FastAPI +from fastapi import APIRouter, FastAPI +from antarest.core.application import AppBuildContext from antarest.core.config import Config from antarest.core.filetransfer.service import FileTransferManager from antarest.core.interfaces.cache import ICache @@ -27,7 +40,7 @@ def build_study_service( - application: Optional[FastAPI], + app_ctxt: Optional[AppBuildContext], config: Config, user_service: LoginService, matrix_service: ISimpleMatrixService, @@ -112,16 +125,17 @@ def build_study_service( config=config, ) - if application: - application.include_router(create_study_routes(study_service, file_transfer_manager, config)) - application.include_router(create_raw_study_routes(study_service, config)) - application.include_router(create_study_data_routes(study_service, config)) - application.include_router( + if app_ctxt: + api_root = app_ctxt.api_root + api_root.include_router(create_study_routes(study_service, file_transfer_manager, config)) + api_root.include_router(create_raw_study_routes(study_service, config)) + api_root.include_router(create_study_data_routes(study_service, config)) + api_root.include_router( create_study_variant_routes( study_service=study_service, config=config, ) ) - application.include_router(create_xpansion_routes(study_service, config)) + api_root.include_router(create_xpansion_routes(study_service, config)) return study_service diff --git a/antarest/study/model.py b/antarest/study/model.py index 4eff8109ab..081fd48b4a 100644 --- a/antarest/study/model.py +++ b/antarest/study/model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import dataclasses import enum import secrets @@ -6,7 +18,7 @@ from datetime import datetime, timedelta from pathlib import Path -from pydantic import BaseModel, validator +from pydantic import BaseModel, field_validator from sqlalchemy import ( # type: ignore Boolean, Column, @@ -339,13 +351,18 @@ class StudyMetadataDTO(BaseModel): workspace: str managed: bool archived: bool - horizon: t.Optional[str] - scenario: t.Optional[str] - status: t.Optional[str] - doc: t.Optional[str] + horizon: t.Optional[str] = None + scenario: t.Optional[str] = None + status: t.Optional[str] = None + doc: t.Optional[str] = None folder: t.Optional[str] = None tags: t.List[str] = [] + @field_validator("horizon", mode="before") + def transform_horizon_to_str(cls, val: t.Union[str, int, None]) -> t.Optional[str]: + # horizon can be an int. + return str(val) if val else val # type: ignore + class StudyMetadataPatchDTO(BaseModel): name: t.Optional[str] = None @@ -354,18 +371,20 @@ class StudyMetadataPatchDTO(BaseModel): scenario: t.Optional[str] = None status: t.Optional[str] = None doc: t.Optional[str] = None - tags: t.Sequence[str] = () + tags: t.List[str] = [] - @validator("tags", each_item=True) - def _normalize_tags(cls, v: str) -> str: + @field_validator("tags", mode="before") + def _normalize_tags(cls, v: t.List[str]) -> t.List[str]: """Remove leading and trailing whitespaces, and replace consecutive whitespaces by a single one.""" - tag = " ".join(v.split()) - if not tag: - raise ValueError("Tag cannot be empty") - elif len(tag) > 40: - raise ValueError(f"Tag is too long: {tag!r}") - else: - return tag + tags = [] + for tag in v: + tag = " ".join(tag.split()) + if not tag: + raise ValueError("Tag cannot be empty") + elif len(tag) > 40: + raise ValueError(f"Tag is too long: {tag!r}") + tags.append(tag) + return tags class StudySimSettingsDTO(BaseModel): diff --git a/antarest/study/repository.py b/antarest/study/repository.py index 4a3965d9de..f4d2e691c1 100644 --- a/antarest/study/repository.py +++ b/antarest/study/repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import enum import typing as t diff --git a/antarest/study/service.py b/antarest/study/service.py index 5a2bfcda2a..c39576605f 100644 --- a/antarest/study/service.py +++ b/antarest/study/service.py @@ -1,9 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import base64 import collections import contextlib import http import io -import json import logging import os import time @@ -32,7 +43,6 @@ StudyVariantUpgradeError, TaskAlreadyRunning, UnsupportedOperationOnArchivedStudy, - UnsupportedStudyVersion, ) from antarest.core.filetransfer.model import FileDownloadTaskDTO from antarest.core.filetransfer.service import FileTransferManager @@ -41,6 +51,7 @@ from antarest.core.jwt import DEFAULT_ADMIN_USER, JWTGroup, JWTUser from antarest.core.model import JSON, SUB_JSON, PermissionInfo, PublicMode, StudyPermissionType from antarest.core.requests import RequestParameters, UserHasNotPermissionError +from antarest.core.serialization import to_json from antarest.core.tasks.model import TaskListFilter, TaskResult, TaskStatus, TaskType from antarest.core.tasks.service import ITaskService, TaskUpdateNotifier, noop_notifier from antarest.core.utils.fastapi_sqlalchemy import db @@ -50,7 +61,13 @@ from antarest.matrixstore.matrix_editor import MatrixEditInstruction from antarest.study.business.adequacy_patch_management import AdequacyPatchManager from antarest.study.business.advanced_parameters_management import AdvancedParamsManager -from antarest.study.business.aggregator_management import AggregatorManager, AreasQueryFile, LinksQueryFile +from antarest.study.business.aggregator_management import ( + AggregatorManager, + MCAllAreasQueryFile, + MCAllLinksQueryFile, + MCIndAreasQueryFile, + MCIndLinksQueryFile, +) from antarest.study.business.allocation_management import AllocationManager from antarest.study.business.area_management import AreaCreationDTO, AreaInfoDTO, AreaManager, AreaType, UpdateAreaUi from antarest.study.business.areas.hydro_management import HydroManager @@ -116,14 +133,12 @@ from antarest.study.storage.rawstudy.raw_study_service import RawStudyService from antarest.study.storage.storage_service import StudyStorageService from antarest.study.storage.study_download_utils import StudyDownloader, get_output_variables_information -from antarest.study.storage.study_upgrader import ( - find_next_version, - get_current_version, - should_study_be_denormalized, - upgrade_study, -) +from antarest.study.storage.study_upgrader import StudyUpgrader, check_versions_coherence, find_next_version from antarest.study.storage.utils import assert_permission, get_start_date, is_managed, remove_from_cache from antarest.study.storage.variantstudy.business.utils import transform_command_to_dto +from antarest.study.storage.variantstudy.model.command.generate_thermal_cluster_timeseries import ( + GenerateThermalClusterTimeSeries, +) from antarest.study.storage.variantstudy.model.command.icommand import ICommand from antarest.study.storage.variantstudy.model.command.replace_matrix import ReplaceMatrix from antarest.study.storage.variantstudy.model.command.update_comments import UpdateComments @@ -133,7 +148,6 @@ from antarest.study.storage.variantstudy.model.model import CommandDTO from antarest.study.storage.variantstudy.variant_study_service import VariantStudyService from antarest.worker.archive_worker import ArchiveTaskArgs -from antarest.worker.simulator_worker import GenerateTimeseriesTaskArgs logger = logging.getLogger(__name__) @@ -155,6 +169,51 @@ def get_disk_usage(path: t.Union[str, Path]) -> int: return total_size +class ThermalClusterTimeSeriesGeneratorTask: + """ + Task to generate thermal clusters time series + """ + + def __init__( + self, + _study_id: str, + repository: StudyMetadataRepository, + storage_service: StudyStorageService, + event_bus: IEventBus, + ): + self._study_id = _study_id + self.repository = repository + self.storage_service = storage_service + self.event_bus = event_bus + + def _generate_timeseries(self) -> None: + """Run the task (lock the database).""" + command_context = self.storage_service.variant_study_service.command_factory.command_context + command = GenerateThermalClusterTimeSeries(command_context=command_context) + with db(): + study = self.repository.one(self._study_id) + file_study = self.storage_service.get_storage(study).get_raw(study) + execute_or_add_commands(study, file_study, [command], self.storage_service) + self.event_bus.push( + Event( + type=EventType.STUDY_EDITED, + payload=study.to_json_summary(), + permissions=PermissionInfo.from_study(study), + ) + ) + + def run_task(self, notifier: TaskUpdateNotifier) -> TaskResult: + msg = f"Generating thermal timeseries for study '{self._study_id}'" + notifier(msg) + self._generate_timeseries() + msg = f"Successfully generated thermal timeseries for study '{self._study_id}'" + notifier(msg) + return TaskResult(success=True, message=msg) + + # Make `ThermalClusterTimeSeriesGeneratorTask` object callable + __call__ = run_task + + class StudyUpgraderTask: """ Task to perform a study upgrade. @@ -192,13 +251,13 @@ def _upgrade_study(self) -> None: self.storage_service.variant_study_service.clear_snapshot(study_to_upgrade) else: study_path = Path(study_to_upgrade.path) - current_version = get_current_version(study_path) - if is_managed(study_to_upgrade) and should_study_be_denormalized(current_version, target_version): + study_upgrader = StudyUpgrader(study_path, target_version) + if is_managed(study_to_upgrade) and study_upgrader.should_denormalize_study(): # We have to denormalize the study because the upgrade impacts study matrices file_study = self.storage_service.get_storage(study_to_upgrade).get_raw(study_to_upgrade) file_study.tree.denormalize() is_study_denormalized = True - upgrade_study(study_path, target_version) + study_upgrader.upgrade() remove_from_cache(self.cache_service, study_to_upgrade.id) study_to_upgrade.version = target_version self.repository.save(study_to_upgrade) @@ -331,24 +390,25 @@ def aggregate_output_data( self, uuid: str, output_id: str, - query_file: t.Union[AreasQueryFile, LinksQueryFile], + query_file: t.Union[MCIndAreasQueryFile, MCAllAreasQueryFile, MCIndLinksQueryFile, MCAllLinksQueryFile], frequency: MatrixFrequency, - mc_years: t.Sequence[int], columns_names: t.Sequence[str], ids_to_consider: t.Sequence[str], params: RequestParameters, + mc_years: t.Optional[t.Sequence[int]] = None, ) -> pd.DataFrame: """ Aggregates output data based on several filtering conditions + Args: uuid: study uuid output_id: simulation output ID - query_file: which types of data to retrieve ("values", "details", "details-st-storage", "details-res") + query_file: which types of data to retrieve: "values", "details", "details-st-storage", "details-res", "ids" frequency: yearly, monthly, weekly, daily or hourly. - mc_years: list of monte-carlo years, if empty, all years are selected - columns_names: columns to be selected, if empty, all columns are selected + columns_names: regexes (if details) or columns to be selected, if empty, all columns are selected ids_to_consider: list of areas or links ids to consider, if empty, all areas are selected params: request parameters + mc_years: list of monte-carlo years, if empty, all years are selected (only for mc-ind) Returns: the aggregated data as a DataFrame @@ -356,17 +416,9 @@ def aggregate_output_data( study = self.get_study(uuid) assert_permission(params.user, study, StudyPermissionType.READ) study_path = self.storage_service.raw_study_service.get_study_path(study) - # fmt: off aggregator_manager = AggregatorManager( - study_path, - output_id, - query_file, - frequency, - mc_years, - columns_names, - ids_to_consider + study_path, output_id, query_file, frequency, ids_to_consider, columns_names, mc_years ) - # fmt: on return aggregator_manager.aggregate_output_data() def get_logs( @@ -1277,13 +1329,7 @@ def export_task(_notifier: TaskUpdateNotifier) -> TaskResult: return FileResponse(tmp_export_file, headers=headers, media_type=filetype) else: - json_response = json.dumps( - matrix.dict(), - ensure_ascii=False, - allow_nan=True, - indent=None, - separators=(",", ":"), - ).encode("utf-8") + json_response = to_json(matrix.model_dump()) return Response(content=json_response, media_type="application/json") def get_study_sim_result(self, study_id: str, params: RequestParameters) -> t.List[StudySimResultDTO]: @@ -1433,6 +1479,7 @@ def _create_edit_study_command( context = self.storage_service.variant_study_service.command_factory.command_context if isinstance(tree_node, IniFileNode): + assert not isinstance(data, (bytes, list)) return UpdateConfig( target=url, data=data, @@ -1448,6 +1495,7 @@ def _create_edit_study_command( matrix=matrix.tolist(), command_context=context, ) + assert isinstance(data, (list, str)) return ReplaceMatrix( target=url, matrix=data, @@ -1455,6 +1503,9 @@ def _create_edit_study_command( ) elif isinstance(tree_node, RawFileNode): if url.split("/")[-1] == "comments": + if isinstance(data, bytes): + data = data.decode("utf-8") + assert isinstance(data, str) return UpdateComments( comments=data, command_context=context, @@ -2373,7 +2424,7 @@ def unarchive_output_task( src=str(src), dest=str(dest), remove_src=not keep_src_zip, - ).dict(), + ).model_dump(), name=task_name, ref_id=study.id, request_params=params, @@ -2391,19 +2442,32 @@ def unarchive_output_task( return task_id - def generate_timeseries(self, study: Study, params: RequestParameters) -> None: - self._assert_study_unarchived(study) - self.task_service.add_worker_task( - TaskType.WORKER_TASK, - "generate-timeseries", - GenerateTimeseriesTaskArgs( - study_id=study.id, - managed=is_managed(study), - study_path=str(study.path), - study_version=str(study.version), - ).dict(), - name=f"Generate timeseries for study {study.id}", + def generate_timeseries(self, study: Study, params: RequestParameters) -> str: + task_name = f"Generating thermal timeseries for study {study.name} ({study.id})" + study_tasks = self.task_service.list_tasks( + TaskListFilter( + ref_id=study.id, + type=[TaskType.THERMAL_CLUSTER_SERIES_GENERATION], + status=[TaskStatus.RUNNING, TaskStatus.PENDING], + ), + RequestParameters(user=DEFAULT_ADMIN_USER), + ) + if len(study_tasks) > 0: + raise TaskAlreadyRunning() + + thermal_cluster_timeseries_generation_task = ThermalClusterTimeSeriesGeneratorTask( + study.id, + repository=self.repository, + storage_service=self.storage_service, + event_bus=self.event_bus, + ) + + return self.task_service.add_task( + thermal_cluster_timeseries_generation_task, + task_name, + task_type=TaskType.THERMAL_CLUSTER_SERIES_GENERATION, ref_id=study.id, + custom_event_messages=None, request_params=params, ) @@ -2426,13 +2490,15 @@ def upgrade_study( # First check if the study is a variant study, if so throw an error if isinstance(study, VariantStudy): raise StudyVariantUpgradeError(True) - # If the study is a parent raw study, throw an error + # If the study is a parent raw study and has variants, throw an error elif self.repository.has_children(study_id): raise StudyVariantUpgradeError(False) - target_version = target_version or find_next_version(study.version) + # Checks versions coherence before launching the task if not target_version: - raise UnsupportedStudyVersion(study.version) + target_version = find_next_version(study.version) + else: + check_versions_coherence(study.version, target_version) task_name = f"Upgrade study {study.name} ({study.id}) to version {target_version}" study_tasks = self.task_service.list_tasks( diff --git a/antarest/study/storage/__init__.py b/antarest/study/storage/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/__init__.py +++ b/antarest/study/storage/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/abstract_storage_service.py b/antarest/study/storage/abstract_storage_service.py index 892f855970..967ece3ca6 100644 --- a/antarest/study/storage/abstract_storage_service.py +++ b/antarest/study/storage/abstract_storage_service.py @@ -1,4 +1,15 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import shutil import tempfile @@ -11,6 +22,7 @@ from antarest.core.exceptions import BadOutputError, StudyOutputNotFoundError from antarest.core.interfaces.cache import CacheConstants, ICache from antarest.core.model import JSON, PublicMode +from antarest.core.serialization import from_json from antarest.core.utils.utils import StopWatch, extract_zip, unzip, zip_dir from antarest.login.model import GroupDTO from antarest.study.common.studystorage import IStudyStorageService, T @@ -75,8 +87,7 @@ def get_study_information( additional_data = study.additional_data or StudyAdditionalData() try: - patch_obj = json.loads(additional_data.patch or "{}") - patch = Patch.parse_obj(patch_obj) + patch = Patch.model_validate(from_json(additional_data.patch or "{}")) except ValueError as e: # The conversion to JSON and the parsing can fail if the patch is not valid logger.warning(f"Failed to parse patch for study {study.id}", exc_info=e) @@ -316,7 +327,7 @@ def _read_additional_data_from_files(self, file_study: FileStudy) -> StudyAdditi horizon = file_study.tree.get(url=["settings", "generaldata", "general", "horizon"]) author = file_study.tree.get(url=["study", "antares", "author"]) patch = self.patch_service.get_from_filestudy(file_study) - study_additional_data = StudyAdditionalData(horizon=horizon, author=author, patch=patch.json()) + study_additional_data = StudyAdditionalData(horizon=horizon, author=author, patch=patch.model_dump_json()) return study_additional_data def archive_study_output(self, study: T, output_id: str) -> bool: diff --git a/antarest/study/storage/auto_archive_service.py b/antarest/study/storage/auto_archive_service.py index a1eafc40a3..85cb2237f9 100644 --- a/antarest/study/storage/auto_archive_service.py +++ b/antarest/study/storage/auto_archive_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import logging import time diff --git a/antarest/study/storage/df_download.py b/antarest/study/storage/df_download.py index 100e7f0e22..97882e2d2e 100644 --- a/antarest/study/storage/df_download.py +++ b/antarest/study/storage/df_download.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import http import typing as t from pathlib import Path diff --git a/antarest/study/storage/matrix_profile.py b/antarest/study/storage/matrix_profile.py index 7dc137dc10..cd3780ae32 100644 --- a/antarest/study/storage/matrix_profile.py +++ b/antarest/study/storage/matrix_profile.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import calendar import copy import fnmatch diff --git a/antarest/study/storage/patch_service.py b/antarest/study/storage/patch_service.py index c52752ae25..1c44e1ddc9 100644 --- a/antarest/study/storage/patch_service.py +++ b/antarest/study/storage/patch_service.py @@ -1,7 +1,19 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from pathlib import Path +from antarest.core.serialization import from_json from antarest.study.model import Patch, PatchOutputs, RawStudy, StudyAdditionalData from antarest.study.repository import StudyMetadataRepository from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy @@ -22,8 +34,7 @@ def get(self, study: t.Union[RawStudy, VariantStudy], get_from_file: bool = Fals if not get_from_file and study.additional_data is not None: # the `study.additional_data.patch` field is optional if study.additional_data.patch: - patch_obj = json.loads(study.additional_data.patch or "{}") - return Patch.parse_obj(patch_obj) + return Patch.model_validate(from_json(study.additional_data.patch)) patch = Patch() patch_path = Path(study.path) / PATCH_JSON @@ -55,9 +66,9 @@ def set_reference_output( def save(self, study: t.Union[RawStudy, VariantStudy], patch: Patch) -> None: if self.repository: study.additional_data = study.additional_data or StudyAdditionalData() - study.additional_data.patch = patch.json() + study.additional_data.patch = patch.model_dump_json() self.repository.save(study) patch_path = (Path(study.path)) / PATCH_JSON patch_path.parent.mkdir(parents=True, exist_ok=True) - patch_path.write_text(patch.json()) + patch_path.write_text(patch.model_dump_json()) diff --git a/antarest/study/storage/rawstudy/__init__.py b/antarest/study/storage/rawstudy/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/__init__.py +++ b/antarest/study/storage/rawstudy/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/ini_reader.py b/antarest/study/storage/rawstudy/ini_reader.py index b2d86ecb98..fd3bac2dea 100644 --- a/antarest/study/storage/rawstudy/ini_reader.py +++ b/antarest/study/storage/rawstudy/ini_reader.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import dataclasses import re import typing as t diff --git a/antarest/study/storage/rawstudy/ini_writer.py b/antarest/study/storage/rawstudy/ini_writer.py index 3a5c1198d6..f72f9b2197 100644 --- a/antarest/study/storage/rawstudy/ini_writer.py +++ b/antarest/study/storage/rawstudy/ini_writer.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import ast import configparser import typing as t diff --git a/antarest/study/storage/rawstudy/model/__init__.py b/antarest/study/storage/rawstudy/model/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/__init__.py +++ b/antarest/study/storage/rawstudy/model/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/bucket_node.py b/antarest/study/storage/rawstudy/model/filesystem/bucket_node.py index 6106326d2f..ad10455b2e 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/bucket_node.py +++ b/antarest/study/storage/rawstudy/model/filesystem/bucket_node.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from antarest.core.model import JSON, SUB_JSON diff --git a/antarest/study/storage/rawstudy/model/filesystem/common/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/common/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/common/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/common/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/common/area_matrix_list.py b/antarest/study/storage/rawstudy/model/filesystem/common/area_matrix_list.py index 8bc1b5a497..0cff5af838 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/common/area_matrix_list.py +++ b/antarest/study/storage/rawstudy/model/filesystem/common/area_matrix_list.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig diff --git a/antarest/study/storage/rawstudy/model/filesystem/common/prepro.py b/antarest/study/storage/rawstudy/model/filesystem/common/prepro.py index b6edf38c42..1813760f13 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/common/prepro.py +++ b/antarest/study/storage/rawstudy/model/filesystem/common/prepro.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/config/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/area.py b/antarest/study/storage/rawstudy/model/filesystem/config/area.py index 5ade25159f..74d15e5b55 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/area.py @@ -1,10 +1,22 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Object model used to read and update area configuration. """ import typing as t -from pydantic import Field, root_validator, validator +from pydantic import Field, field_validator, model_validator from antarest.study.business.enum_ignore_case import EnumIgnoreCase from antarest.study.storage.rawstudy.model.filesystem.config.field_validators import ( @@ -42,7 +54,7 @@ class OptimizationProperties(IniProperties): >>> opt = OptimizationProperties(**obj) - >>> pprint(opt.dict(by_alias=True), width=80) + >>> pprint(opt.model_dump(by_alias=True), width=80) {'filtering': {'filter-synthesis': 'hourly, daily, weekly, monthly, annual', 'filter-year-by-year': 'hourly, annual'}, 'nodal optimization': {'dispatchable-hydro-power': False, @@ -63,7 +75,7 @@ class OptimizationProperties(IniProperties): Convert the object to a dictionary for writing to a configuration file: - >>> pprint(opt.dict(by_alias=True, exclude_defaults=True), width=80) + >>> pprint(opt.model_dump(by_alias=True, exclude_defaults=True), width=80) {'filtering': {'filter-synthesis': 'hourly, weekly, monthly, annual', 'filter-year-by-year': 'hourly, monthly, annual'}, 'nodal optimization': {'dispatchable-hydro-power': False, @@ -77,7 +89,7 @@ class FilteringSection(IniProperties): filter_synthesis: str = Field("", alias="filter-synthesis") filter_year_by_year: str = Field("", alias="filter-year-by-year") - @validator("filter_synthesis", "filter_year_by_year", pre=True) + @field_validator("filter_synthesis", "filter_year_by_year", mode="before") def _validate_filtering(cls, v: t.Any) -> str: return validate_filtering(v) @@ -147,33 +159,33 @@ class AreaUI(IniProperties): ... "color_b": 255, ... } >>> ui = AreaUI(**obj) - >>> pprint(ui.dict(by_alias=True), width=80) + >>> pprint(ui.model_dump(by_alias=True), width=80) {'colorRgb': '#0080FF', 'x': 1148, 'y': 144} Update the color: >>> ui.color_rgb = (192, 168, 127) - >>> pprint(ui.dict(by_alias=True), width=80) + >>> pprint(ui.model_dump(by_alias=True), width=80) {'colorRgb': '#C0A87F', 'x': 1148, 'y': 144} """ - x: int = Field(0, description="x coordinate of the area in the map") - y: int = Field(0, description="y coordinate of the area in the map") + x: int = Field(default=0, description="x coordinate of the area in the map") + y: int = Field(default=0, description="y coordinate of the area in the map") color_rgb: str = Field( - "#E66C2C", + default="#E66C2C", alias="colorRgb", description="color of the area in the map", ) - @validator("color_rgb", pre=True) + @field_validator("color_rgb", mode="before") def _validate_color_rgb(cls, v: t.Any) -> str: return validate_color_rgb(v) - @root_validator(pre=True) + @model_validator(mode="before") def _validate_colors(cls, values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.Any]: return validate_colors(values) - def to_config(self) -> t.Mapping[str, t.Any]: + def to_config(self) -> t.Dict[str, t.Any]: """ Convert the object to a dictionary for writing to a configuration file: @@ -186,6 +198,7 @@ def to_config(self) -> t.Mapping[str, t.Any]: >>> pprint(ui.to_config(), width=80) {'color_b': 255, 'color_g': 128, 'color_r': 0, 'x': 1148, 'y': 144} """ + assert self.color_rgb is not None r = int(self.color_rgb[1:3], 16) g = int(self.color_rgb[3:5], 16) b = int(self.color_rgb[5:7], 16) @@ -204,7 +217,7 @@ class UIProperties(IniProperties): UIProperties has default values for `style` and `layers`: >>> ui = UIProperties() - >>> pprint(ui.dict(), width=80) + >>> pprint(ui.model_dump(), width=80) {'layer_styles': {0: {'color_rgb': '#E66C2C', 'x': 0, 'y': 0}}, 'layers': {0}, 'style': {'color_rgb': '#E66C2C', 'x': 0, 'y': 0}} @@ -232,7 +245,7 @@ class UIProperties(IniProperties): ... } >>> ui = UIProperties(**obj) - >>> pprint(ui.dict(), width=80) + >>> pprint(ui.model_dump(), width=80) {'layer_styles': {0: {'color_rgb': '#0080FF', 'x': 1148, 'y': 144}, 4: {'color_rgb': '#0080FF', 'x': 1148, 'y': 144}, 6: {'color_rgb': '#C0A863', 'x': 1148, 'y': 144}, @@ -248,7 +261,7 @@ class UIProperties(IniProperties): description="style of the area in the map: coordinates and color", ) layers: t.Set[int] = Field( - default_factory=set, + default_factory=lambda: {0}, description="layers where the area is visible", ) layer_styles: t.Dict[int, AreaUI] = Field( @@ -257,28 +270,20 @@ class UIProperties(IniProperties): alias="layerStyles", ) - @root_validator(pre=True) - def _set_default_style(cls, values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.Any]: + @staticmethod + def _set_default_style(values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.Any]: """Defined the default style if missing.""" - style = values.get("style") + style = values.get("style", None) if style is None: values["style"] = AreaUI() elif isinstance(style, dict): values["style"] = AreaUI(**style) else: - values["style"] = AreaUI(**style.dict()) - return values - - @root_validator(pre=True) - def _set_default_layers(cls, values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.Any]: - """Define the default layers if missing.""" - _layers = values.get("layers") - if _layers is None: - values["layers"] = {0} + values["style"] = AreaUI(**style.model_dump()) return values - @root_validator(pre=True) - def _set_default_layer_styles(cls, values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.Any]: + @staticmethod + def _set_default_layer_styles(values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.Any]: """Define the default layer styles if missing.""" layer_styles = values.get("layer_styles") if layer_styles is None: @@ -290,13 +295,15 @@ def _set_default_layer_styles(cls, values: t.MutableMapping[str, t.Any]) -> t.Ma if isinstance(style, dict): values["layer_styles"][key] = AreaUI(**style) else: - values["layer_styles"][key] = AreaUI(**style.dict()) + values["layer_styles"][key] = AreaUI(**style.model_dump()) else: raise TypeError(f"Invalid type for layer_styles: {type(layer_styles)}") return values - @root_validator(pre=True) + @model_validator(mode="before") def _validate_layers(cls, values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.Any]: + cls._set_default_style(values) + cls._set_default_layer_styles(values) # Parse the `[ui]` section (if any) ui_section = values.pop("ui", {}) if ui_section: @@ -335,7 +342,7 @@ def _validate_layers(cls, values: t.MutableMapping[str, t.Any]) -> t.Mapping[str return values - def to_config(self) -> t.Mapping[str, t.Mapping[str, t.Any]]: + def to_config(self) -> t.Dict[str, t.Dict[str, t.Any]]: """ Convert the object to a dictionary for writing to a configuration file: @@ -363,7 +370,7 @@ def to_config(self) -> t.Mapping[str, t.Mapping[str, t.Any]]: 'x': 1148, 'y': 144}} """ - obj: t.MutableMapping[str, t.MutableMapping[str, t.Any]] = { + obj: t.Dict[str, t.Dict[str, t.Any]] = { "ui": {}, "layerX": {}, "layerY": {}, @@ -374,6 +381,7 @@ def to_config(self) -> t.Mapping[str, t.Mapping[str, t.Any]]: for layer, style in self.layer_styles.items(): obj["layerX"][str(layer)] = style.x obj["layerY"][str(layer)] = style.y + assert style.color_rgb is not None r = int(style.color_rgb[1:3], 16) g = int(style.color_rgb[3:5], 16) b = int(style.color_rgb[5:7], 16) @@ -393,7 +401,7 @@ class AreaFolder(IniProperties): Create and validate a new AreaProperties object from a dictionary read from a configuration file. >>> obj = AreaFolder() - >>> pprint(obj.dict(), width=80) + >>> pprint(obj.model_dump(), width=80) {'adequacy_patch': None, 'optimization': {'filtering': {'filter_synthesis': '', 'filter_year_by_year': ''}, @@ -438,7 +446,7 @@ class AreaFolder(IniProperties): ... } >>> obj = AreaFolder.construct(**data) - >>> pprint(obj.dict(), width=80) + >>> pprint(obj.model_dump(), width=80) {'adequacy_patch': None, 'optimization': {'filtering': {'filter-synthesis': 'annual, centennial'}, 'nodal optimization': {'spread-spilled-energy-cost': '15.5', @@ -500,7 +508,7 @@ class ThermalAreasProperties(IniProperties): ... }, ... } >>> area = ThermalAreasProperties(**obj) - >>> pprint(area.dict(), width=80) + >>> pprint(area.model_dump(), width=80) {'spilled_energy_cost': {'cz': 100.0}, 'unserverd_energy_cost': {'at': 4000.8, 'be': 3500.0, @@ -511,7 +519,7 @@ class ThermalAreasProperties(IniProperties): >>> area.unserverd_energy_cost["at"] = 6500.0 >>> area.unserverd_energy_cost["fr"] = 0.0 - >>> pprint(area.dict(), width=80) + >>> pprint(area.model_dump(), width=80) {'spilled_energy_cost': {'cz': 100.0}, 'unserverd_energy_cost': {'at': 6500.0, 'be': 3500.0, 'de': 1250.0, 'fr': 0.0}} @@ -534,7 +542,7 @@ class ThermalAreasProperties(IniProperties): description="spilled energy cost (€/MWh) of each area", ) - @validator("unserverd_energy_cost", "spilled_energy_cost", pre=True) + @field_validator("unserverd_energy_cost", "spilled_energy_cost", mode="before") def _validate_energy_cost(cls, v: t.Any) -> t.MutableMapping[str, float]: if isinstance(v, dict): return {str(k): float(v) for k, v in v.items()} diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/binding_constraint.py b/antarest/study/storage/rawstudy/model/filesystem/config/binding_constraint.py index 11749cf456..f902e66305 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/binding_constraint.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/binding_constraint.py @@ -1,7 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Object model used to read and update binding constraint configuration. """ +import typing as t + from antarest.study.business.enum_ignore_case import EnumIgnoreCase @@ -35,3 +49,17 @@ class BindingConstraintOperator(EnumIgnoreCase): GREATER = "greater" BOTH = "both" EQUAL = "equal" + + +OPERATOR_MATRICES_MAP: t.Dict[BindingConstraintOperator, t.List[str]] = { + BindingConstraintOperator.EQUAL: ["eq"], + BindingConstraintOperator.GREATER: ["gt"], + BindingConstraintOperator.LESS: ["lt"], + BindingConstraintOperator.BOTH: ["lt", "gt"], +} + + +DEFAULT_GROUP = "default" +"""Default group for binding constraints (since v8.7).""" +DEFAULT_OPERATOR = BindingConstraintOperator.EQUAL +DEFAULT_TIMESTEP = BindingConstraintFrequency.HOURLY diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/cluster.py b/antarest/study/storage/rawstudy/model/filesystem/config/cluster.py index 1c84019294..62393794e2 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/cluster.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Common properties related to thermal and renewable clusters, and short-term storage. @@ -7,15 +19,15 @@ import functools import typing as t -from pydantic import BaseModel, Extra, Field +from pydantic import BaseModel, Field @functools.total_ordering class ItemProperties( BaseModel, - extra=Extra.forbid, + extra="forbid", validate_assignment=True, - allow_population_by_field_name=True, + populate_by_name=True, ): """ Common properties related to thermal and renewable clusters, and short-term storage. @@ -35,7 +47,7 @@ class ItemProperties( group: str = Field(default="", description="Cluster group") - name: str = Field(description="Cluster name", regex=r"[a-zA-Z0-9_(),& -]+") + name: str = Field(description="Cluster name", pattern=r"[a-zA-Z0-9_(),& -]+") def __lt__(self, other: t.Any) -> bool: """ diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/exceptions.py b/antarest/study/storage/rawstudy/model/filesystem/config/exceptions.py index 7cdf5b2a50..936f7f76e2 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/exceptions.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/exceptions.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from typing import cast diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/field_validators.py b/antarest/study/storage/rawstudy/model/filesystem/config/field_validators.py index 74f93f5c46..f6a371769b 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/field_validators.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/field_validators.py @@ -1,9 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t _ALL_FILTERING = ["hourly", "daily", "weekly", "monthly", "annual"] -def extract_filtering(v: t.Any) -> t.Sequence[str]: +def extract_filtering(v: t.Any) -> t.List[str]: """ Extract filtering values from a comma-separated list of values. """ diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/files.py b/antarest/study/storage/rawstudy/model/filesystem/config/files.py index b74b0f2daf..6cfed5b9bc 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/files.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/files.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import json import logging @@ -9,15 +21,19 @@ from pathlib import Path from antarest.core.model import JSON +from antarest.core.serialization import from_json from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import BindingConstraintFrequency +from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import ( + DEFAULT_GROUP, + DEFAULT_OPERATOR, + DEFAULT_TIMESTEP, +) from antarest.study.storage.rawstudy.model.filesystem.config.exceptions import ( SimulationParsingError, XpansionParsingError, ) from antarest.study.storage.rawstudy.model.filesystem.config.field_validators import extract_filtering from antarest.study.storage.rawstudy.model.filesystem.config.model import ( - DEFAULT_GROUP, Area, BindingConstraintDTO, DistrictSet, @@ -212,11 +228,14 @@ def _parse_bindings(root: Path) -> t.List[BindingConstraintDTO]: # contains a set of strings in the following format: "area.cluster" cluster_set = set() # Default value for time_step - time_step = BindingConstraintFrequency.HOURLY + time_step = bind.get("type", DEFAULT_TIMESTEP) + # Default value for operator + operator = bind.get("operator", DEFAULT_OPERATOR) + # Default value for group + group = bind.get("group", DEFAULT_GROUP) + # Build areas and clusters based on terms for key in bind: - if key == "type": - time_step = BindingConstraintFrequency(bind[key]) - elif "%" in key: + if "%" in key: areas = key.split("%", 1) area_set.add(areas[0]) area_set.add(areas[1]) @@ -224,13 +243,8 @@ def _parse_bindings(root: Path) -> t.List[BindingConstraintDTO]: cluster_set.add(key) area_set.add(key.split(".", 1)[0]) - group = bind.get("group", DEFAULT_GROUP) bc = BindingConstraintDTO( - id=bind["id"], - areas=area_set, - clusters=cluster_set, - time_step=time_step, - group=group, + id=bind["id"], areas=area_set, clusters=cluster_set, time_step=time_step, operator=operator, group=group ) output_list.append(bc) @@ -317,7 +331,7 @@ def _parse_xpansion_version(path: Path) -> str: xpansion_json = path / "expansion" / "out.json" try: content = xpansion_json.read_text(encoding="utf-8") - obj = json.loads(content) + obj = from_json(content) return str(obj["antares_xpansion"]["version"]) except FileNotFoundError: return "" diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/identifier.py b/antarest/study/storage/rawstudy/model/filesystem/config/identifier.py index b4b1a3c3f3..2cb5d9ec64 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/identifier.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/identifier.py @@ -1,21 +1,33 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t -from pydantic import BaseModel, Extra, Field, root_validator +from pydantic import BaseModel, Field, model_validator __all__ = ("IgnoreCaseIdentifier", "LowerCaseIdentifier") class IgnoreCaseIdentifier( BaseModel, - extra=Extra.forbid, + extra="forbid", validate_assignment=True, - allow_population_by_field_name=True, + populate_by_name=True, ): """ Base class for all configuration sections with an ID. """ - id: str = Field(description="ID (section name)", regex=r"[a-zA-Z0-9_(),& -]+") + id: str = Field(description="ID (section name)", pattern=r"[a-zA-Z0-9_(),& -]+") @classmethod def generate_id(cls, name: str) -> str: @@ -33,7 +45,7 @@ def generate_id(cls, name: str) -> str: return transform_name_to_id(name, lower=False) - @root_validator(pre=True) + @model_validator(mode="before") def validate_id(cls, values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.Any]: """ Calculate an ID based on the name, if not provided. @@ -44,18 +56,21 @@ def validate_id(cls, values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.A Returns: The updated values. """ - if storage_id := values.get("id"): - # If the ID is provided, it comes from a INI section name. - # In some legacy case, the ID was in lower case, so we need to convert it. - values["id"] = cls.generate_id(storage_id) - return values - if not values.get("name"): - return values - name = values["name"] - if storage_id := cls.generate_id(name): - values["id"] = storage_id - else: - raise ValueError(f"Invalid name '{name}'.") + + # For some reason I can't explain, values can be an object. If so, no validation is needed. + if isinstance(values, dict): + if storage_id := values.get("id"): + # If the ID is provided, it comes from a INI section name. + # In some legacy case, the ID was in lower case, so we need to convert it. + values["id"] = cls.generate_id(storage_id) + return values + if not values.get("name"): + return values + name = values["name"] + if storage_id := cls.generate_id(name): + values["id"] = storage_id + else: + raise ValueError(f"Invalid name '{name}'.") return values @@ -64,7 +79,7 @@ class LowerCaseIdentifier(IgnoreCaseIdentifier): Base class for all configuration sections with a lower case ID. """ - id: str = Field(description="ID (section name)", regex=r"[a-z0-9_(),& -]+") + id: str = Field(description="ID (section name)", pattern=r"[a-z0-9_(),& -]+") @classmethod def generate_id(cls, name: str) -> str: diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/ini_properties.py b/antarest/study/storage/rawstudy/model/filesystem/config/ini_properties.py index 51f10a5ca5..e731ea203b 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/ini_properties.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/ini_properties.py @@ -1,7 +1,20 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t -from pydantic import BaseModel, Extra +from pydantic import BaseModel + +from antarest.core.serialization import from_json, to_json class IniProperties( @@ -9,17 +22,17 @@ class IniProperties( # On reading, if the configuration contains an extra field, it is better # to forbid it, because it allows errors to be detected early. # Ignoring extra attributes can hide errors. - extra=Extra.forbid, + extra="forbid", # If a field is updated on assignment, it is also validated. validate_assignment=True, # On testing, we can use snake_case for field names. - allow_population_by_field_name=True, + populate_by_name=True, ): """ Base class for configuration sections. """ - def to_config(self) -> t.Mapping[str, t.Any]: + def to_config(self) -> t.Dict[str, t.Any]: """ Convert the object to a dictionary for writing to a configuration file (`*.ini`). @@ -28,14 +41,16 @@ def to_config(self) -> t.Mapping[str, t.Any]: """ config = {} - for field_name, field in self.__fields__.items(): + for field_name, field in self.model_fields.items(): value = getattr(self, field_name) if value is None: continue + alias = field.alias + assert alias is not None if isinstance(value, IniProperties): - config[field.alias] = value.to_config() + config[alias] = value.to_config() else: - config[field.alias] = json.loads(json.dumps(value)) + config[alias] = from_json(to_json(value)) return config @classmethod @@ -44,7 +59,7 @@ def construct(cls, _fields_set: t.Optional[t.Set[str]] = None, **values: t.Any) Construct a new model instance from a dict of values, replacing aliases with real field names. """ # The pydantic construct() function does not allow aliases to be handled. - aliases = {(field.alias or name): name for name, field in cls.__fields__.items()} + aliases = {(field.alias or name): name for name, field in cls.model_fields.items()} renamed_values = {aliases.get(k, k): v for k, v in values.items()} if _fields_set is not None: _fields_set = {aliases.get(f, f) for f in _fields_set} diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/links.py b/antarest/study/storage/rawstudy/model/filesystem/config/links.py index 7ebc0e2176..88059ef50e 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/links.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/links.py @@ -1,10 +1,22 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Object model used to read and update link configuration. """ import typing as t -from pydantic import Field, root_validator, validator +from pydantic import Field, field_validator, model_validator from antarest.study.business.enum_ignore_case import EnumIgnoreCase from antarest.study.storage.rawstudy.model.filesystem.config.field_validators import ( @@ -84,7 +96,7 @@ class LinkProperties(IniProperties): >>> opt = LinkProperties(**obj) - >>> pprint(opt.dict(by_alias=True), width=80) + >>> pprint(opt.model_dump(by_alias=True), width=80) {'asset-type': , 'colorRgb': '#50C0FF', 'comments': 'This is a link', @@ -134,20 +146,20 @@ class LinkProperties(IniProperties): description="color of the area in the map", ) - @validator("filter_synthesis", "filter_year_by_year", pre=True) + @field_validator("filter_synthesis", "filter_year_by_year", mode="before") def _validate_filtering(cls, v: t.Any) -> str: return validate_filtering(v) - @validator("color_rgb", pre=True) + @field_validator("color_rgb", mode="before") def _validate_color_rgb(cls, v: t.Any) -> str: return validate_color_rgb(v) - @root_validator(pre=True) + @model_validator(mode="before") def _validate_colors(cls, values: t.MutableMapping[str, t.Any]) -> t.Mapping[str, t.Any]: return validate_colors(values) # noinspection SpellCheckingInspection - def to_config(self) -> t.Mapping[str, t.Any]: + def to_config(self) -> t.Dict[str, t.Any]: """ Convert the object to a dictionary for writing to a configuration file. """ diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/model.py b/antarest/study/storage/rawstudy/model/filesystem/config/model.py index 612c50e786..d0abd57710 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/model.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/model.py @@ -1,21 +1,36 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re import typing as t from pathlib import Path -from pydantic import BaseModel, Field, root_validator +from pydantic import BaseModel, Field, model_validator from antarest.core.utils.utils import DTO from antarest.study.business.enum_ignore_case import EnumIgnoreCase -from .binding_constraint import BindingConstraintFrequency +from .binding_constraint import ( + DEFAULT_GROUP, + DEFAULT_OPERATOR, + DEFAULT_TIMESTEP, + BindingConstraintFrequency, + BindingConstraintOperator, +) from .field_validators import extract_filtering from .renewable import RenewableConfigType from .st_storage import STStorageConfigType from .thermal import ThermalConfigType -DEFAULT_GROUP = "default" -"""Default group for binding constraints (since v8.7).""" - class EnrModelling(EnumIgnoreCase): """ @@ -49,7 +64,7 @@ class Link(BaseModel, extra="ignore"): filters_synthesis: t.List[str] = Field(default_factory=list) filters_year: t.List[str] = Field(default_factory=list) - @root_validator(pre=True) + @model_validator(mode="before") def validation(cls, values: t.MutableMapping[str, t.Any]) -> t.MutableMapping[str, t.Any]: # note: field names are in kebab-case in the INI file filters_synthesis = values.pop("filter-synthesis", values.pop("filters_synthesis", "")) @@ -79,7 +94,7 @@ class DistrictSet(BaseModel): Object linked to /inputs/sets.ini information """ - ALL = ["hourly", "daily", "weekly", "monthly", "annual"] + ALL: t.List[str] = ["hourly", "daily", "weekly", "monthly", "annual"] name: t.Optional[str] = None inverted_set: bool = False areas: t.Optional[t.List[str]] = None @@ -121,15 +136,18 @@ class BindingConstraintDTO(BaseModel): Attributes: id: The ID of the binding constraint. - group: The group for the scenario of BC (optional, required since v8.7). areas: List of area IDs on which the BC applies (links or clusters). clusters: List of thermal cluster IDs on which the BC applies (format: "area.cluster"). + time_step: The time_step of the BC + operator: The operator of the BC + group: The group for the scenario of BC (optional, required since v8.7). """ id: str areas: t.Set[str] clusters: t.Set[str] - time_step: BindingConstraintFrequency + time_step: BindingConstraintFrequency = DEFAULT_TIMESTEP + operator: BindingConstraintOperator = DEFAULT_OPERATOR # since v8.7 group: str = DEFAULT_GROUP diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/renewable.py b/antarest/study/storage/rawstudy/model/filesystem/config/renewable.py index ed0716147a..b1acfe4492 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/renewable.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/renewable.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from pydantic import Field diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/ruleset_matrices.py b/antarest/study/storage/rawstudy/model/filesystem/config/ruleset_matrices.py index 5e7e380fe0..29da19c30e 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/ruleset_matrices.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/ruleset_matrices.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import numpy as np diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/st_storage.py b/antarest/study/storage/rawstudy/model/filesystem/config/st_storage.py index 3355ba571a..792855b141 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/st_storage.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/st_storage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from pydantic import Field diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/thermal.py b/antarest/study/storage/rawstudy/model/filesystem/config/thermal.py index dcd0bc7729..f3839566fd 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/thermal.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/thermal.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from pydantic import Field @@ -427,4 +439,4 @@ def create_thermal_config(study_version: t.Union[str, int], **kwargs: t.Any) -> ValueError: If the study version is not supported. """ cls = get_thermal_config_cls(study_version) - return cls(**kwargs) + return cls.model_validate(kwargs) diff --git a/antarest/study/storage/rawstudy/model/filesystem/context.py b/antarest/study/storage/rawstudy/model/filesystem/context.py index 42bc9728c3..0bbb81b503 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/context.py +++ b/antarest/study/storage/rawstudy/model/filesystem/context.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from dataclasses import dataclass from antarest.matrixstore.service import ISimpleMatrixService diff --git a/antarest/study/storage/rawstudy/model/filesystem/exceptions.py b/antarest/study/storage/rawstudy/model/filesystem/exceptions.py index 4a0cdd49cd..399847efc0 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/exceptions.py +++ b/antarest/study/storage/rawstudy/model/filesystem/exceptions.py @@ -1,3 +1,16 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + + class DenormalizationException(Exception): def __init__(self, msg: str): super(DenormalizationException, self).__init__(msg) diff --git a/antarest/study/storage/rawstudy/model/filesystem/factory.py b/antarest/study/storage/rawstudy/model/filesystem/factory.py index 040e747629..40b28e33d8 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/factory.py +++ b/antarest/study/storage/rawstudy/model/filesystem/factory.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import os.path import tempfile @@ -92,7 +104,7 @@ def _create_from_fs_unsafe( from_cache = self.cache.get(cache_id) if from_cache is not None: logger.info(f"Study {study_id} read from cache") - config = FileStudyTreeConfigDTO.parse_obj(from_cache).to_build_config() + config = FileStudyTreeConfigDTO.model_validate(from_cache).to_build_config() if output_path: config.output_path = output_path config.outputs = parse_outputs(output_path) @@ -106,7 +118,7 @@ def _create_from_fs_unsafe( logger.info(f"Cache new entry from StudyFactory (studyID: {study_id})") self.cache.put( cache_id, - FileStudyTreeConfigDTO.from_build_config(config).dict(), + FileStudyTreeConfigDTO.from_build_config(config).model_dump(), ) return result diff --git a/antarest/study/storage/rawstudy/model/filesystem/folder_node.py b/antarest/study/storage/rawstudy/model/filesystem/folder_node.py index ba1d859ce3..58b42a1388 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/folder_node.py +++ b/antarest/study/storage/rawstudy/model/filesystem/folder_node.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import shutil import typing as t from abc import ABC, abstractmethod diff --git a/antarest/study/storage/rawstudy/model/filesystem/ini_file_node.py b/antarest/study/storage/rawstudy/model/filesystem/ini_file_node.py index b2ba1c0646..bf9eecc574 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/ini_file_node.py +++ b/antarest/study/storage/rawstudy/model/filesystem/ini_file_node.py @@ -1,18 +1,30 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import functools import io -import json import logging import os import tempfile import typing as t import zipfile -from json import JSONDecodeError from pathlib import Path +import pydantic_core from filelock import FileLock from antarest.core.model import JSON, SUB_JSON +from antarest.core.serialization import from_json from antarest.study.storage.rawstudy.ini_reader import IniReader, IReader from antarest.study.storage.rawstudy.ini_writer import IniWriter from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig @@ -178,8 +190,8 @@ def save(self, data: SUB_JSON, url: t.Optional[t.List[str]] = None) -> None: info = self.reader.read(self.path) if self.path.exists() else {} obj = data if isinstance(data, str): - with contextlib.suppress(JSONDecodeError): - obj = json.loads(data) + with contextlib.suppress(pydantic_core.ValidationError): + obj = from_json(data) if len(url) == 2: if url[0] not in info: info[url[0]] = {} diff --git a/antarest/study/storage/rawstudy/model/filesystem/inode.py b/antarest/study/storage/rawstudy/model/filesystem/inode.py index e3eff7feee..e380442651 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/inode.py +++ b/antarest/study/storage/rawstudy/model/filesystem/inode.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from abc import ABC, abstractmethod from pathlib import Path from typing import Any, Dict, Generic, List, Optional, Tuple, TypeVar diff --git a/antarest/study/storage/rawstudy/model/filesystem/json_file_node.py b/antarest/study/storage/rawstudy/model/filesystem/json_file_node.py index e2ddfbab98..54333e2c4b 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/json_file_node.py +++ b/antarest/study/storage/rawstudy/model/filesystem/json_file_node.py @@ -1,8 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json import typing as t from pathlib import Path from antarest.core.model import JSON +from antarest.core.serialization import from_json, to_json from antarest.study.storage.rawstudy.ini_reader import IReader from antarest.study.storage.rawstudy.ini_writer import IniWriter from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig @@ -35,7 +48,7 @@ def read(self, path: t.Any, **kwargs: t.Any) -> JSON: raise TypeError(repr(type(path))) try: - return t.cast(JSON, json.loads(content)) + return t.cast(JSON, from_json(content)) except json.JSONDecodeError as exc: err_msg = f"Failed to parse JSON file '{path}'" raise ValueError(err_msg) from exc @@ -47,8 +60,8 @@ class JsonWriter(IniWriter): """ def write(self, data: JSON, path: Path) -> None: - with open(path, "w") as fh: - json.dump(data, fh) + with open(path, "wb") as fh: + fh.write(to_json(data)) class JsonFileNode(IniFileNode): diff --git a/antarest/study/storage/rawstudy/model/filesystem/lazy_node.py b/antarest/study/storage/rawstudy/model/filesystem/lazy_node.py index 7e47affbc9..49b83079d6 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/lazy_node.py +++ b/antarest/study/storage/rawstudy/model/filesystem/lazy_node.py @@ -1,4 +1,15 @@ -import shutil +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from abc import ABC, abstractmethod from dataclasses import dataclass @@ -6,7 +17,6 @@ from pathlib import Path from zipfile import ZipFile -from antarest.core.exceptions import ChildNotFoundError from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.inode import G, INode, S, V @@ -109,22 +119,6 @@ def delete(self, url: t.Optional[t.List[str]] = None) -> None: elif self.config.path.exists(): self.config.path.unlink() - def _infer_path(self) -> Path: - if self.get_link_path().exists(): - return self.get_link_path() - elif self.config.path.exists(): - return self.config.path - else: - raise ChildNotFoundError( - f"Neither link file {self.get_link_path} nor matrix file {self.config.path} exists" - ) - - def _infer_target_path(self, is_link: bool) -> Path: - if is_link: - return self.get_link_path() - else: - return self.config.path - def get_link_path(self) -> Path: path = self.config.path.parent / (self.config.path.name + ".link") return path @@ -144,16 +138,6 @@ def save(self, data: t.Union[str, bytes, S], url: t.Optional[t.List[str]] = None self.get_link_path().unlink() return None - def rename_file(self, target: "LazyNode[t.Any, t.Any, t.Any]") -> None: - target_path = target._infer_target_path(self.get_link_path().exists()) - target_path.unlink(missing_ok=True) - self._infer_path().rename(target_path) - - def copy_file(self, target: "LazyNode[t.Any, t.Any, t.Any]") -> None: - target_path = target._infer_target_path(self.get_link_path().exists()) - target_path.unlink(missing_ok=True) - shutil.copy(self._infer_path(), target_path) - def get_lazy_content( self, url: t.Optional[t.List[str]] = None, diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/constants.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/constants.py index 8f2b429e17..ad1300bac7 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/constants.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/constants.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import numpy as np default_scenario_hourly = np.zeros((8760, 1), dtype=np.float64) diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/date_serializer.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/date_serializer.py index 909140b68a..cdc67b8ac5 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/date_serializer.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/date_serializer.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re from abc import ABC, abstractmethod from typing import Hashable, List, Sequence, Tuple, cast diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/head_writer.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/head_writer.py index 5e2a899d17..5909f69ba7 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/head_writer.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/head_writer.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from abc import ABC, abstractmethod diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/input_series_matrix.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/input_series_matrix.py index a68b0f521e..88b7d2640a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/input_series_matrix.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/input_series_matrix.py @@ -1,4 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging +import shutil from pathlib import Path from typing import Any, List, Optional, Union, cast @@ -73,11 +86,11 @@ def parse( raise ChildNotFoundError(f"File '{relpath}' not found in the study '{study_id}'") from e stopwatch.log_elapsed(lambda x: logger.info(f"Matrix parsed in {x}s")) - matrix.dropna(how="any", axis=1, inplace=True) + final_matrix = matrix.dropna(how="any", axis=1) if return_dataframe: - return matrix + return final_matrix - data = cast(JSON, matrix.to_dict(orient="split")) + data = cast(JSON, final_matrix.to_dict(orient="split")) stopwatch.log_elapsed(lambda x: logger.info(f"Matrix to dict in {x}s")) return data @@ -100,3 +113,20 @@ def check_errors( if self.nb_columns and len(data) != self.nb_columns: errors.append(f"{self.config.path}: Data was wrong size. expected {self.nb_columns} get {len(data)}") return errors + + def _infer_path(self) -> Path: + if self.get_link_path().exists(): + return self.get_link_path() + elif self.config.path.exists(): + return self.config.path + raise ChildNotFoundError(f"Neither link file {self.get_link_path()} nor matrix file {self.config.path} exists") + + def rename_file(self, target: str) -> None: + target_path = self.config.path.parent.joinpath(f"{target}{''.join(self._infer_path().suffixes)}") + target_path.unlink(missing_ok=True) + self._infer_path().rename(target_path) + + def copy_file(self, target: str) -> None: + target_path = self.config.path.parent.joinpath(f"{target}{''.join(self._infer_path().suffixes)}") + target_path.unlink(missing_ok=True) + shutil.copy(self._infer_path(), target_path) diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/matrix.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/matrix.py index 1427301f49..364a5e3524 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/matrix.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/matrix.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from abc import ABC, abstractmethod from enum import Enum @@ -29,6 +41,19 @@ class MatrixFrequency(str, Enum): HOURLY = "hourly" +def dump_dataframe(df: pd.DataFrame, path: Path, float_format: Optional[str] = "%.6f") -> None: + if df.empty: + path.write_bytes(b"") + else: + df.to_csv( + path, + sep="\t", + header=False, + index=False, + float_format=float_format, + ) + + class MatrixNode(LazyNode[Union[bytes, JSON], Union[bytes, JSON], JSON], ABC): def __init__( self, @@ -142,13 +167,4 @@ def dump( self.config.path.write_bytes(data) else: df = pd.DataFrame(**data) - if df.empty: - self.config.path.write_bytes(b"") - else: - df.to_csv( - self.config.path, - sep="\t", - header=False, - index=False, - float_format="%.6f", - ) + dump_dataframe(df, self.config.path) diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/output_series_matrix.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/output_series_matrix.py index 70317c6255..52c9867b2f 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/output_series_matrix.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/output_series_matrix.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from pathlib import Path from typing import Any, List, Optional, Union, cast diff --git a/antarest/study/storage/rawstudy/model/filesystem/raw_file_node.py b/antarest/study/storage/rawstudy/model/filesystem/raw_file_node.py index 57770ce02d..c92f3d9152 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/raw_file_node.py +++ b/antarest/study/storage/rawstudy/model/filesystem/raw_file_node.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import List, Optional diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/desktop.py b/antarest/study/storage/rawstudy/model/filesystem/root/desktop.py index c506d2872b..20cc1b19c1 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/desktop.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/desktop.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/filestudytree.py b/antarest/study/storage/rawstudy/model/filesystem/root/filestudytree.py index e6389db280..bfef345ccc 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/filestudytree.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/filestudytree.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/areas.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/areas.py index c268e8ab2b..7dadadcc87 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/areas.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/areas.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/adequacy_patch.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/adequacy_patch.py index 6e7ac3034a..b371e886a7 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/adequacy_patch.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/adequacy_patch.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/item.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/item.py index 2a40ab60f5..37ee1d8381 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/item.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/item.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.areas.item.adequacy_patch import ( diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/optimization.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/optimization.py index 1219a291e4..53e83b6ed2 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/optimization.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/optimization.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/ui.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/ui.py index 7a457866e2..82da8ebf64 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/ui.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/item/ui.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/list.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/list.py index 0e84498e1d..5112bd7756 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/list.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/list.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List, Optional from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/sets.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/sets.py index 1748e49def..ad327b4eeb 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/sets.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/areas/sets.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader from antarest.study.storage.rawstudy.ini_writer import IniWriter from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingconstraints_ini.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingconstraints_ini.py index 51e426fda2..05ce00cedf 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingconstraints_ini.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingconstraints_ini.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingcontraints.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingcontraints.py index 8ef625200c..afa55a3f17 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingcontraints.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/bindingconstraints/bindingcontraints.py @@ -1,4 +1,19 @@ -from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import BindingConstraintFrequency +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import ( + OPERATOR_MATRICES_MAP, + BindingConstraintFrequency, +) from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.matrix.input_series_matrix import InputSeriesMatrix @@ -52,7 +67,8 @@ def build(self) -> TREE: } children = {} for binding in self.config.bindings: - for term in ["lt", "gt", "eq"]: + terms = OPERATOR_MATRICES_MAP[binding.operator] + for term in terms: matrix_id = f"{binding.id}_{term}" children[matrix_id] = InputSeriesMatrix( self.context, diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/commons/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/commons/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/commons/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/commons/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/commons/prepro_series.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/commons/prepro_series.py index b6e8f79c54..277e2311be 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/commons/prepro_series.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/commons/prepro_series.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.common.area_matrix_list import AreaMatrixList from antarest.study.storage.rawstudy.model.filesystem.common.prepro import InputPrepro from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/allocation.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/allocation.py index b517b29a77..0714f710a5 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/allocation.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/allocation.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.hydro.allocation.area import InputHydroAllocationArea diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/area.py index 12e6d2875a..b3b89b8498 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/allocation/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/capacity/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/capacity/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/capacity/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/capacity/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/capacity/capacity.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/capacity/capacity.py index 60ebab3923..7627faa777 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/capacity/capacity.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/capacity/capacity.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List, TypedDict from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/common.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/common.py index f7b29811ff..46715ff6b7 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/common.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/common/common.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.hydro.common.capacity.capacity import ( diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/hydro.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/hydro.py index 64278ef25a..c1c3d2984a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/hydro.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/hydro.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.hydro.allocation.allocation import InputHydroAllocation diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/hydro_ini.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/hydro_ini.py index 2065ea45e5..b38bafe736 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/hydro_ini.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/hydro_ini.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/area.py index bdce015f21..13d504d1c0 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.matrix.input_series_matrix import InputSeriesMatrix diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/prepro.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/prepro.py index 7298464e1a..560fb4cfee 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/prepro.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/area/prepro.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/prepro.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/prepro.py index b47ac54e2a..93104392f3 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/prepro.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/prepro/prepro.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.common.prepro import PreproCorrelation from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/area/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/area/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/area/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/area/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/area/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/area/area.py index ad7b8f0957..9488a2ffd9 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/area/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/area/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Dict from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/series.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/series.py index e8ccc2e2c6..0a92743b2b 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/series.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/hydro/series/series.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.hydro.series.area.area import InputHydroSeriesArea diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/input.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/input.py index fe22590f62..cb4c5e01b6 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/input.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/input.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import EnrModelling from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/area.py index 72d9ed3b6b..b683390565 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/capacities/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/capacities/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/capacities/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/capacities/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/capacities/capacities.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/capacities/capacities.py index ea4dd677c8..cb86c24c89 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/capacities/capacities.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/capacities/capacities.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/properties.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/properties.py index 955f6ba39d..a5ceb35fad 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/properties.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/area/properties.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/link.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/link.py index 0cb3dc3365..e12f804f9a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/link/link.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/link/link.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.link.area.area import InputLinkArea diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/miscgen/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/miscgen/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/miscgen/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/miscgen/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/miscgen/miscgen.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/miscgen/miscgen.py index b6d50dec4a..0590793e5c 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/miscgen/miscgen.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/miscgen/miscgen.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.matrix.constants import default_8_fixed_hourly diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/clusters.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/clusters.py index 8866a46551..d1be73eff4 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/clusters.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/clusters.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/renewable.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/renewable.py index c3a0d29e87..e9b7181a19 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/renewable.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/renewable.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.renewables.clusters import ( diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/series.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/series.py index 46b92ab5d2..cf323c311d 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/series.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/renewables/series.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/reserves/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/reserves/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/reserves/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/reserves/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/reserves/reserves.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/reserves/reserves.py index 41abcf7bf6..6c558e115c 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/reserves/reserves.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/reserves/reserves.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.matrix.constants import default_4_fixed_hourly diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/area.py index 3a4fafe18b..e77b3e16a2 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/list.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/list.py index d25d877376..05bb39ff0f 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/list.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/area/list.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/clusters.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/clusters.py index 78326277cf..ea2c055bed 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/clusters.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/clusters/clusters.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.st_storage.clusters.area.area import InputSTStorageArea diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/area.py index d9582bd2be..3a24f37dc6 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/st_storage/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/st_storage/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/st_storage/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/st_storage/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/st_storage/st_storage.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/st_storage/st_storage.py index 0df7979558..a531bd4bee 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/st_storage/st_storage.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/area/st_storage/st_storage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.matrix.input_series_matrix import InputSeriesMatrix diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/series.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/series.py index a724aeae5b..32aebb3351 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/series.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/series/series.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.st_storage.series.area.area import ( diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/st_storage.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/st_storage.py index 71073518a8..b70e60381f 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/st_storage.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/st_storage/st_storage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.st_storage.clusters.clusters import ( diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/areas_ini.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/areas_ini.py index 024a2077b1..89747be06c 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/areas_ini.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/areas_ini.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/area.py index 2fed32670c..6fefc8ca31 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/list.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/list.py index 0349d79e35..4b4389fdfd 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/list.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/area/list.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/cluster.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/cluster.py index acf923329b..d30376d3b3 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/cluster.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/cluster/cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.thermal.cluster.area.area import ( diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/area.py index afc70243ce..daba4ac183 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/thermal/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/thermal/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/thermal/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/thermal/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/thermal/thermal.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/thermal/thermal.py index f2ae671336..1beeb19797 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/thermal/thermal.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/area/thermal/thermal.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.matrix.input_series_matrix import InputSeriesMatrix diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/prepro.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/prepro.py index daf6fa5ffb..a9e3c19db6 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/prepro.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/prepro/prepro.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.thermal.prepro.area.area import InputThermalPreproArea diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/area.py index db10297818..33d3bf15b1 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/thermal/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/thermal/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/thermal/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/thermal/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/thermal/thermal.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/thermal/thermal.py index c11083a882..8d765a2c16 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/thermal/thermal.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/area/thermal/thermal.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.matrix.constants import default_scenario_hourly diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/series.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/series.py index 28ca74fc81..44bb37d4b4 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/series.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/series/series.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.thermal.series.area.area import InputThermalSeriesArea diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/thermal.py b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/thermal.py index 8094d8f8a3..d5ee6cc7b1 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/thermal.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/input/thermal/thermal.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.input.thermal.areas_ini import InputThermalAreasIni diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/layers/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/layers/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/layers/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/layers/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/layers/layer_ini.py b/antarest/study/storage/rawstudy/model/filesystem/root/layers/layer_ini.py index 4b3fdbb85e..4755015f11 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/layers/layer_ini.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/layers/layer_ini.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/layers/layers.py b/antarest/study/storage/rawstudy/model/filesystem/root/layers/layers.py index 44a6be5baa..086475e021 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/layers/layers.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/layers/layers.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.layers.layer_ini import LayersIni diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/logs.py b/antarest/study/storage/rawstudy/model/filesystem/root/logs.py index 7e5ba868b6..f78c68d303 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/logs.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/logs.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.bucket_node import BucketNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/output.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/output.py index 75aed67f65..b45cc32c22 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/output.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/output.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.bucket_node import BucketNode from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/about.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/about.py index fb68676aa4..bf2ce89c37 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/about.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/about.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.raw_file_node import RawFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/study.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/study.py index ddc2670048..f0324b00fd 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/study.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/about/study.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/info_antares_output.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/info_antares_output.py index cf6fbaccd5..14e834ae0b 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/info_antares_output.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/info_antares_output.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/area.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/area.py index 9aea14533e..0b97fa5735 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/area.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/areas.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/areas.py index 880a313dd8..5dcac4d82e 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/areas.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/areas.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/binding_const.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/binding_const.py index 822c5c8d93..662cef5af6 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/binding_const.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/binding_const.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.matrix.matrix import MatrixFrequency diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/link.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/link.py index 7b1fdd3eb1..b5f0b15dcb 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/link.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/link.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/links.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/links.py index 1a74e89241..9d1109ee5f 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/links.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/links.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/set.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/set.py index 367edb8442..4c8a624a5c 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/set.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/set.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/utils.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/utils.py index c59a5b22b6..f8f940fd28 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/utils.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/common/utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.root.output.simulation.mode.common.areas import ( diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/economy.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/economy.py index c1a14e5527..a7da7fa642 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/economy.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/economy.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig, Simulation from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcall/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcall/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcall/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcall/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcall/grid.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcall/grid.py index 9a542e0c97..943de12ef2 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcall/grid.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcall/grid.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import pandas as pd diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/mcind.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/mcind.py index a69eaf5497..e6cac924ea 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/mcind.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/mcind.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig, Simulation from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/simulation.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/simulation.py index 629a8c937d..129b05f147 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/simulation.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/simulation.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig, Simulation from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_generator/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_generator/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_generator/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_generator/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_generator/ts_generator.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_generator/ts_generator.py index 8757debfd0..73e0ae6ed0 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_generator/ts_generator.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_generator/ts_generator.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Callable from antarest.study.storage.rawstudy.model.filesystem.common.area_matrix_list import ( diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers.py index cc458102ca..2d5f9d729b 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.common.area_matrix_list import ( AreaMatrixList, AreaMultipleMatrixList, diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers_data.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers_data.py index 90240b04c7..670a6526ca 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers_data.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/ts_numbers/ts_numbers_data.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import List, Optional, Union diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/lp.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/lp.py index e714038ef1..da7c468535 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/lp.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/lp.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.bucket_node import BucketNode from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/sensitivity.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/sensitivity.py index 5a42122766..6e3e5a4ee5 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/sensitivity.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/sensitivity.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.json_file_node import JsonFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/xpansion.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/xpansion.py index faf4b1567b..9635e8be82 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/xpansion.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/xpansion/xpansion.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.json_file_node import JsonFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/settings/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/settings/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/settings/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/settings/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/settings/generaldata.py b/antarest/study/storage/rawstudy/model/filesystem/root/settings/generaldata.py index 7bce83396b..5066bbbabd 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/settings/generaldata.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/settings/generaldata.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from copy import deepcopy from typing import Any, Dict diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/settings/resources/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/settings/resources/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/settings/resources/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/settings/resources/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/settings/resources/resources.py b/antarest/study/storage/rawstudy/model/filesystem/root/settings/resources/resources.py index e7732f1a0d..347d90f609 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/settings/resources/resources.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/settings/resources/resources.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.raw_file_node import RawFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/settings/scenariobuilder.py b/antarest/study/storage/rawstudy/model/filesystem/root/settings/scenariobuilder.py index 8fde47960e..f80f99a942 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/settings/scenariobuilder.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/settings/scenariobuilder.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re import typing as t diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/settings/settings.py b/antarest/study/storage/rawstudy/model/filesystem/root/settings/settings.py index 663e62caf1..61d32f6012 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/settings/settings.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/settings/settings.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE from antarest.study.storage.rawstudy.model.filesystem.raw_file_node import RawFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/settings/simulations/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/settings/simulations/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/settings/simulations/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/settings/simulations/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/settings/simulations/simulations.py b/antarest/study/storage/rawstudy/model/filesystem/root/settings/simulations/simulations.py index 0986233b96..5a8e832e11 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/settings/simulations/simulations.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/settings/simulations/simulations.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode from antarest.study.storage.rawstudy.model.filesystem.inode import TREE diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/study_antares.py b/antarest/study/storage/rawstudy/model/filesystem/root/study_antares.py index 45bbde670a..34d83ee943 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/study_antares.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/study_antares.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/user/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/user/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/user/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/user/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/__init__.py b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/__init__.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/candidates.py b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/candidates.py index a42adb4a10..80e90ca258 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/candidates.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/candidates.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.ini_file_node import IniFileNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/constraint_resources.py b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/constraint_resources.py index 93a2846392..fdcde63d7d 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/constraint_resources.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/constraint_resources.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.bucket_node import BucketNode from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/expansion.py b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/expansion.py index c38246f6cf..14a7a0d653 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/expansion.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/expansion.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.bucket_node import BucketNode, RegisteredFile from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/matrix_resources.py b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/matrix_resources.py index 4f124d1662..a61ca899b6 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/matrix_resources.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/matrix_resources.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.bucket_node import BucketNode from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/sensitivity.py b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/sensitivity.py index f2f8c0d5bd..da42e73c64 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/sensitivity.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/sensitivity.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List from antarest.study.storage.rawstudy.model.filesystem.folder_node import FolderNode diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/settings.py b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/settings.py index 58dda7b433..45e568d8f6 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/settings.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/user/expansion/settings.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import SimpleKeyValueReader from antarest.study.storage.rawstudy.ini_writer import SimpleKeyValueWriter from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/user/user.py b/antarest/study/storage/rawstudy/model/filesystem/root/user/user.py index 40a1ce7a32..5cf92d089b 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/user/user.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/user/user.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.bucket_node import BucketNode, RegisteredFile from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer diff --git a/antarest/study/storage/rawstudy/model/helpers.py b/antarest/study/storage/rawstudy/model/helpers.py index 1987f48f4c..a8eae4e7b6 100644 --- a/antarest/study/storage/rawstudy/model/helpers.py +++ b/antarest/study/storage/rawstudy/model/helpers.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Dict, List, Optional, cast from antarest.core.model import JSON diff --git a/antarest/study/storage/rawstudy/raw_study_service.py b/antarest/study/storage/rawstudy/raw_study_service.py index 4990d70bf6..5e9295107a 100644 --- a/antarest/study/storage/rawstudy/raw_study_service.py +++ b/antarest/study/storage/rawstudy/raw_study_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import shutil import time @@ -92,7 +104,7 @@ def update_from_raw_meta(self, metadata: RawStudy, fallback_on_default: t.Option metadata.updated_at = metadata.updated_at or datetime.utcnow() if metadata.additional_data is None: metadata.additional_data = StudyAdditionalData() - metadata.additional_data.patch = metadata.additional_data.patch or Patch().json() + metadata.additional_data.patch = metadata.additional_data.patch or Patch().model_dump_json() metadata.additional_data.author = metadata.additional_data.author or "Unknown" else: diff --git a/antarest/study/storage/rawstudy/watcher.py b/antarest/study/storage/rawstudy/watcher.py index 8f593ce0d6..8b8ed98395 100644 --- a/antarest/study/storage/rawstudy/watcher.py +++ b/antarest/study/storage/rawstudy/watcher.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import re import tempfile diff --git a/antarest/study/storage/storage_service.py b/antarest/study/storage/storage_service.py index 599e948948..51f7555d7f 100644 --- a/antarest/study/storage/storage_service.py +++ b/antarest/study/storage/storage_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ This module provides the ``StudyStorageService`` class, which acts as a dispatcher for study storage services. It determines the appropriate study storage service based on the type of study provided. diff --git a/antarest/study/storage/study_download_utils.py b/antarest/study/storage/study_download_utils.py index 0c922fed03..9c5f6beed3 100644 --- a/antarest/study/storage/study_download_utils.py +++ b/antarest/study/storage/study_download_utils.py @@ -1,5 +1,16 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import csv -import json import logging import os import re @@ -14,6 +25,7 @@ from fastapi import HTTPException from antarest.core.exceptions import ChildNotFoundError +from antarest.core.serialization import to_json from antarest.study.model import ( ExportFormat, MatrixAggregationResult, @@ -331,15 +343,8 @@ def export( target_file: Path, ) -> None: if filetype == ExportFormat.JSON: - with open(target_file, "w") as fh: - json.dump( - matrix.dict(), - fh, - ensure_ascii=False, - allow_nan=True, - indent=None, - separators=(",", ":"), - ) + with open(target_file, "wb") as fh: + fh.write(to_json(matrix.model_dump())) else: StudyDownloader.write_inside_archive(target_file, filetype, matrix) diff --git a/antarest/study/storage/study_upgrader/__init__.py b/antarest/study/storage/study_upgrader/__init__.py index 6bfbf712be..e854e7d013 100644 --- a/antarest/study/storage/study_upgrader/__init__.py +++ b/antarest/study/storage/study_upgrader/__init__.py @@ -1,59 +1,26 @@ -import logging -import re -import shutil -import tempfile -import time -import typing as t +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from http import HTTPStatus from http.client import HTTPException from pathlib import Path -from antarest.core.exceptions import StudyValidationError - -from .upgrader_710 import upgrade_710 -from .upgrader_720 import upgrade_720 -from .upgrader_800 import upgrade_800 -from .upgrader_810 import upgrade_810 -from .upgrader_820 import upgrade_820 -from .upgrader_830 import upgrade_830 -from .upgrader_840 import upgrade_840 -from .upgrader_850 import upgrade_850 -from .upgrader_860 import upgrade_860 -from .upgrader_870 import upgrade_870 -from .upgrader_880 import upgrade_880 - -STUDY_ANTARES = "study.antares" -""" -Main file of an Antares study containing the caption, the version, the creation date, etc. -""" - -logger = logging.getLogger(__name__) - - -class UpgradeMethod(t.NamedTuple): - """Raw study upgrade method (old version, new version, upgrade function).""" - - old: str - new: str - method: t.Callable[[Path], None] - files: t.List[Path] - +from antares.study.version.exceptions import ApplicationError +from antares.study.version.model.study_version import StudyVersion +from antares.study.version.upgrade_app import UpgradeApp -_GENERAL_DATA_PATH = Path("settings/generaldata.ini") +from antarest.core.exceptions import UnsupportedStudyVersion -UPGRADE_METHODS = [ - UpgradeMethod("700", "710", upgrade_710, [_GENERAL_DATA_PATH]), - UpgradeMethod("710", "720", upgrade_720, []), - UpgradeMethod("720", "800", upgrade_800, [_GENERAL_DATA_PATH]), - UpgradeMethod("800", "810", upgrade_810, [_GENERAL_DATA_PATH, Path("input")]), - UpgradeMethod("810", "820", upgrade_820, [Path("input/links")]), - UpgradeMethod("820", "830", upgrade_830, [_GENERAL_DATA_PATH, Path("input/areas")]), - UpgradeMethod("830", "840", upgrade_840, [_GENERAL_DATA_PATH]), - UpgradeMethod("840", "850", upgrade_850, [_GENERAL_DATA_PATH]), - UpgradeMethod("850", "860", upgrade_860, [Path("input"), _GENERAL_DATA_PATH]), - UpgradeMethod("860", "870", upgrade_870, [Path("input/thermal"), Path("input/bindingconstraints")]), - UpgradeMethod("870", "880", upgrade_880, [Path("input/st-storage/clusters")]), -] +AVAILABLE_VERSIONS = ["700", "710", "720", "800", "810", "820", "830", "840", "850", "860", "870", "880"] class InvalidUpgrade(HTTPException): @@ -61,229 +28,55 @@ def __init__(self, message: str) -> None: super().__init__(HTTPStatus.UNPROCESSABLE_ENTITY, message) -def find_next_version(from_version: str) -> str: - """ - Find the next study version from the given version. - - Args: - from_version: The current version as a string. - - Returns: - The next version as a string. - If no next version was found, returns an empty string. - """ - return next( - (meth.new for meth in UPGRADE_METHODS if from_version == meth.old), - "", - ) - - -def upgrade_study(study_path: Path, target_version: str) -> None: - with tempfile.TemporaryDirectory(suffix=".upgrade.tmp", prefix="~", dir=study_path.parent) as path: - tmp_dir = Path(path) +class StudyUpgrader: + def __init__(self, study_path: Path, target_version: str): try: - src_version = get_current_version(study_path) - files_to_upgrade = can_upgrade_version(src_version, target_version) - files_to_retrieve = _copies_only_necessary_files(files_to_upgrade, study_path, tmp_dir) - _do_upgrade(tmp_dir, src_version, target_version) - except (StudyValidationError, InvalidUpgrade) as e: - logger.warning(str(e)) - raise - except Exception as e: - logger.error(f"Unhandled exception : {e}", exc_info=True) - raise + version = StudyVersion.parse(target_version) + except ValueError as e: + raise InvalidUpgrade(str(e)) from e else: - _replace_safely_original_files(files_to_retrieve, study_path, tmp_dir) + self.app = UpgradeApp(study_path, version=version) + def upgrade(self) -> None: + try: + self.app() + except ApplicationError as e: + raise InvalidUpgrade(str(e)) from e -def get_current_version(study_path: Path) -> str: - """ - Get the current version of a study. - - Args: - study_path: Path to the study. - - Returns: - The current version of the study. + def should_denormalize_study(self) -> bool: + return self.app.should_denormalize - Raises: - StudyValidationError: If the version number is not found in the - `study.antares` file or does not match the expected format. - """ - antares_path = study_path / STUDY_ANTARES - pattern = r"version\s*=\s*([\w.-]+)\s*" - with antares_path.open(encoding="utf-8") as lines: - for line in lines: - if match := re.fullmatch(pattern, line): - return match[1].rstrip() - raise StudyValidationError( - f"File parsing error: the version number is not found in '{antares_path}'" - f" or does not match the expected '{pattern}' format." - ) +def _get_version_index(version: str) -> int: + try: + return AVAILABLE_VERSIONS.index(version) + except ValueError: + raise UnsupportedStudyVersion(f"Version '{version}' isn't among supported versions: {AVAILABLE_VERSIONS}") -def can_upgrade_version(from_version: str, to_version: str) -> t.List[Path]: +def find_next_version(from_version: str) -> str: """ - Checks if upgrading from one version to another is possible. + Find the next study version from the given version. Args: - from_version: The current version of the study. - to_version: The target version of the study. + from_version: The current version as a string. Returns: - If the upgrade is possible, the list of concerned folders and files + The next version as a string. Raises: - InvalidUpgrade: If the upgrade is not possible. - """ - list_versions = [] - if from_version == to_version: - raise InvalidUpgrade(f"Your study is already in version '{to_version}'") - - sources = [u.old for u in UPGRADE_METHODS] - if from_version not in sources: - raise InvalidUpgrade(f"Version '{from_version}' unknown: possible versions are {', '.join(sources)}") - - targets = [u.new for u in UPGRADE_METHODS] - if to_version not in targets: - raise InvalidUpgrade(f"Version '{to_version}' unknown: possible versions are {', '.join(targets)}") - - files = [u.files for u in UPGRADE_METHODS] - curr_version = from_version - for src, dst, file in zip(sources, targets, files): - if curr_version == src: - for path in file: - if path not in list_versions: - list_versions.append(path) - curr_version = dst - if curr_version == to_version: - return list_versions - - # This code must be unreachable! - raise InvalidUpgrade( - f"Impossible to upgrade from version '{from_version}'" - f" to version '{to_version}':" - f" missing value in `UPGRADE_METHODS`." - ) - - -def _update_study_antares_file(target_version: str, study_path: Path) -> None: - antares_path = study_path / STUDY_ANTARES - content = antares_path.read_text(encoding="utf-8") - content = re.sub( - r"^version\s*=.*$", - f"version = {target_version}", - content, - flags=re.MULTILINE, - ) - content = re.sub( - r"^lastsave\s*=.*$", - f"lastsave = {int(time.time())}", - content, - flags=re.MULTILINE, - ) - antares_path.write_text(content, encoding="utf-8") - - -def _copies_only_necessary_files(files_to_upgrade: t.List[Path], study_path: Path, tmp_path: Path) -> t.List[Path]: - """ - Copies files concerned by the version upgrader into a temporary directory. - Args: - study_path: Path to the study. - tmp_path: Path to the temporary directory where the file modification will be performed. - files_to_upgrade: List[Path]: List of the files and folders concerned by the upgrade. - Returns: - The list of files and folders that were really copied. It's the same as files_to_upgrade but - without any children that has parents already in the list. + UnsupportedStudyVersion if the current version is not supported or if the study is already in last version. """ - files_to_copy = _filters_out_children_files(files_to_upgrade) - files_to_copy.append(Path(STUDY_ANTARES)) - files_to_retrieve = [] - for path in files_to_copy: - entire_path = study_path / path - if not entire_path.exists(): - # This can happen when upgrading a study to v8.8. - continue - if entire_path.is_dir(): - if not (tmp_path / path).exists(): - shutil.copytree(entire_path, tmp_path / path, dirs_exist_ok=True) - files_to_retrieve.append(path) - elif len(path.parts) == 1: - shutil.copy(entire_path, tmp_path / path) - files_to_retrieve.append(path) - else: - parent_path = path.parent - (tmp_path / parent_path).mkdir(parents=True, exist_ok=True) - shutil.copy(entire_path, tmp_path / parent_path) - files_to_retrieve.append(path) - return files_to_retrieve - - -def _filters_out_children_files(files_to_upgrade: t.List[Path]) -> t.List[Path]: - """ - Filters out children paths of "input" if "input" is already in the list. - Args: - files_to_upgrade: List[Path]: List of the files and folders concerned by the upgrade. - Returns: - The list of files filtered - """ - is_input_in_files_to_upgrade = Path("input") in files_to_upgrade - if is_input_in_files_to_upgrade: - files_to_keep = [Path("input")] - files_to_keep.extend(path for path in files_to_upgrade if "input" not in path.parts) - return files_to_keep - return files_to_upgrade - - -def _replace_safely_original_files(files_to_replace: t.List[Path], study_path: Path, tmp_path: Path) -> None: - """ - Replace files/folders of the study that should be upgraded by their copy already upgraded in the tmp directory. - It uses Path.rename() and an intermediary tmp directory to swap the folders safely. - In the end, all tmp directories are removed. - Args: - study_path: Path to the study. - tmp_path: Path to the temporary directory where the file modification will be performed. - files_to_replace: List[Path]: List of files and folders that were really copied - (cf. _copies_only_necessary_files's doc just above) - """ - for k, path in enumerate(files_to_replace): - backup_dir = Path( - tempfile.mkdtemp( - suffix=f".backup_{k}.tmp", - prefix="~", - dir=study_path.parent, - ) - ) - backup_dir.rmdir() - original_path = study_path / path - original_path.rename(backup_dir) - (tmp_path / path).rename(original_path) - if backup_dir.is_dir(): - shutil.rmtree(backup_dir) - else: - backup_dir.unlink() - - -def _do_upgrade(study_path: Path, src_version: str, target_version: str) -> None: - _update_study_antares_file(target_version, study_path) - curr_version = src_version - for old, new, method, _ in UPGRADE_METHODS: - if curr_version == old and curr_version != target_version: - method(study_path) - curr_version = new - - -def should_study_be_denormalized(src_version: str, target_version: str) -> bool: - try: - can_upgrade_version(src_version, target_version) - except InvalidUpgrade: - return False - curr_version = src_version - list_of_upgrades = [] - for old, new, method, _ in UPGRADE_METHODS: - if curr_version == old and curr_version != target_version: - list_of_upgrades.append(new) - curr_version = new - # These upgrades alter matrices so the study needs to be denormalized - return "820" in list_of_upgrades or "870" in list_of_upgrades + start_pos = _get_version_index(from_version) + if start_pos == len(AVAILABLE_VERSIONS) - 1: + raise UnsupportedStudyVersion(f"Your study is already in the latest supported version: '{from_version}'") + return AVAILABLE_VERSIONS[start_pos + 1] + + +def check_versions_coherence(from_version: str, target_version: str) -> None: + start_pos = _get_version_index(from_version) + final_pos = _get_version_index(target_version) + if final_pos == start_pos: + raise InvalidUpgrade(f"Your study is already in the version you asked: {from_version}") + elif final_pos < start_pos: + raise InvalidUpgrade(f"Cannot downgrade your study version : from {from_version} to {target_version}") diff --git a/antarest/study/storage/study_upgrader/upgrader_710.py b/antarest/study/storage/study_upgrader/upgrader_710.py deleted file mode 100644 index b1679b3342..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_710.py +++ /dev/null @@ -1,29 +0,0 @@ -from pathlib import Path - -from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.ini_writer import IniWriter -from antarest.study.storage.rawstudy.model.filesystem.root.settings.generaldata import DUPLICATE_KEYS - -GENERAL_DATA_PATH = "settings/generaldata.ini" - - -def upgrade_710(study_path: Path) -> None: - """ - Upgrade the study configuration to version 710. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - - reader = IniReader(DUPLICATE_KEYS) - data = reader.read(study_path / GENERAL_DATA_PATH) - data["general"]["geographic-trimming"] = data["general"]["filtering"] - data["general"]["thematic-trimming"] = False - data["optimization"]["link-type"] = "local" - data["other preferences"]["hydro-pricing-mode"] = "fast" - del data["general"]["filtering"] - writer = IniWriter(special_keys=DUPLICATE_KEYS) - writer.write(data, study_path / GENERAL_DATA_PATH) diff --git a/antarest/study/storage/study_upgrader/upgrader_720.py b/antarest/study/storage/study_upgrader/upgrader_720.py deleted file mode 100644 index 25e740baed..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_720.py +++ /dev/null @@ -1,6 +0,0 @@ -from pathlib import Path - - -def upgrade_720(study_path: Path) -> None: - # There is no input modification between the 7.1.0 and the 7.2.0 version - pass diff --git a/antarest/study/storage/study_upgrader/upgrader_800.py b/antarest/study/storage/study_upgrader/upgrader_800.py deleted file mode 100644 index b53a792985..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_800.py +++ /dev/null @@ -1,29 +0,0 @@ -from pathlib import Path - -from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.ini_writer import IniWriter -from antarest.study.storage.rawstudy.model.filesystem.root.settings.generaldata import DUPLICATE_KEYS - -GENERAL_DATA_PATH = "settings/generaldata.ini" - - -def upgrade_800(study_path: Path) -> None: - """ - Upgrade the study configuration to version 800. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - - reader = IniReader(DUPLICATE_KEYS) - data = reader.read(study_path / GENERAL_DATA_PATH) - data["other preferences"]["hydro-heuristic-policy"] = "accommodate rule curves" - data["optimization"]["include-exportstructure"] = False - data["optimization"]["include-unfeasible-problem-behavior"] = "error-verbose" - data["general"]["custom-scenario"] = data["general"]["custom-ts-numbers"] - del data["general"]["custom-ts-numbers"] - writer = IniWriter(special_keys=DUPLICATE_KEYS) - writer.write(data, study_path / GENERAL_DATA_PATH) diff --git a/antarest/study/storage/study_upgrader/upgrader_810.py b/antarest/study/storage/study_upgrader/upgrader_810.py deleted file mode 100644 index e28ef4d4b6..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_810.py +++ /dev/null @@ -1,27 +0,0 @@ -from pathlib import Path - -from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.ini_writer import IniWriter -from antarest.study.storage.rawstudy.model.filesystem.root.settings.generaldata import DUPLICATE_KEYS - -GENERAL_DATA_PATH = "settings/generaldata.ini" - - -def upgrade_810(study_path: Path) -> None: - """ - Upgrade the study configuration to version 810. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - - reader = IniReader(DUPLICATE_KEYS) - data = reader.read(study_path / GENERAL_DATA_PATH) - data["other preferences"]["renewable-generation-modelling"] = "aggregated" - writer = IniWriter(special_keys=DUPLICATE_KEYS) - writer.write(data, study_path / GENERAL_DATA_PATH) - study_path.joinpath("input", "renewables", "clusters").mkdir(parents=True, exist_ok=True) - study_path.joinpath("input", "renewables", "series").mkdir(parents=True, exist_ok=True) diff --git a/antarest/study/storage/study_upgrader/upgrader_820.py b/antarest/study/storage/study_upgrader/upgrader_820.py deleted file mode 100644 index f5416d0180..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_820.py +++ /dev/null @@ -1,55 +0,0 @@ -import glob -from pathlib import Path -from typing import cast - -import numpy as np -import numpy.typing as npt -import pandas - - -def upgrade_820(study_path: Path) -> None: - """ - Upgrade the study configuration to version 820. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - - links = glob.glob(str(study_path / "input" / "links" / "*")) - if len(links) > 0: - for folder in links: - folder_path = Path(folder) - all_txt = glob.glob(str(folder_path / "*.txt")) - if len(all_txt) > 0: - (folder_path / "capacities").mkdir(exist_ok=True) - for txt in all_txt: - df = pandas.read_csv(txt, sep="\t", header=None) - df_parameters = df.iloc[:, 2:8] - df_direct = df.iloc[:, 0] - df_indirect = df.iloc[:, 1] - name = Path(txt).stem - # noinspection PyTypeChecker - np.savetxt( - folder_path / f"{name}_parameters.txt", - cast(npt.NDArray[np.float64], df_parameters.values), - delimiter="\t", - fmt="%.6f", - ) - # noinspection PyTypeChecker - np.savetxt( - folder_path / "capacities" / f"{name}_direct.txt", - cast(npt.NDArray[np.float64], df_direct.values), - delimiter="\t", - fmt="%.6f", - ) - # noinspection PyTypeChecker - np.savetxt( - folder_path / "capacities" / f"{name}_indirect.txt", - cast(npt.NDArray[np.float64], df_indirect.values), - delimiter="\t", - fmt="%.6f", - ) - (folder_path / f"{name}.txt").unlink() diff --git a/antarest/study/storage/study_upgrader/upgrader_830.py b/antarest/study/storage/study_upgrader/upgrader_830.py deleted file mode 100644 index 414db9b8e2..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_830.py +++ /dev/null @@ -1,40 +0,0 @@ -import glob -from pathlib import Path - -from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.ini_writer import IniWriter -from antarest.study.storage.rawstudy.model.filesystem.root.settings.generaldata import DUPLICATE_KEYS - -GENERAL_DATA_PATH = "settings/generaldata.ini" - - -def upgrade_830(study_path: Path) -> None: - """ - Upgrade the study configuration to version 830. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - - reader = IniReader(DUPLICATE_KEYS) - data = reader.read(study_path / GENERAL_DATA_PATH) - data["adequacy patch"] = { - "include-adq-patch": False, - "set-to-null-ntc-between-physical-out-for-first-step": True, - "set-to-null-ntc-from-physical-out-to-physical-in-for-first-step": True, - } - data["optimization"]["include-split-exported-mps"] = False - writer = IniWriter(special_keys=DUPLICATE_KEYS) - writer.write(data, study_path / GENERAL_DATA_PATH) - areas = glob.glob(str(study_path / "input" / "areas" / "*")) - for folder in areas: - folder_path = Path(folder) - if folder_path.is_dir(): - writer = IniWriter(special_keys=DUPLICATE_KEYS) - writer.write( - {"adequacy-patch": {"adequacy-patch-mode": "outside"}}, - folder_path / "adequacy_patch.ini", - ) diff --git a/antarest/study/storage/study_upgrader/upgrader_840.py b/antarest/study/storage/study_upgrader/upgrader_840.py deleted file mode 100644 index a96aa0072a..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_840.py +++ /dev/null @@ -1,33 +0,0 @@ -from pathlib import Path - -from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.ini_writer import IniWriter -from antarest.study.storage.rawstudy.model.filesystem.root.settings.generaldata import DUPLICATE_KEYS - -GENERAL_DATA_PATH = "settings/generaldata.ini" -MAPPING_TRANSMISSION_CAPACITIES = { - True: "local-values", - False: "null-for-all-links", - "infinite": "infinite-for-all-links", -} - - -def upgrade_840(study_path: Path) -> None: - """ - Upgrade the study configuration to version 840. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - - reader = IniReader(DUPLICATE_KEYS) - data = reader.read(study_path / GENERAL_DATA_PATH) - data["optimization"]["transmission-capacities"] = MAPPING_TRANSMISSION_CAPACITIES[ - data["optimization"]["transmission-capacities"] - ] - del data["optimization"]["include-split-exported-mps"] - writer = IniWriter(special_keys=DUPLICATE_KEYS) - writer.write(data, study_path / GENERAL_DATA_PATH) diff --git a/antarest/study/storage/study_upgrader/upgrader_850.py b/antarest/study/storage/study_upgrader/upgrader_850.py deleted file mode 100644 index 08695f1e3d..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_850.py +++ /dev/null @@ -1,33 +0,0 @@ -from pathlib import Path - -from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.ini_writer import IniWriter -from antarest.study.storage.rawstudy.model.filesystem.root.settings.generaldata import DUPLICATE_KEYS - -# noinspection SpellCheckingInspection -GENERAL_DATA_PATH = "settings/generaldata.ini" - - -def upgrade_850(study_path: Path) -> None: - """ - Upgrade the study configuration to version 850. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - - reader = IniReader(DUPLICATE_KEYS) - data = reader.read(study_path / GENERAL_DATA_PATH) - - data["adequacy patch"]["price-taking-order"] = "DENS" - data["adequacy patch"]["include-hurdle-cost-csr"] = False - data["adequacy patch"]["check-csr-cost-function"] = False - data["adequacy patch"]["threshold-initiate-curtailment-sharing-rule"] = 0.0 - data["adequacy patch"]["threshold-display-local-matching-rule-violations"] = 0.0 - data["adequacy patch"]["threshold-csr-variable-bounds-relaxation"] = 3 - - writer = IniWriter(special_keys=DUPLICATE_KEYS) - writer.write(data, study_path / GENERAL_DATA_PATH) diff --git a/antarest/study/storage/study_upgrader/upgrader_860.py b/antarest/study/storage/study_upgrader/upgrader_860.py deleted file mode 100644 index 4d6f873f0d..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_860.py +++ /dev/null @@ -1,42 +0,0 @@ -from pathlib import Path - -from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.ini_writer import IniWriter -from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id -from antarest.study.storage.rawstudy.model.filesystem.root.settings.generaldata import DUPLICATE_KEYS - -# noinspection SpellCheckingInspection -GENERAL_DATA_PATH = "settings/generaldata.ini" - - -def upgrade_860(study_path: Path) -> None: - """ - Upgrade the study configuration to version 860. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - - reader = IniReader(DUPLICATE_KEYS) - data = reader.read(study_path / GENERAL_DATA_PATH) - data["adequacy patch"]["enable-first-step "] = True - writer = IniWriter(special_keys=DUPLICATE_KEYS) - writer.write(data, study_path / GENERAL_DATA_PATH) - - study_path.joinpath("input", "st-storage", "clusters").mkdir(parents=True, exist_ok=True) - study_path.joinpath("input", "st-storage", "series").mkdir(parents=True, exist_ok=True) - list_areas = ( - study_path.joinpath("input", "areas", "list.txt").read_text(encoding="utf-8").splitlines(keepends=False) - ) - for area_name in list_areas: - area_id = transform_name_to_id(area_name) - st_storage_path = study_path.joinpath("input", "st-storage", "clusters", area_id) - st_storage_path.mkdir(parents=True, exist_ok=True) - (st_storage_path / "list.ini").touch() - - hydro_series_path = study_path.joinpath("input", "hydro", "series", area_id) - hydro_series_path.mkdir(parents=True, exist_ok=True) - (hydro_series_path / "mingen.txt").touch() diff --git a/antarest/study/storage/study_upgrader/upgrader_870.py b/antarest/study/storage/study_upgrader/upgrader_870.py deleted file mode 100644 index 9b67a77c52..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_870.py +++ /dev/null @@ -1,64 +0,0 @@ -import typing as t -from pathlib import Path - -import numpy as np -import numpy.typing as npt -import pandas as pd - -from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.ini_writer import IniWriter - - -# noinspection SpellCheckingInspection -def upgrade_870(study_path: Path) -> None: - """ - Upgrade the study configuration to version 870. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - - # Split existing binding constraints in 3 different files - binding_constraints_path = study_path / "input" / "bindingconstraints" - binding_constraints_files = binding_constraints_path.glob("*.txt") - for file in binding_constraints_files: - name = file.stem - if file.stat().st_size == 0: - lt, gt, eq = pd.Series(), pd.Series(), pd.Series() - else: - df = pd.read_csv(file, sep="\t", header=None) - lt, gt, eq = df.iloc[:, 0], df.iloc[:, 1], df.iloc[:, 2] - for term, suffix in zip([lt, gt, eq], ["lt", "gt", "eq"]): - # noinspection PyTypeChecker - np.savetxt( - binding_constraints_path / f"{name}_{suffix}.txt", - t.cast(npt.NDArray[np.float64], term.values), - delimiter="\t", - fmt="%.6f", - ) - file.unlink() - - # Add property group for every section in .ini file - ini_file_path = binding_constraints_path / "bindingconstraints.ini" - data = IniReader().read(ini_file_path) - for section in data: - data[section]["group"] = "default" - IniWriter().write(data, ini_file_path) - - # Add properties for thermal clusters in .ini file - ini_files = study_path.glob("input/thermal/clusters/*/list.ini") - thermal_path = study_path / Path("input/thermal/series") - for ini_file_path in ini_files: - data = IniReader().read(ini_file_path) - area_id = ini_file_path.parent.name - for cluster in data: - new_thermal_path = thermal_path / area_id / cluster.lower() - (new_thermal_path / "CO2Cost.txt").touch() - (new_thermal_path / "fuelCost.txt").touch() - data[cluster]["costgeneration"] = "SetManually" - data[cluster]["efficiency"] = 100 - data[cluster]["variableomcost"] = 0 - IniWriter().write(data, ini_file_path) diff --git a/antarest/study/storage/study_upgrader/upgrader_880.py b/antarest/study/storage/study_upgrader/upgrader_880.py deleted file mode 100644 index 0de50cff4b..0000000000 --- a/antarest/study/storage/study_upgrader/upgrader_880.py +++ /dev/null @@ -1,32 +0,0 @@ -import glob -from pathlib import Path - -from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.rawstudy.ini_writer import IniWriter -from antarest.study.storage.rawstudy.model.filesystem.root.settings.generaldata import DUPLICATE_KEYS - - -# noinspection SpellCheckingInspection -def upgrade_880(study_path: Path) -> None: - """ - Upgrade the study configuration to version 880. - - NOTE: - The file `study.antares` is not upgraded here. - - Args: - study_path: path to the study directory. - """ - st_storage_path = study_path / "input" / "st-storage" / "clusters" - if not st_storage_path.exists(): - # The folder only exists for studies in v8.6+ that have some short term storage clusters. - # For every other case, this upgrader has nothing to do. - return - writer = IniWriter(special_keys=DUPLICATE_KEYS) - cluster_files = glob.glob(str(st_storage_path / "*" / "list.ini")) - for file in cluster_files: - file_path = Path(file) - cluster_list = IniReader().read(file_path) - for cluster in cluster_list: - cluster_list[cluster]["enabled"] = True - writer.write(cluster_list, file_path) diff --git a/antarest/study/storage/utils.py b/antarest/study/storage/utils.py index 5dc97b081b..5d7a6c2db0 100644 --- a/antarest/study/storage/utils.py +++ b/antarest/study/storage/utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import calendar import logging import math @@ -152,7 +164,8 @@ def remove_from_cache(cache: ICache, root_id: str) -> None: def create_new_empty_study(version: str, path_study: Path, path_resources: Path) -> None: version_template: t.Optional[str] = STUDY_REFERENCE_TEMPLATES.get(version, None) if version_template is None: - raise UnsupportedStudyVersion(version) + msg = f"{version} is not a supported version, supported versions are: {list(STUDY_REFERENCE_TEMPLATES.keys())}" + raise UnsupportedStudyVersion(msg) empty_study_zip = path_resources / version_template diff --git a/antarest/study/storage/variantstudy/__init__.py b/antarest/study/storage/variantstudy/__init__.py index 8b13789179..058c6b221a 100644 --- a/antarest/study/storage/variantstudy/__init__.py +++ b/antarest/study/storage/variantstudy/__init__.py @@ -1 +1,11 @@ - +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/variantstudy/business/__init__.py b/antarest/study/storage/variantstudy/business/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/variantstudy/business/__init__.py +++ b/antarest/study/storage/variantstudy/business/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/variantstudy/business/command_extractor.py b/antarest/study/storage/variantstudy/business/command_extractor.py index 4ac5070a69..adbcc811d8 100644 --- a/antarest/study/storage/variantstudy/business/command_extractor.py +++ b/antarest/study/storage/variantstudy/business/command_extractor.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import base64 import logging import typing as t @@ -211,7 +223,7 @@ def _extract_cluster(self, study: FileStudy, area_id: str, cluster_id: str, rene create_cluster_command( area_id=area_id, cluster_name=cluster.id, - parameters=cluster.dict(by_alias=True, exclude_defaults=True, exclude={"id"}), + parameters=cluster.model_dump(by_alias=True, exclude_defaults=True, exclude={"id"}), command_context=self.command_context, ), self.generate_replace_matrix( @@ -311,6 +323,7 @@ def extract_district(self, study: FileStudy, district_id: str) -> t.List[IComman district_config = study_config.sets[district_id] base_filter = DistrictBaseFilter.add_all if district_config.inverted_set else DistrictBaseFilter.remove_all district_fetched_config = study_tree.get(["input", "areas", "sets", district_id]) + assert district_config.name is not None study_commands.append( CreateDistrict( name=district_config.name, @@ -370,7 +383,8 @@ def extract_binding_constraint( matrices[name] = matrix["data"] # Create the command to create the binding constraint - create_cmd = CreateBindingConstraint(**binding, **matrices, coeffs=terms, command_context=self.command_context) + kwargs = {**binding, **matrices, "coeffs": terms, "command_context": self.command_context} + create_cmd = CreateBindingConstraint.model_validate(kwargs) return [create_cmd] @@ -404,8 +418,8 @@ def generate_update_playlist( config = study_tree.get(["settings", "generaldata"]) playlist = get_playlist(config) return UpdatePlaylist( - items=playlist.keys() if playlist else None, - weights=({year for year, weight in playlist.items() if weight != 1} if playlist else None), + items=list(playlist.keys()) if playlist else None, + weights=({year: weight for year, weight in playlist.items() if weight != 1} if playlist else None), active=bool(playlist and len(playlist) > 0), reverse=False, command_context=self.command_context, @@ -441,6 +455,7 @@ def generate_update_district( study_tree = study.tree district_config = study_config.sets[district_id] district_fetched_config = study_tree.get(["input", "areas", "sets", district_id]) + assert district_config.name is not None return UpdateDistrict( id=district_config.name, base_filter=DistrictBaseFilter.add_all if district_config.inverted_set else DistrictBaseFilter.remove_all, diff --git a/antarest/study/storage/variantstudy/business/command_reverter.py b/antarest/study/storage/variantstudy/business/command_reverter.py index c60cfad601..5134a86bea 100644 --- a/antarest/study/storage/variantstudy/business/command_reverter.py +++ b/antarest/study/storage/variantstudy/business/command_reverter.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import typing as t from pathlib import Path @@ -16,6 +28,9 @@ from antarest.study.storage.variantstudy.model.command.create_link import CreateLink from antarest.study.storage.variantstudy.model.command.create_renewables_cluster import CreateRenewablesCluster from antarest.study.storage.variantstudy.model.command.create_st_storage import CreateSTStorage +from antarest.study.storage.variantstudy.model.command.generate_thermal_cluster_timeseries import ( + GenerateThermalClusterTimeSeries, +) from antarest.study.storage.variantstudy.model.command.icommand import ICommand from antarest.study.storage.variantstudy.model.command.remove_area import RemoveArea from antarest.study.storage.variantstudy.model.command.remove_binding_constraint import RemoveBindingConstraint @@ -120,7 +135,7 @@ def _revert_update_binding_constraint( if matrix is not None: args[matrix_name] = matrix_service.get_matrix_id(matrix) - return [UpdateBindingConstraint(**args)] + return [UpdateBindingConstraint.model_validate(args)] return base_command.get_command_extractor().extract_binding_constraint(base, base_command.id) @@ -317,6 +332,12 @@ def _revert_update_district( extractor = base_command.get_command_extractor() return [extractor.generate_update_district(base, base_command.id)] + @staticmethod + def _revert_generate_thermal_cluster_timeseries( + base_command: GenerateThermalClusterTimeSeries, history: t.List["ICommand"], base: FileStudy + ) -> t.List[ICommand]: + raise NotImplementedError("The revert function for GenerateThermalClusterTimeSeries is not available") + def revert( self, base_command: ICommand, diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/__init__.py b/antarest/study/storage/variantstudy/business/matrix_constants/__init__.py index 9212a8e6c6..ae0af113f7 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/__init__.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/__init__.py @@ -1 +1,13 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from . import binding_constraint, hydro, link, prepro, st_storage, thermals diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/__init__.py b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/__init__.py index 679232c20b..580794d32a 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/__init__.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/__init__.py @@ -1 +1,13 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from . import series_after_v87, series_before_v87 # noqa: F401 diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_after_v87.py b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_after_v87.py index 30c23a7dfe..81c830f7d1 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_after_v87.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_after_v87.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import numpy as np default_bc_hourly = np.zeros((8784, 1), dtype=np.float64) diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_before_v87.py b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_before_v87.py index f093c8e4a3..063eb069c8 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_before_v87.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/binding_constraint/series_before_v87.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import numpy as np # Matrice shapes for binding constraints are different from usual shapes, diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/common.py b/antarest/study/storage/variantstudy/business/matrix_constants/common.py index 8b6c020fe0..4507a48ce7 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/common.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/common.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List from antarest.matrixstore.model import MatrixData diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/hydro/__init__.py b/antarest/study/storage/variantstudy/business/matrix_constants/hydro/__init__.py index d205aa7510..36ac538608 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/hydro/__init__.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/hydro/__init__.py @@ -1 +1,13 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from . import v6, v7 diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/hydro/v6.py b/antarest/study/storage/variantstudy/business/matrix_constants/hydro/v6.py index c23c0e8c43..a2415c6f7e 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/hydro/v6.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/hydro/v6.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List from antarest.matrixstore.model import MatrixData diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/hydro/v7.py b/antarest/study/storage/variantstudy/business/matrix_constants/hydro/v7.py index 7a1aa3ddb0..0de0936333 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/hydro/v7.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/hydro/v7.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List from antarest.matrixstore.model import MatrixData diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/link/__init__.py b/antarest/study/storage/variantstudy/business/matrix_constants/link/__init__.py index c7c7f46456..c517f46722 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/link/__init__.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/link/__init__.py @@ -1 +1,13 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from . import v7, v8 diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/link/v7.py b/antarest/study/storage/variantstudy/business/matrix_constants/link/v7.py index 6c91737939..4340537f99 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/link/v7.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/link/v7.py @@ -1 +1,13 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + link = [[1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]] * 8760 diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/link/v8.py b/antarest/study/storage/variantstudy/business/matrix_constants/link/v8.py index 4ada31812a..839a703ef2 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/link/v8.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/link/v8.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + link = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]] * 8760 direct = [[1.0]] * 8760 indirect = [[1.0]] * 8760 diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/prepro.py b/antarest/study/storage/variantstudy/business/matrix_constants/prepro.py index bf1c5124ea..2a04905c67 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/prepro.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/prepro.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + conversion = [ [-9999999980506447872.0, 0.0, 9999999980506447872.0], [0.0, 0.0, 0.0], diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/st_storage/__init__.py b/antarest/study/storage/variantstudy/business/matrix_constants/st_storage/__init__.py index 0a1b9046e5..f6c48f1942 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/st_storage/__init__.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/st_storage/__init__.py @@ -1 +1,13 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from . import series diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/st_storage/series.py b/antarest/study/storage/variantstudy/business/matrix_constants/st_storage/series.py index 90d705b7e8..5efba8eece 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/st_storage/series.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/st_storage/series.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import numpy as np pmax_injection = np.ones((8760, 1), dtype=np.float64) diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/thermals/__init__.py b/antarest/study/storage/variantstudy/business/matrix_constants/thermals/__init__.py index 39933eb2e1..1b665aa933 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/thermals/__init__.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/thermals/__init__.py @@ -1 +1,13 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from . import prepro diff --git a/antarest/study/storage/variantstudy/business/matrix_constants/thermals/prepro.py b/antarest/study/storage/variantstudy/business/matrix_constants/thermals/prepro.py index eb0d3c9160..d244f5e7b4 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants/thermals/prepro.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants/thermals/prepro.py @@ -1,2 +1,14 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + data = [[1.0, 1.0, 0.0, 0.0, 0.0, 0.0]] * 365 modulation = [[1.0, 1.0, 1.0, 0.0]] * 8760 diff --git a/antarest/study/storage/variantstudy/business/matrix_constants_generator.py b/antarest/study/storage/variantstudy/business/matrix_constants_generator.py index 4c75f6a6eb..abb0953b4c 100644 --- a/antarest/study/storage/variantstudy/business/matrix_constants_generator.py +++ b/antarest/study/storage/variantstudy/business/matrix_constants_generator.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import tempfile from pathlib import Path from typing import Dict diff --git a/antarest/study/storage/variantstudy/business/utils.py b/antarest/study/storage/variantstudy/business/utils.py index 75396ccbc6..9f1988d1de 100644 --- a/antarest/study/storage/variantstudy/business/utils.py +++ b/antarest/study/storage/variantstudy/business/utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from antarest.core.model import JSON diff --git a/antarest/study/storage/variantstudy/business/utils_binding_constraint.py b/antarest/study/storage/variantstudy/business/utils_binding_constraint.py index f236cfbca3..328e43f0f6 100644 --- a/antarest/study/storage/variantstudy/business/utils_binding_constraint.py +++ b/antarest/study/storage/variantstudy/business/utils_binding_constraint.py @@ -1,6 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t -from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import BindingConstraintFrequency +from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import ( + BindingConstraintFrequency, + BindingConstraintOperator, +) from antarest.study.storage.rawstudy.model.filesystem.config.model import BindingConstraintDTO, FileStudyTreeConfig @@ -8,16 +23,14 @@ def parse_bindings_coeffs_and_save_into_config( bd_id: str, study_data_config: FileStudyTreeConfig, coeffs: t.Mapping[str, t.Union[t.Literal["hourly", "daily", "weekly"], t.Sequence[float]]], + operator: BindingConstraintOperator, + time_step: BindingConstraintFrequency, group: str, ) -> None: if bd_id not in [bind.id for bind in study_data_config.bindings]: areas_set = set() clusters_set = set() - # Default time_step value - time_step = BindingConstraintFrequency.HOURLY for k, v in coeffs.items(): - if k == "type": - time_step = BindingConstraintFrequency(v) if "%" in k: areas_set |= set(k.split("%")) elif "." in k: @@ -28,6 +41,7 @@ def parse_bindings_coeffs_and_save_into_config( group=group, areas=areas_set, clusters=clusters_set, + operator=operator, time_step=time_step, ) study_data_config.bindings.append(bc) diff --git a/antarest/study/storage/variantstudy/command_factory.py b/antarest/study/storage/variantstudy/command_factory.py index c4803ce0cc..409cf81bb5 100644 --- a/antarest/study/storage/variantstudy/command_factory.py +++ b/antarest/study/storage/variantstudy/command_factory.py @@ -1,3 +1,16 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +import copy import typing as t from antarest.core.model import JSON @@ -12,6 +25,9 @@ from antarest.study.storage.variantstudy.model.command.create_link import CreateLink from antarest.study.storage.variantstudy.model.command.create_renewables_cluster import CreateRenewablesCluster from antarest.study.storage.variantstudy.model.command.create_st_storage import CreateSTStorage +from antarest.study.storage.variantstudy.model.command.generate_thermal_cluster_timeseries import ( + GenerateThermalClusterTimeSeries, +) from antarest.study.storage.variantstudy.model.command.icommand import ICommand from antarest.study.storage.variantstudy.model.command.remove_area import RemoveArea from antarest.study.storage.variantstudy.model.command.remove_binding_constraint import RemoveBindingConstraint @@ -54,6 +70,7 @@ CommandName.UPDATE_DISTRICT.value: UpdateDistrict, CommandName.UPDATE_PLAYLIST.value: UpdatePlaylist, CommandName.UPDATE_SCENARIO_BUILDER.value: UpdateScenarioBuilder, + CommandName.GENERATE_THERMAL_CLUSTER_TIMESERIES.value: GenerateThermalClusterTimeSeries, } @@ -101,10 +118,15 @@ def to_command(self, command_dto: CommandDTO) -> t.List[ICommand]: """ args = command_dto.args if isinstance(args, dict): - return [self._to_single_command(command_dto.action, args, command_dto.version, command_dto.id)] + # In some cases, pydantic can modify inplace the given args. + # We don't want that so before doing so we copy the dictionnary. + new_args = copy.deepcopy(args) + return [self._to_single_command(command_dto.action, new_args, command_dto.version, command_dto.id)] elif isinstance(args, list): return [ - self._to_single_command(command_dto.action, argument, command_dto.version, command_dto.id) + self._to_single_command( + command_dto.action, copy.deepcopy(argument), command_dto.version, command_dto.id + ) for argument in args ] raise NotImplementedError() diff --git a/antarest/study/storage/variantstudy/model/__init__.py b/antarest/study/storage/variantstudy/model/__init__.py index 8b13789179..058c6b221a 100644 --- a/antarest/study/storage/variantstudy/model/__init__.py +++ b/antarest/study/storage/variantstudy/model/__init__.py @@ -1 +1,11 @@ - +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/variantstudy/model/command/__init__.py b/antarest/study/storage/variantstudy/model/command/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/storage/variantstudy/model/command/__init__.py +++ b/antarest/study/storage/variantstudy/model/command/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/storage/variantstudy/model/command/common.py b/antarest/study/storage/variantstudy/model/command/common.py index a6e08e258d..dc5dce4331 100644 --- a/antarest/study/storage/variantstudy/model/command/common.py +++ b/antarest/study/storage/variantstudy/model/command/common.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from dataclasses import dataclass from enum import Enum @@ -36,3 +48,4 @@ class CommandName(Enum): UPDATE_DISTRICT = "update_district" UPDATE_PLAYLIST = "update_playlist" UPDATE_SCENARIO_BUILDER = "update_scenario_builder" + GENERATE_THERMAL_CLUSTER_TIMESERIES = "generate_thermal_cluster_timeseries" diff --git a/antarest/study/storage/variantstudy/model/command/create_area.py b/antarest/study/storage/variantstudy/model/command/create_area.py index 0ef68b61d3..bfc8711b8e 100644 --- a/antarest/study/storage/variantstudy/model/command/create_area.py +++ b/antarest/study/storage/variantstudy/model/command/create_area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from pydantic import Field @@ -49,8 +61,8 @@ class CreateArea(ICommand): # Overloaded metadata # =================== - command_name = CommandName.CREATE_AREA - version = 1 + command_name: CommandName = CommandName.CREATE_AREA + version: int = 1 # Command parameters # ================== diff --git a/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py b/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py index 0e34b5f867..50ce659fd9 100644 --- a/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py +++ b/antarest/study/storage/variantstudy/model/command/create_binding_constraint.py @@ -1,14 +1,28 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from abc import ABCMeta from enum import Enum import numpy as np -from pydantic import BaseModel, Extra, Field, root_validator, validator +from pydantic import BaseModel, Field, field_validator, model_validator from antarest.matrixstore.model import MatrixData -from antarest.study.business.all_optional_meta import AllOptionalMetaclass +from antarest.study.business.all_optional_meta import all_optional_model, camel_case_model from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import ( + DEFAULT_GROUP, + DEFAULT_OPERATOR, + DEFAULT_TIMESTEP, BindingConstraintFrequency, BindingConstraintOperator, ) @@ -24,8 +38,6 @@ from antarest.study.storage.variantstudy.model.command.icommand import MATCH_SIGNATURE_SEPARATOR, ICommand from antarest.study.storage.variantstudy.model.model import CommandDTO -DEFAULT_GROUP = "default" - MatrixType = t.List[t.List[MatrixData]] EXPECTED_MATRIX_SHAPES = { @@ -78,26 +90,24 @@ def check_matrix_values(time_step: BindingConstraintFrequency, values: MatrixTyp # ================================================================================= -class BindingConstraintPropertiesBase(BaseModel, extra=Extra.forbid, allow_population_by_field_name=True): +class BindingConstraintPropertiesBase(BaseModel, extra="forbid", populate_by_name=True): enabled: bool = True - time_step: BindingConstraintFrequency = Field(BindingConstraintFrequency.HOURLY, alias="type") - operator: BindingConstraintOperator = BindingConstraintOperator.EQUAL + time_step: BindingConstraintFrequency = Field(DEFAULT_TIMESTEP, alias="type") + operator: BindingConstraintOperator = DEFAULT_OPERATOR comments: str = "" - @classmethod - def from_dict(cls, **attrs: t.Any) -> "BindingConstraintPropertiesBase": - """ - Instantiate a class from a dictionary excluding unknown or `None` fields. - """ - attrs = {k: v for k, v in attrs.items() if k in cls.__fields__ and v is not None} - return cls(**attrs) + @model_validator(mode="before") + def replace_with_alias(cls, values: t.Dict[str, t.Any]) -> t.Dict[str, t.Any]: + if "type" in values: + values["time_step"] = values.pop("type") + return values class BindingConstraintProperties830(BindingConstraintPropertiesBase): filter_year_by_year: str = Field("", alias="filter-year-by-year") filter_synthesis: str = Field("", alias="filter-synthesis") - @validator("filter_synthesis", "filter_year_by_year", pre=True) + @field_validator("filter_synthesis", "filter_year_by_year", mode="before") def _validate_filtering(cls, v: t.Any) -> str: return validate_filtering(v) @@ -138,10 +148,12 @@ def create_binding_constraint_config(study_version: t.Union[str, int], **kwargs: The binding_constraint configuration model. """ cls = get_binding_constraint_config_cls(study_version) - return cls.from_dict(**kwargs) + attrs = {k: v for k, v in kwargs.items() if k in cls.model_fields and v is not None} + return cls(**attrs) -class OptionalProperties(BindingConstraintProperties870, metaclass=AllOptionalMetaclass, use_none=True): +@all_optional_model +class OptionalProperties(BindingConstraintProperties870): pass @@ -150,32 +162,30 @@ class OptionalProperties(BindingConstraintProperties870, metaclass=AllOptionalMe # ================================================================================= -class BindingConstraintMatrices(BaseModel, extra=Extra.forbid, allow_population_by_field_name=True): +@camel_case_model +class BindingConstraintMatrices(BaseModel, extra="forbid", populate_by_name=True): """ Class used to store the matrices of a binding constraint. """ values: t.Optional[t.Union[MatrixType, str]] = Field( - None, + default=None, description="2nd member matrix for studies before v8.7", ) less_term_matrix: t.Optional[t.Union[MatrixType, str]] = Field( - None, + default=None, description="less term matrix for v8.7+ studies", - alias="lessTermMatrix", ) greater_term_matrix: t.Optional[t.Union[MatrixType, str]] = Field( - None, + default=None, description="greater term matrix for v8.7+ studies", - alias="greaterTermMatrix", ) equal_term_matrix: t.Optional[t.Union[MatrixType, str]] = Field( - None, + default=None, description="equal term matrix for v8.7+ studies", - alias="equalTermMatrix", ) - @root_validator(pre=True) + @model_validator(mode="before") def check_matrices( cls, values: t.Dict[str, t.Optional[t.Union[MatrixType, str]]] ) -> t.Dict[str, t.Optional[t.Union[MatrixType, str]]]: @@ -202,10 +212,10 @@ class AbstractBindingConstraintCommand(OptionalProperties, BindingConstraintMatr Abstract class for binding constraint commands. """ - coeffs: t.Optional[t.Dict[str, t.List[float]]] + coeffs: t.Optional[t.Dict[str, t.List[float]]] = None def to_dto(self) -> CommandDTO: - json_command = json.loads(self.json(exclude={"command_context"})) + json_command = self.model_dump(mode="json", exclude={"command_context"}) args = {} for field in ["enabled", "coeffs", "comments", "time_step", "operator"]: if json_command[field]: @@ -337,18 +347,21 @@ def apply_binding_constraint( [str(coeff_val) for coeff_val in self.coeffs[link_or_cluster]] ) - group = self.group or DEFAULT_GROUP - parse_bindings_coeffs_and_save_into_config( - bd_id, - study_data.config, - self.coeffs or {}, - group=group, - ) study_data.tree.save( binding_constraints, ["input", "bindingconstraints", "bindingconstraints"], ) + existing_constraint = binding_constraints[new_key] + current_operator = self.operator or BindingConstraintOperator( + existing_constraint.get("operator", DEFAULT_OPERATOR) + ) + group = self.group or existing_constraint.get("group", DEFAULT_GROUP) + time_step = self.time_step or BindingConstraintFrequency(existing_constraint.get("type", DEFAULT_TIMESTEP)) + parse_bindings_coeffs_and_save_into_config( + bd_id, study_data.config, self.coeffs or {}, operator=current_operator, time_step=time_step, group=group + ) + if version >= 870: # When all BC of a given group are removed, the group should be removed from the scenario builder old_groups = old_groups or set() @@ -369,14 +382,13 @@ def apply_binding_constraint( BindingConstraintOperator.BOTH: [(self.less_term_matrix, "lt"), (self.greater_term_matrix, "gt")], } - current_operator = self.operator or BindingConstraintOperator(binding_constraints[new_key]["operator"]) - for matrix_term, matrix_alias in operator_matrices_map[current_operator]: if matrix_term: if not isinstance(matrix_term, str): # pragma: no cover raise TypeError(repr(matrix_term)) if version >= 870: - study_data.tree.save(matrix_term, ["input", "bindingconstraints", f"{bd_id}_{matrix_alias}"]) + matrix_id = f"{bd_id}_{matrix_alias}" + study_data.tree.save(matrix_term, ["input", "bindingconstraints", matrix_id]) return CommandOutput(status=True) @@ -385,7 +397,7 @@ class CreateBindingConstraint(AbstractBindingConstraintCommand): Command used to create a binding constraint. """ - command_name = CommandName.CREATE_BINDING_CONSTRAINT + command_name: CommandName = CommandName.CREATE_BINDING_CONSTRAINT version: int = 1 # Properties of the `CREATE_BINDING_CONSTRAINT` command: @@ -394,10 +406,14 @@ class CreateBindingConstraint(AbstractBindingConstraintCommand): def _apply_config(self, study_data_config: FileStudyTreeConfig) -> t.Tuple[CommandOutput, t.Dict[str, t.Any]]: bd_id = transform_name_to_id(self.name) group = self.group or DEFAULT_GROUP + operator = self.operator or DEFAULT_OPERATOR + time_step = self.time_step or DEFAULT_TIMESTEP parse_bindings_coeffs_and_save_into_config( bd_id, study_data_config, self.coeffs or {}, + operator=operator, + time_step=time_step, group=group, ) return CommandOutput(status=True), {} @@ -408,8 +424,8 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: bd_id = transform_name_to_id(self.name) study_version = study_data.config.version - props = create_binding_constraint_config(study_version, **self.dict()) - obj = json.loads(props.json(by_alias=True)) + props = create_binding_constraint_config(study_version, **self.model_dump()) + obj = props.model_dump(mode="json", by_alias=True) new_binding = {"id": bd_id, "name": self.name, **obj} @@ -435,9 +451,9 @@ def _create_diff(self, other: "ICommand") -> t.List["ICommand"]: bd_id = transform_name_to_id(self.name) args = {"id": bd_id, "command_context": other.command_context} - excluded_fields = frozenset(ICommand.__fields__) - self_command = json.loads(self.json(exclude=excluded_fields)) - other_command = json.loads(other.json(exclude=excluded_fields)) + excluded_fields = set(ICommand.model_fields) + self_command = self.model_dump(mode="json", exclude=excluded_fields) + other_command = other.model_dump(mode="json", exclude=excluded_fields) properties = [ "enabled", "coeffs", @@ -461,7 +477,7 @@ def _create_diff(self, other: "ICommand") -> t.List["ICommand"]: if self_matrix_id != other_matrix_id: args[matrix_name] = other_matrix_id - return [UpdateBindingConstraint(**args)] + return [UpdateBindingConstraint.model_validate(args)] def match(self, other: "ICommand", equal: bool = False) -> bool: if not isinstance(other, self.__class__): diff --git a/antarest/study/storage/variantstudy/model/command/create_cluster.py b/antarest/study/storage/variantstudy/model/command/create_cluster.py index a884eb7b9c..a1c6ef17aa 100644 --- a/antarest/study/storage/variantstudy/model/command/create_cluster.py +++ b/antarest/study/storage/variantstudy/model/command/create_cluster.py @@ -1,6 +1,18 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t -from pydantic import validator +from pydantic import Field, ValidationInfo, field_validator from antarest.core.model import JSON from antarest.core.utils.utils import assert_this @@ -26,46 +38,51 @@ class CreateCluster(ICommand): # Overloaded metadata # =================== - command_name = CommandName.CREATE_THERMAL_CLUSTER - version = 1 + command_name: CommandName = CommandName.CREATE_THERMAL_CLUSTER + version: int = 1 # Command parameters # ================== area_id: str cluster_name: str - parameters: t.Dict[str, str] - prepro: t.Optional[t.Union[t.List[t.List[MatrixData]], str]] = None - modulation: t.Optional[t.Union[t.List[t.List[MatrixData]], str]] = None + parameters: t.Dict[str, t.Any] + prepro: t.Optional[t.Union[t.List[t.List[MatrixData]], str]] = Field(None, validate_default=True) + modulation: t.Optional[t.Union[t.List[t.List[MatrixData]], str]] = Field(None, validate_default=True) - @validator("cluster_name") + @field_validator("cluster_name", mode="before") def validate_cluster_name(cls, val: str) -> str: valid_name = transform_name_to_id(val, lower=False) if valid_name != val: raise ValueError("Cluster name must only contains [a-zA-Z0-9],&,-,_,(,) characters") return val - @validator("prepro", always=True) + @field_validator("prepro", mode="before") def validate_prepro( - cls, v: t.Optional[t.Union[t.List[t.List[MatrixData]], str]], values: t.Any + cls, + v: t.Optional[t.Union[t.List[t.List[MatrixData]], str]], + values: t.Union[t.Dict[str, t.Any], ValidationInfo], ) -> t.Optional[t.Union[t.List[t.List[MatrixData]], str]]: + new_values = values if isinstance(values, dict) else values.data if v is None: - v = values["command_context"].generator_matrix_constants.get_thermal_prepro_data() + v = new_values["command_context"].generator_matrix_constants.get_thermal_prepro_data() return v - else: - return validate_matrix(v, values) + return validate_matrix(v, new_values) - @validator("modulation", always=True) + @field_validator("modulation", mode="before") def validate_modulation( - cls, v: t.Optional[t.Union[t.List[t.List[MatrixData]], str]], values: t.Any + cls, + v: t.Optional[t.Union[t.List[t.List[MatrixData]], str]], + values: t.Union[t.Dict[str, t.Any], ValidationInfo], ) -> t.Optional[t.Union[t.List[t.List[MatrixData]], str]]: + new_values = values if isinstance(values, dict) else values.data if v is None: - v = values["command_context"].generator_matrix_constants.get_thermal_prepro_modulation() + v = new_values["command_context"].generator_matrix_constants.get_thermal_prepro_modulation() return v else: - return validate_matrix(v, values) + return validate_matrix(v, new_values) def _apply_config(self, study_data: FileStudyTreeConfig) -> t.Tuple[CommandOutput, t.Dict[str, t.Any]]: # Search the Area in the configuration diff --git a/antarest/study/storage/variantstudy/model/command/create_district.py b/antarest/study/storage/variantstudy/model/command/create_district.py index 9311345db0..afb9736806 100644 --- a/antarest/study/storage/variantstudy/model/command/create_district.py +++ b/antarest/study/storage/variantstudy/model/command/create_district.py @@ -1,7 +1,19 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from enum import Enum from typing import Any, Dict, List, Optional, Tuple, cast -from pydantic import validator +from pydantic import field_validator from antarest.study.storage.rawstudy.model.filesystem.config.model import ( DistrictSet, @@ -27,8 +39,8 @@ class CreateDistrict(ICommand): # Overloaded metadata # =================== - command_name = CommandName.CREATE_DISTRICT - version = 1 + command_name: CommandName = CommandName.CREATE_DISTRICT + version: int = 1 # Command parameters # ================== @@ -39,7 +51,7 @@ class CreateDistrict(ICommand): output: bool = True comments: str = "" - @validator("name") + @field_validator("name") def validate_district_name(cls, val: str) -> str: valid_name = transform_name_to_id(val, lower=False) if valid_name != val: diff --git a/antarest/study/storage/variantstudy/model/command/create_link.py b/antarest/study/storage/variantstudy/model/command/create_link.py index f716b0c4d6..ef2d21f0a9 100644 --- a/antarest/study/storage/variantstudy/model/command/create_link.py +++ b/antarest/study/storage/variantstudy/model/command/create_link.py @@ -1,6 +1,18 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Dict, List, Optional, Tuple, Union, cast -from pydantic import root_validator, validator +from pydantic import ValidationInfo, field_validator, model_validator from antarest.core.model import JSON from antarest.core.utils.utils import assert_this @@ -39,30 +51,31 @@ class CreateLink(ICommand): # Overloaded metadata # =================== - command_name = CommandName.CREATE_LINK - version = 1 + command_name: CommandName = CommandName.CREATE_LINK + version: int = 1 # Command parameters # ================== area1: str area2: str - parameters: Optional[Dict[str, str]] = None + parameters: Optional[Dict[str, Any]] = None series: Optional[Union[List[List[MatrixData]], str]] = None direct: Optional[Union[List[List[MatrixData]], str]] = None indirect: Optional[Union[List[List[MatrixData]], str]] = None - @validator("series", "direct", "indirect", always=True) + @field_validator("series", "direct", "indirect", mode="before") def validate_series( - cls, v: Optional[Union[List[List[MatrixData]], str]], values: Any + cls, v: Optional[Union[List[List[MatrixData]], str]], values: Union[Dict[str, Any], ValidationInfo] ) -> Optional[Union[List[List[MatrixData]], str]]: - return validate_matrix(v, values) if v is not None else v + new_values = values if isinstance(values, dict) else values.data + return validate_matrix(v, new_values) if v is not None else v - @root_validator - def validate_areas(cls, values: Dict[str, Any]) -> Any: - if values.get("area1") == values.get("area2"): + @model_validator(mode="after") + def validate_areas(self) -> "CreateLink": + if self.area1 == self.area2: raise ValueError("Cannot create link on same node") - return values + return self def _create_link_in_config(self, area_from: str, area_to: str, study_data: FileStudyTreeConfig) -> None: self.parameters = self.parameters or {} diff --git a/antarest/study/storage/variantstudy/model/command/create_renewables_cluster.py b/antarest/study/storage/variantstudy/model/command/create_renewables_cluster.py index c0c9aa44f8..1a932dd30d 100644 --- a/antarest/study/storage/variantstudy/model/command/create_renewables_cluster.py +++ b/antarest/study/storage/variantstudy/model/command/create_renewables_cluster.py @@ -1,6 +1,18 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t -from pydantic import validator +from pydantic import field_validator from antarest.core.model import JSON from antarest.study.storage.rawstudy.model.filesystem.config.model import ( @@ -24,17 +36,17 @@ class CreateRenewablesCluster(ICommand): # Overloaded metadata # =================== - command_name = CommandName.CREATE_RENEWABLES_CLUSTER - version = 1 + command_name: CommandName = CommandName.CREATE_RENEWABLES_CLUSTER + version: int = 1 # Command parameters # ================== area_id: str cluster_name: str - parameters: t.Dict[str, str] + parameters: t.Dict[str, t.Any] - @validator("cluster_name") + @field_validator("cluster_name") def validate_cluster_name(cls, val: str) -> str: valid_name = transform_name_to_id(val, lower=False) if valid_name != val: diff --git a/antarest/study/storage/variantstudy/model/command/create_st_storage.py b/antarest/study/storage/variantstudy/model/command/create_st_storage.py index 90fb980c4b..8244957da5 100644 --- a/antarest/study/storage/variantstudy/model/command/create_st_storage.py +++ b/antarest/study/storage/variantstudy/model/command/create_st_storage.py @@ -1,9 +1,19 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import numpy as np -from pydantic import Field, validator -from pydantic.fields import ModelField +from pydantic import Field, ValidationInfo, model_validator from antarest.core.model import JSON from antarest.matrixstore.model import MatrixData @@ -40,32 +50,32 @@ class CreateSTStorage(ICommand): # Overloaded metadata # =================== - command_name = CommandName.CREATE_ST_STORAGE - version = 1 + command_name: CommandName = CommandName.CREATE_ST_STORAGE + version: int = 1 # Command parameters # ================== - area_id: str = Field(description="Area ID", regex=r"[a-z0-9_(),& -]+") + area_id: str = Field(description="Area ID", pattern=r"[a-z0-9_(),& -]+") parameters: STStorageConfigType pmax_injection: t.Optional[t.Union[MatrixType, str]] = Field( - None, + default=None, description="Charge capacity (modulation)", ) pmax_withdrawal: t.Optional[t.Union[MatrixType, str]] = Field( - None, + default=None, description="Discharge capacity (modulation)", ) lower_rule_curve: t.Optional[t.Union[MatrixType, str]] = Field( - None, + default=None, description="Lower rule curve (coefficient)", ) upper_rule_curve: t.Optional[t.Union[MatrixType, str]] = Field( - None, + default=None, description="Upper rule curve (coefficient)", ) inflows: t.Optional[t.Union[MatrixType, str]] = Field( - None, + default=None, description="Inflows (MW)", ) @@ -79,12 +89,9 @@ def storage_name(self) -> str: """The label representing the name of the storage for the user.""" return self.parameters.name - @validator(*_MATRIX_NAMES, always=True) - def register_matrix( - cls, - v: t.Optional[t.Union[MatrixType, str]], - values: t.Dict[str, t.Any], - field: ModelField, + @staticmethod + def validate_field( + v: t.Optional[t.Union[MatrixType, str]], values: t.Dict[str, t.Any], field: str ) -> t.Optional[t.Union[MatrixType, str]]: """ Validates a matrix array or link, and store the matrix array in the matrix repository. @@ -100,7 +107,7 @@ def register_matrix( Args: v: The matrix array or link to be validated and registered. values: A dictionary containing additional values used for validation. - field: The field being validated. + field: The name of the validated parameter Returns: The ID of the validated and stored matrix prefixed by "matrix://". @@ -122,7 +129,7 @@ def register_matrix( "upper_rule_curve": constants.get_st_storage_upper_rule_curve, "inflows": constants.get_st_storage_inflows, } - method = methods[field.name] + method = methods[field] return method() if isinstance(v, str): # Check the matrix link @@ -136,7 +143,7 @@ def register_matrix( raise ValueError("Matrix values cannot contain NaN") # All matrices except "inflows" are constrained between 0 and 1 constrained = set(_MATRIX_NAMES) - {"inflows"} - if field.name in constrained and (np.any(array < 0) or np.any(array > 1)): + if field in constrained and (np.any(array < 0) or np.any(array > 1)): raise ValueError("Matrix values should be between 0 and 1") v = t.cast(MatrixType, array.tolist()) return validate_matrix(v, values) @@ -144,6 +151,13 @@ def register_matrix( # pragma: no cover raise TypeError(repr(v)) + @model_validator(mode="before") + def validate_matrices(cls, values: t.Union[t.Dict[str, t.Any], ValidationInfo]) -> t.Dict[str, t.Any]: + new_values = values if isinstance(values, dict) else values.data + for field in _MATRIX_NAMES: + new_values[field] = cls.validate_field(new_values.get(field, None), new_values, field) + return new_values + def _apply_config(self, study_data: FileStudyTreeConfig) -> t.Tuple[CommandOutput, t.Dict[str, t.Any]]: """ Applies configuration changes to the study data: add the short-term storage in the storages list. @@ -211,14 +225,14 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: Returns: The output of the command execution. """ - output, data = self._apply_config(study_data.config) + output, _ = self._apply_config(study_data.config) if not output.status: return output # Fill-in the "list.ini" file with the parameters. # On creation, it's better to write all the parameters in the file. config = study_data.tree.get(["input", "st-storage", "clusters", self.area_id, "list"]) - config[self.storage_id] = json.loads(self.parameters.json(by_alias=True, exclude={"id"})) + config[self.storage_id] = self.parameters.model_dump(mode="json", by_alias=True, exclude={"id"}) new_data: JSON = { "input": { @@ -240,7 +254,7 @@ def to_dto(self) -> CommandDTO: Returns: The DTO object representing the current command. """ - parameters = json.loads(self.parameters.json(by_alias=True, exclude={"id"})) + parameters = self.parameters.model_dump(mode="json", by_alias=True, exclude={"id"}) return CommandDTO( action=self.command_name.value, args={ @@ -305,7 +319,7 @@ def _create_diff(self, other: "ICommand") -> t.List["ICommand"]: if getattr(self, attr) != getattr(other, attr) ] if self.parameters != other.parameters: - data: t.Dict[str, t.Any] = json.loads(other.parameters.json(by_alias=True, exclude={"id"})) + data: t.Dict[str, t.Any] = other.parameters.model_dump(mode="json", by_alias=True, exclude={"id"}) commands.append( UpdateConfig( target=f"input/st-storage/clusters/{self.area_id}/list/{self.storage_id}", diff --git a/antarest/study/storage/variantstudy/model/command/generate_thermal_cluster_timeseries.py b/antarest/study/storage/variantstudy/model/command/generate_thermal_cluster_timeseries.py new file mode 100644 index 0000000000..ad7e5fa863 --- /dev/null +++ b/antarest/study/storage/variantstudy/model/command/generate_thermal_cluster_timeseries.py @@ -0,0 +1,153 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +import logging +import shutil +import tempfile +import typing as t +from pathlib import Path + +import numpy as np +import pandas as pd +from antares.tsgen.duration_generator import ProbabilityLaw +from antares.tsgen.random_generator import MersenneTwisterRNG +from antares.tsgen.ts_generator import ThermalCluster, ThermalDataGenerator + +from antarest.study.storage.rawstudy.model.filesystem.config.model import Area, FileStudyTreeConfig +from antarest.study.storage.rawstudy.model.filesystem.config.thermal import LocalTSGenerationBehavior +from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy +from antarest.study.storage.rawstudy.model.filesystem.matrix.matrix import dump_dataframe +from antarest.study.storage.variantstudy.model.command.common import CommandName, CommandOutput +from antarest.study.storage.variantstudy.model.command.icommand import ICommand, OutputTuple +from antarest.study.storage.variantstudy.model.model import CommandDTO + +logger = logging.getLogger(__name__) + + +MODULATION_CAPACITY_COLUMN = 2 +FO_RATE_COLUMN = 2 +PO_RATE_COLUMN = 3 + + +class GenerateThermalClusterTimeSeries(ICommand): + """ + Command used to generate thermal cluster timeseries for an entire study + """ + + command_name: CommandName = CommandName.GENERATE_THERMAL_CLUSTER_TIMESERIES + version: int = 1 + + def _apply_config(self, study_data: FileStudyTreeConfig) -> OutputTuple: + return CommandOutput(status=True, message="Nothing to do"), {} + + def _apply(self, study_data: FileStudy) -> CommandOutput: + study_path = study_data.config.study_path + with tempfile.TemporaryDirectory( + suffix=".thermal_timeseries_gen.tmp", prefix="~", dir=study_path.parent + ) as path: + tmp_dir = Path(path) + try: + shutil.copytree(study_path / "input" / "thermal" / "series", tmp_dir, dirs_exist_ok=True) + self._build_timeseries(study_data, tmp_dir) + except Exception as e: + logger.error(f"Unhandled exception when trying to generate thermal timeseries: {e}", exc_info=True) + raise + else: + self._replace_safely_original_files(study_path, tmp_dir) + return CommandOutput(status=True, message="All time series were generated successfully") + + def _build_timeseries(self, study_data: FileStudy, tmp_path: Path) -> None: + # 1- Get the seed and nb_years to generate + # NB: Default seed in IHM Legacy: 5489, default seed in web: 3005489. + general_data = study_data.tree.get(["settings", "generaldata"], depth=3) + thermal_seed = general_data["seeds - Mersenne Twister"]["seed-tsgen-thermal"] + nb_years = general_data["general"]["nbtimeseriesthermal"] + # 2 - Build the generator + rng = MersenneTwisterRNG(seed=thermal_seed) + generator = ThermalDataGenerator(rng=rng, days=365) + # 3- Loop through areas in alphabetical order + areas: t.Dict[str, Area] = study_data.config.areas + sorted_areas = {k: areas[k] for k in sorted(areas)} + for area_id, area in sorted_areas.items(): + # 4- Loop through thermal clusters in alphabetical order + sorted_thermals = sorted(area.thermals, key=lambda x: x.id) + for thermal in sorted_thermals: + # 5 - Filters out clusters with no generation + if thermal.gen_ts == LocalTSGenerationBehavior.FORCE_NO_GENERATION: + continue + # 6- Build the cluster + url = ["input", "thermal", "prepro", area_id, thermal.id.lower(), "modulation"] + matrix = study_data.tree.get_node(url) + matrix_df = matrix.parse(return_dataframe=True) # type: ignore + modulation_capacity = matrix_df[MODULATION_CAPACITY_COLUMN].to_numpy() + url = ["input", "thermal", "prepro", area_id, thermal.id.lower(), "data"] + matrix = study_data.tree.get_node(url) + matrix_df = matrix.parse(return_dataframe=True) # type: ignore + fo_duration, po_duration, fo_rate, po_rate, npo_min, npo_max = [ + np.array(matrix_df[i], dtype=float if i in [FO_RATE_COLUMN, PO_RATE_COLUMN] else int) + for i in matrix_df.columns + ] + cluster = ThermalCluster( + unit_count=thermal.unit_count, + nominal_power=thermal.nominal_capacity, + modulation=modulation_capacity, + fo_law=ProbabilityLaw(thermal.law_forced.value.upper()), + fo_volatility=thermal.volatility_forced, + po_law=ProbabilityLaw(thermal.law_planned.value.upper()), + po_volatility=thermal.volatility_planned, + fo_duration=fo_duration, + fo_rate=fo_rate, + po_duration=po_duration, + po_rate=po_rate, + npo_min=npo_min, + npo_max=npo_max, + ) + # 7- Generate the time-series + results = generator.generate_time_series(cluster, nb_years) + generated_matrix = results.available_power + # 8- Write the matrix inside the input folder. + df = pd.DataFrame(data=generated_matrix, dtype=int) + target_path = self._build_matrix_path(tmp_path / area_id / thermal.id.lower()) + dump_dataframe(df, target_path, None) + + def to_dto(self) -> CommandDTO: + return CommandDTO(action=self.command_name.value, args={}) + + def match_signature(self) -> str: + return str(self.command_name.value) + + def match(self, other: "ICommand", equal: bool = False) -> bool: + # Only used inside the cli app that no one uses I believe. + if not isinstance(other, GenerateThermalClusterTimeSeries): + return False + return True + + def _create_diff(self, other: "ICommand") -> t.List["ICommand"]: + # Only used inside the cli app that no one uses I believe. + raise NotImplementedError() + + def get_inner_matrices(self) -> t.List[str]: + # This is used to get used matrices and not remove them inside the garbage collector loop. + return [] + + @staticmethod + def _replace_safely_original_files(study_path: Path, tmp_path: Path) -> None: + original_path = study_path / "input" / "thermal" / "series" + shutil.rmtree(original_path) + tmp_path.rename(original_path) + + @staticmethod + def _build_matrix_path(matrix_path: Path) -> Path: + real_path = matrix_path / "series.txt" + if not real_path.exists(): + (matrix_path / "series.txt.link").rename(real_path) + return real_path diff --git a/antarest/study/storage/variantstudy/model/command/icommand.py b/antarest/study/storage/variantstudy/model/command/icommand.py index 98b8756dda..eb9a1f1285 100644 --- a/antarest/study/storage/variantstudy/model/command/icommand.py +++ b/antarest/study/storage/variantstudy/model/command/icommand.py @@ -1,10 +1,22 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import typing as t import uuid from abc import ABC, abstractmethod import typing_extensions as te -from pydantic import BaseModel, Extra +from pydantic import BaseModel from antarest.core.utils.utils import assert_this from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig @@ -23,7 +35,7 @@ OutputTuple: te.TypeAlias = t.Tuple[CommandOutput, t.Dict[str, t.Any]] -class ICommand(ABC, BaseModel, extra=Extra.forbid, arbitrary_types_allowed=True, copy_on_model_validation="deep"): +class ICommand(ABC, BaseModel, extra="forbid", arbitrary_types_allowed=True): """ Interface for all commands that can be applied to a study. @@ -126,9 +138,9 @@ def match(self, other: "ICommand", equal: bool = False) -> bool: """ if not isinstance(other, self.__class__): return False - excluded_fields = set(ICommand.__fields__) - this_values = self.dict(exclude=excluded_fields) - that_values = other.dict(exclude=excluded_fields) + excluded_fields = set(ICommand.model_fields) + this_values = self.model_dump(exclude=excluded_fields) + that_values = other.model_dump(exclude=excluded_fields) return this_values == that_values @abstractmethod diff --git a/antarest/study/storage/variantstudy/model/command/remove_area.py b/antarest/study/storage/variantstudy/model/command/remove_area.py index f39c8aac9c..3bf3e1856c 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_area.py +++ b/antarest/study/storage/variantstudy/model/command/remove_area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import logging import typing as t @@ -21,7 +33,7 @@ class RemoveArea(ICommand): Command used to remove an area. """ - command_name = CommandName.REMOVE_AREA + command_name: CommandName = CommandName.REMOVE_AREA version: int = 1 # Properties of the `REMOVE_AREA` command: diff --git a/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py b/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py index 33805f6c73..ee51c7e641 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py +++ b/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py @@ -1,13 +1,23 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Dict, List, Tuple from antarest.core.model import JSON +from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import DEFAULT_GROUP from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.variantstudy.model.command.common import CommandName, CommandOutput -from antarest.study.storage.variantstudy.model.command.create_binding_constraint import ( - DEFAULT_GROUP, - remove_bc_from_scenario_builder, -) +from antarest.study.storage.variantstudy.model.command.create_binding_constraint import remove_bc_from_scenario_builder from antarest.study.storage.variantstudy.model.command.icommand import MATCH_SIGNATURE_SEPARATOR, ICommand from antarest.study.storage.variantstudy.model.model import CommandDTO @@ -17,7 +27,7 @@ class RemoveBindingConstraint(ICommand): Command used to remove a binding constraint. """ - command_name = CommandName.REMOVE_BINDING_CONSTRAINT + command_name: CommandName = CommandName.REMOVE_BINDING_CONSTRAINT version: int = 1 # Properties of the `REMOVE_BINDING_CONSTRAINT` command: @@ -50,8 +60,11 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: if study_data.config.version < 870: study_data.tree.delete(["input", "bindingconstraints", self.id]) else: + existing_files = study_data.tree.get(["input", "bindingconstraints"], depth=1) for term in ["lt", "gt", "eq"]: - study_data.tree.delete(["input", "bindingconstraints", f"{self.id}_{term}"]) + matrix_id = f"{self.id}_{term}" + if matrix_id in existing_files: + study_data.tree.delete(["input", "bindingconstraints", matrix_id]) # When all BC of a given group are removed, the group should be removed from the scenario builder old_groups = {bd.get("group", DEFAULT_GROUP).lower() for bd in binding_constraints.values()} diff --git a/antarest/study/storage/variantstudy/model/command/remove_cluster.py b/antarest/study/storage/variantstudy/model/command/remove_cluster.py index 8f959a2ef1..3895b423e9 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_cluster.py +++ b/antarest/study/storage/variantstudy/model/command/remove_cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from antarest.study.storage.rawstudy.model.filesystem.config.model import Area, FileStudyTreeConfig @@ -18,8 +30,8 @@ class RemoveCluster(ICommand): # Overloaded metadata # =================== - command_name = CommandName.REMOVE_THERMAL_CLUSTER - version = 1 + command_name: CommandName = CommandName.REMOVE_THERMAL_CLUSTER + version: int = 1 # Command parameters # ================== @@ -175,7 +187,7 @@ def _remove_cluster_from_binding_constraints(self, study_data: FileStudy) -> Non # Collect the binding constraints that are related to the area to remove # by searching the terms that contain the ID of the area. - bc_to_remove = {} + bc_to_remove = [] lower_area_id = self.area_id.lower() lower_cluster_id = self.cluster_id.lower() for bc_index, bc in list(binding_constraints.items()): @@ -188,14 +200,15 @@ def _remove_cluster_from_binding_constraints(self, study_data: FileStudy) -> Non # noinspection PyTypeChecker related_area_id, related_cluster_id = map(str.lower, key.split(".")) if (lower_area_id, lower_cluster_id) == (related_area_id, related_cluster_id): - bc_to_remove[bc_index] = binding_constraints.pop(bc_index) + bc_to_remove.append(binding_constraints.pop(bc_index)["id"]) break matrix_suffixes = ["_lt", "_gt", "_eq"] if study_data.config.version >= 870 else [""] - for bc_index, bc in bc_to_remove.items(): - for suffix in matrix_suffixes: - # noinspection SpellCheckingInspection - study_data.tree.delete(["input", "bindingconstraints", f"{bc['id']}{suffix}"]) + existing_files = study_data.tree.get(["input", "bindingconstraints"], depth=1) + for bc_id, suffix in zip(bc_to_remove, matrix_suffixes): + matrix_id = f"{bc_id}{suffix}" + if matrix_id in existing_files: + study_data.tree.delete(["input", "bindingconstraints", matrix_id]) study_data.tree.save(binding_constraints, url) diff --git a/antarest/study/storage/variantstudy/model/command/remove_district.py b/antarest/study/storage/variantstudy/model/command/remove_district.py index 36995b5c11..586a827943 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_district.py +++ b/antarest/study/storage/variantstudy/model/command/remove_district.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Dict, List, Tuple from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig @@ -15,8 +27,8 @@ class RemoveDistrict(ICommand): # Overloaded metadata # =================== - command_name = CommandName.REMOVE_DISTRICT - version = 1 + command_name: CommandName = CommandName.REMOVE_DISTRICT + version: int = 1 # Command parameters # ================== diff --git a/antarest/study/storage/variantstudy/model/command/remove_link.py b/antarest/study/storage/variantstudy/model/command/remove_link.py index c82597f32b..a384ccff58 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_link.py +++ b/antarest/study/storage/variantstudy/model/command/remove_link.py @@ -1,6 +1,18 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t -from pydantic import root_validator, validator +from pydantic import field_validator, model_validator from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig, transform_name_to_id from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy @@ -17,7 +29,7 @@ class RemoveLink(ICommand): # Overloaded metadata # =================== - command_name = CommandName.REMOVE_LINK + command_name: CommandName = CommandName.REMOVE_LINK version: int = 1 # Command parameters @@ -28,7 +40,7 @@ class RemoveLink(ICommand): area2: str # noinspection PyMethodParameters - @validator("area1", "area2", pre=True) + @field_validator("area1", "area2", mode="before") def _validate_id(cls, area: str) -> str: if isinstance(area, str): # Area IDs must be in lowercase and not empty. @@ -42,16 +54,12 @@ def _validate_id(cls, area: str) -> str: return area # noinspection PyMethodParameters - @root_validator(pre=False) - def _validate_link(cls, values: t.Dict[str, t.Any]) -> t.Dict[str, t.Any]: - area1 = values.get("area1") - area2 = values.get("area2") - - if area1 and area2: - # By convention, the source area is always the smallest one (in lexicographic order). - values["area1"], values["area2"] = sorted([area1, area2]) - - return values + @model_validator(mode="after") + def _validate_link(self) -> "RemoveLink": + # By convention, the source area is always the smallest one (in lexicographic order). + if self.area1 > self.area2: + self.area1, self.area2 = self.area2, self.area1 + return self def _check_link_exists(self, study_cfg: FileStudyTreeConfig) -> OutputTuple: """ diff --git a/antarest/study/storage/variantstudy/model/command/remove_renewables_cluster.py b/antarest/study/storage/variantstudy/model/command/remove_renewables_cluster.py index 0e41eef9b5..834dc1043b 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_renewables_cluster.py +++ b/antarest/study/storage/variantstudy/model/command/remove_renewables_cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from antarest.study.storage.rawstudy.model.filesystem.config.model import Area, FileStudyTreeConfig @@ -15,8 +27,8 @@ class RemoveRenewablesCluster(ICommand): # Overloaded metadata # =================== - command_name = CommandName.REMOVE_RENEWABLES_CLUSTER - version = 1 + command_name: CommandName = CommandName.REMOVE_RENEWABLES_CLUSTER + version: int = 1 # Command parameters # ================== diff --git a/antarest/study/storage/variantstudy/model/command/remove_st_storage.py b/antarest/study/storage/variantstudy/model/command/remove_st_storage.py index 116f402c08..550587535d 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_st_storage.py +++ b/antarest/study/storage/variantstudy/model/command/remove_st_storage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from pydantic import Field @@ -20,14 +32,14 @@ class RemoveSTStorage(ICommand): # Overloaded metadata # =================== - command_name = CommandName.REMOVE_ST_STORAGE - version = 1 + command_name: CommandName = CommandName.REMOVE_ST_STORAGE + version: int = 1 # Command parameters # ================== - area_id: str = Field(description="Area ID", regex=r"[a-z0-9_(),& -]+") - storage_id: str = Field(description="Short term storage ID", regex=r"[a-z0-9_(),& -]+") + area_id: str = Field(description="Area ID", pattern=r"[a-z0-9_(),& -]+") + storage_id: str = Field(description="Short term storage ID", pattern=r"[a-z0-9_(),& -]+") def _apply_config(self, study_data: FileStudyTreeConfig) -> t.Tuple[CommandOutput, t.Dict[str, t.Any]]: """ diff --git a/antarest/study/storage/variantstudy/model/command/replace_matrix.py b/antarest/study/storage/variantstudy/model/command/replace_matrix.py index 6a51ca86b1..8a26f12f28 100644 --- a/antarest/study/storage/variantstudy/model/command/replace_matrix.py +++ b/antarest/study/storage/variantstudy/model/command/replace_matrix.py @@ -1,6 +1,18 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t -from pydantic import validator +from pydantic import Field, ValidationInfo, field_validator from antarest.core.exceptions import ChildNotFoundError from antarest.core.model import JSON @@ -23,16 +35,18 @@ class ReplaceMatrix(ICommand): # Overloaded metadata # =================== - command_name = CommandName.REPLACE_MATRIX - version = 1 + command_name: CommandName = CommandName.REPLACE_MATRIX + version: int = 1 # Command parameters # ================== target: str - matrix: t.Union[t.List[t.List[MatrixData]], str] + matrix: t.Union[t.List[t.List[MatrixData]], str] = Field(validate_default=True) - _validate_matrix = validator("matrix", each_item=True, always=True, allow_reuse=True)(validate_matrix) + @field_validator("matrix", mode="before") + def matrix_validator(cls, matrix: t.Union[t.List[t.List[MatrixData]], str], values: ValidationInfo) -> str: + return validate_matrix(matrix, values.data) def _apply_config(self, study_data: FileStudyTreeConfig) -> t.Tuple[CommandOutput, t.Dict[str, t.Any]]: return ( diff --git a/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py b/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py index 6c1d9bafae..530cc92dfd 100644 --- a/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py +++ b/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py @@ -1,18 +1,29 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from antarest.core.model import JSON -from antarest.matrixstore.model import MatrixData from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import ( + DEFAULT_GROUP, + OPERATOR_MATRICES_MAP, BindingConstraintFrequency, BindingConstraintOperator, ) -from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig +from antarest.study.storage.rawstudy.model.filesystem.config.model import BindingConstraintDTO, FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy -from antarest.study.storage.rawstudy.model.filesystem.lazy_node import LazyNode +from antarest.study.storage.rawstudy.model.filesystem.matrix.input_series_matrix import InputSeriesMatrix from antarest.study.storage.variantstudy.model.command.common import CommandName, CommandOutput from antarest.study.storage.variantstudy.model.command.create_binding_constraint import ( - DEFAULT_GROUP, AbstractBindingConstraintCommand, TermMatrices, create_binding_constraint_config, @@ -20,27 +31,21 @@ from antarest.study.storage.variantstudy.model.command.icommand import MATCH_SIGNATURE_SEPARATOR, ICommand from antarest.study.storage.variantstudy.model.model import CommandDTO -MatrixType = t.List[t.List[MatrixData]] - -ALIAS_OPERATOR_MAP = { - BindingConstraintOperator.EQUAL: "eq", - BindingConstraintOperator.LESS: "lt", - BindingConstraintOperator.GREATER: "gt", -} - def _update_matrices_names( file_study: FileStudy, - binding_constraint_id: str, + bc_id: str, existing_operator: BindingConstraintOperator, new_operator: BindingConstraintOperator, ) -> None: """ Update the matrix file name according to the new operator. + Due to legacy matrices generation, we need to check if the new matrix file already exists + and if it does, we need to first remove it before renaming the existing matrix file Args: file_study: the file study - binding_constraint_id: the binding constraint ID + bc_id: the binding constraint ID existing_operator: the existing operator new_operator: the new operator @@ -48,17 +53,6 @@ def _update_matrices_names( NotImplementedError: if the case is not handled """ - parent_folder_node = file_study.tree.get_node(["input", "bindingconstraints"]) - matrix_lt = parent_folder_node.get_node([f"{binding_constraint_id}_lt"]) - assert isinstance(matrix_lt, LazyNode), f"Node type not handled yet: LazyNode expected, got {type(matrix_lt)}" - matrix_eq = parent_folder_node.get_node([f"{binding_constraint_id}_eq"]) - assert isinstance(matrix_eq, LazyNode), f"Node type not handled yet: LazyNode expected, got {type(matrix_eq)}" - matrix_gt = parent_folder_node.get_node([f"{binding_constraint_id}_gt"]) - assert isinstance(matrix_gt, LazyNode), f"Node type not handled yet: LazyNode expected, got {type(matrix_gt)}" - - # Due to legacy matrices generation, we need to check if the new matrix file already exists - # and if it does, we need to first remove it before renaming the existing matrix file - handled_operators = [ BindingConstraintOperator.EQUAL, BindingConstraintOperator.LESS, @@ -72,37 +66,31 @@ def _update_matrices_names( ) elif existing_operator == new_operator: return # nothing to do - elif existing_operator != BindingConstraintOperator.BOTH and new_operator != BindingConstraintOperator.BOTH: - matrix_node = parent_folder_node.get_node([f"{binding_constraint_id}_{ALIAS_OPERATOR_MAP[existing_operator]}"]) - assert isinstance( - matrix_node, LazyNode - ), f"Node type not handled yet: LazyNode expected, got {type(matrix_node)}" - new_matrix_node = parent_folder_node.get_node([f"{binding_constraint_id}_{ALIAS_OPERATOR_MAP[new_operator]}"]) - assert isinstance( - new_matrix_node, LazyNode - ), f"Node type not handled yet: LazyNode expected, got {type(new_matrix_node)}" - matrix_node.rename_file(new_matrix_node) + + parent_folder_node = file_study.tree.get_node(["input", "bindingconstraints"]) + error_msg = "Unhandled node type, expected InputSeriesMatrix, got " + if existing_operator != BindingConstraintOperator.BOTH and new_operator != BindingConstraintOperator.BOTH: + current_node = parent_folder_node.get_node([f"{bc_id}_{OPERATOR_MATRICES_MAP[existing_operator][0]}"]) + assert isinstance(current_node, InputSeriesMatrix), f"{error_msg}{type(current_node)}" + current_node.rename_file(f"{bc_id}_{OPERATOR_MATRICES_MAP[new_operator][0]}") elif new_operator == BindingConstraintOperator.BOTH: + current_node = parent_folder_node.get_node([f"{bc_id}_{OPERATOR_MATRICES_MAP[existing_operator][0]}"]) + assert isinstance(current_node, InputSeriesMatrix), f"{error_msg}{type(current_node)}" if existing_operator == BindingConstraintOperator.EQUAL: - matrix_eq.rename_file(matrix_lt) - matrix_gt.delete() - # copy the matrix lt to gt - matrix_lt.copy_file(matrix_gt) - elif existing_operator == BindingConstraintOperator.LESS: - matrix_gt.delete() - matrix_lt.copy_file(matrix_gt) + current_node.copy_file(f"{bc_id}_gt") + current_node.rename_file(f"{bc_id}_lt") else: - matrix_lt.delete() - matrix_gt.copy_file(matrix_lt) + term = "lt" if existing_operator == BindingConstraintOperator.GREATER else "gt" + current_node.copy_file(f"{bc_id}_{term}") else: - if new_operator == BindingConstraintOperator.EQUAL: - # we may retrieve the mean of the two matrices, but here we just copy the lt matrix - matrix_lt.rename_file(matrix_eq) - matrix_gt.delete() - elif new_operator == BindingConstraintOperator.LESS: - matrix_gt.delete() + current_node = parent_folder_node.get_node([f"{bc_id}_lt"]) + assert isinstance(current_node, InputSeriesMatrix), f"{error_msg}{type(current_node)}" + if new_operator == BindingConstraintOperator.GREATER: + current_node.delete() else: - matrix_lt.delete() + parent_folder_node.get_node([f"{bc_id}_gt"]).delete() + if new_operator == BindingConstraintOperator.EQUAL: + current_node.rename_file(f"{bc_id}_eq") class UpdateBindingConstraint(AbstractBindingConstraintCommand): @@ -113,7 +101,7 @@ class UpdateBindingConstraint(AbstractBindingConstraintCommand): # Overloaded metadata # =================== - command_name = CommandName.UPDATE_BINDING_CONSTRAINT + command_name: CommandName = CommandName.UPDATE_BINDING_CONSTRAINT version: int = 1 # Command parameters @@ -123,6 +111,31 @@ class UpdateBindingConstraint(AbstractBindingConstraintCommand): id: str def _apply_config(self, study_data: FileStudyTreeConfig) -> t.Tuple[CommandOutput, t.Dict[str, t.Any]]: + index = next(i for i, bc in enumerate(study_data.bindings) if bc.id == self.id) + existing_constraint = study_data.bindings[index] + areas_set = existing_constraint.areas + clusters_set = existing_constraint.clusters + if self.coeffs: + areas_set = set() + clusters_set = set() + for j in self.coeffs.keys(): + if "%" in j: + areas_set |= set(j.split("%")) + elif "." in j: + clusters_set.add(j) + areas_set.add(j.split(".")[0]) + group = self.group or existing_constraint.group + operator = self.operator or existing_constraint.operator + time_step = self.time_step or existing_constraint.time_step + new_constraint = BindingConstraintDTO( + id=self.id, + group=group, + areas=areas_set, + clusters=clusters_set, + operator=operator, + time_step=time_step, + ) + study_data.bindings[index] = new_constraint return CommandOutput(status=True), {} def _find_binding_config(self, binding_constraints: t.Mapping[str, JSON]) -> t.Optional[t.Tuple[str, JSON]]: @@ -154,9 +167,11 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: # rename matrices if the operator has changed for version >= 870 if self.operator and study_data.config.version >= 870: existing_operator = BindingConstraintOperator(actual_cfg.get("operator")) - new_operator = BindingConstraintOperator(self.operator) + new_operator = self.operator _update_matrices_names(study_data, self.id, existing_operator, new_operator) + self._apply_config(study_data.config) + updated_matrices = [ term for term in [m.value for m in TermMatrices] if hasattr(self, term) and getattr(self, term) ] @@ -167,14 +182,14 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: ) study_version = study_data.config.version - props = create_binding_constraint_config(study_version, **self.dict()) - obj = json.loads(props.json(by_alias=True, exclude_unset=True)) + props = create_binding_constraint_config(study_version, **self.model_dump()) + obj = props.model_dump(mode="json", by_alias=True, exclude_unset=True) updated_cfg = binding_constraints[index] updated_cfg.update(obj) - excluded_fields = set(ICommand.__fields__) | {"id"} - updated_properties = self.dict(exclude=excluded_fields, exclude_none=True) + excluded_fields = set(ICommand.model_fields) | {"id"} + updated_properties = self.model_dump(exclude=excluded_fields, exclude_none=True) # This 2nd check is here to remove the last term. if self.coeffs or updated_properties == {"coeffs": {}}: # Remove terms which IDs contain a "%" or a "." in their name @@ -187,8 +202,8 @@ def to_dto(self) -> CommandDTO: matrices = ["values"] + [m.value for m in TermMatrices] matrix_service = self.command_context.matrix_service - excluded_fields = frozenset(ICommand.__fields__) - json_command = json.loads(self.json(exclude=excluded_fields, exclude_none=True)) + excluded_fields = set(ICommand.model_fields) + json_command = self.model_dump(mode="json", exclude=excluded_fields, exclude_none=True) for key in json_command: if key in matrices: json_command[key] = matrix_service.get_matrix_id(json_command[key]) diff --git a/antarest/study/storage/variantstudy/model/command/update_comments.py b/antarest/study/storage/variantstudy/model/command/update_comments.py index 028cbc5060..5a3d57a670 100644 --- a/antarest/study/storage/variantstudy/model/command/update_comments.py +++ b/antarest/study/storage/variantstudy/model/command/update_comments.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Dict, List, Tuple from antarest.core.model import JSON @@ -16,8 +28,8 @@ class UpdateComments(ICommand): # Overloaded metadata # =================== - command_name = CommandName.UPDATE_COMMENTS - version = 1 + command_name: CommandName = CommandName.UPDATE_COMMENTS + version: int = 1 # Command parameters # ================== diff --git a/antarest/study/storage/variantstudy/model/command/update_config.py b/antarest/study/storage/variantstudy/model/command/update_config.py index b19444f6ae..067b0ecba1 100644 --- a/antarest/study/storage/variantstudy/model/command/update_config.py +++ b/antarest/study/storage/variantstudy/model/command/update_config.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import typing_extensions as te @@ -32,8 +44,8 @@ class UpdateConfig(ICommand): # Overloaded metadata # =================== - command_name = CommandName.UPDATE_CONFIG - version = 1 + command_name: CommandName = CommandName.UPDATE_CONFIG + version: int = 1 # Command parameters # ================== diff --git a/antarest/study/storage/variantstudy/model/command/update_district.py b/antarest/study/storage/variantstudy/model/command/update_district.py index 1a14e37acd..e0d63dfafd 100644 --- a/antarest/study/storage/variantstudy/model/command/update_district.py +++ b/antarest/study/storage/variantstudy/model/command/update_district.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Dict, List, Optional, Tuple from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig @@ -16,17 +28,17 @@ class UpdateDistrict(ICommand): # Overloaded metadata # =================== - command_name = CommandName.UPDATE_DISTRICT - version = 1 + command_name: CommandName = CommandName.UPDATE_DISTRICT + version: int = 1 # Command parameters # ================== id: str - base_filter: Optional[DistrictBaseFilter] - filter_items: Optional[List[str]] - output: Optional[bool] - comments: Optional[str] + base_filter: Optional[DistrictBaseFilter] = None + filter_items: Optional[List[str]] = None + output: Optional[bool] = None + comments: Optional[str] = None def _apply_config(self, study_data: FileStudyTreeConfig) -> Tuple[CommandOutput, Dict[str, Any]]: base_set = study_data.sets[self.id] diff --git a/antarest/study/storage/variantstudy/model/command/update_playlist.py b/antarest/study/storage/variantstudy/model/command/update_playlist.py index c70dfebbb5..52f6f70c5c 100644 --- a/antarest/study/storage/variantstudy/model/command/update_playlist.py +++ b/antarest/study/storage/variantstudy/model/command/update_playlist.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Dict, List, Optional, Tuple from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig @@ -16,8 +28,8 @@ class UpdatePlaylist(ICommand): # Overloaded metadata # =================== - command_name = CommandName.UPDATE_PLAYLIST - version = 1 + command_name: CommandName = CommandName.UPDATE_PLAYLIST + version: int = 1 # Command parameters # ================== diff --git a/antarest/study/storage/variantstudy/model/command/update_raw_file.py b/antarest/study/storage/variantstudy/model/command/update_raw_file.py index 3e7b3b8759..1a3414f90b 100644 --- a/antarest/study/storage/variantstudy/model/command/update_raw_file.py +++ b/antarest/study/storage/variantstudy/model/command/update_raw_file.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import base64 from typing import Any, Dict, List, Tuple @@ -17,8 +29,8 @@ class UpdateRawFile(ICommand): # Overloaded metadata # =================== - command_name = CommandName.UPDATE_FILE - version = 1 + command_name: CommandName = CommandName.UPDATE_FILE + version: int = 1 # Command parameters # ================== diff --git a/antarest/study/storage/variantstudy/model/command/update_scenario_builder.py b/antarest/study/storage/variantstudy/model/command/update_scenario_builder.py index ff8e1311ac..86a127f776 100644 --- a/antarest/study/storage/variantstudy/model/command/update_scenario_builder.py +++ b/antarest/study/storage/variantstudy/model/command/update_scenario_builder.py @@ -1,8 +1,20 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import numpy as np -from requests.structures import CaseInsensitiveDict +from antarest.core.requests import CaseInsensitiveDict from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.variantstudy.model.command.common import CommandName, CommandOutput @@ -33,13 +45,13 @@ class UpdateScenarioBuilder(ICommand): # Overloaded metadata # =================== - command_name = CommandName.UPDATE_SCENARIO_BUILDER - version = 1 + command_name: CommandName = CommandName.UPDATE_SCENARIO_BUILDER + version: int = 1 # Command parameters # ================== - data: t.Dict[str, t.Any] + data: t.Union[t.Dict[str, t.Any], t.Mapping[str, t.Any], t.MutableMapping[str, t.Any]] def _apply(self, study_data: FileStudy) -> CommandOutput: """ diff --git a/antarest/study/storage/variantstudy/model/command_context.py b/antarest/study/storage/variantstudy/model/command_context.py index a361d40959..5996e63528 100644 --- a/antarest/study/storage/variantstudy/model/command_context.py +++ b/antarest/study/storage/variantstudy/model/command_context.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pydantic import BaseModel from antarest.matrixstore.service import ISimpleMatrixService @@ -12,4 +24,3 @@ class CommandContext(BaseModel): class Config: arbitrary_types_allowed = True - copy_on_model_validation = False diff --git a/antarest/study/storage/variantstudy/model/dbmodel.py b/antarest/study/storage/variantstudy/model/dbmodel.py index d9a7e5fc55..421caf87d7 100644 --- a/antarest/study/storage/variantstudy/model/dbmodel.py +++ b/antarest/study/storage/variantstudy/model/dbmodel.py @@ -1,5 +1,16 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime -import json import typing as t import uuid from pathlib import Path @@ -8,6 +19,7 @@ from sqlalchemy.orm import relationship # type: ignore from antarest.core.persistence import Base +from antarest.core.serialization import from_json from antarest.study.model import Study from antarest.study.storage.variantstudy.model.model import CommandDTO @@ -57,7 +69,7 @@ class CommandBlock(Base): # type: ignore def to_dto(self) -> CommandDTO: # Database may lack a version number, defaulting to 1 if so. version = self.version or 1 - return CommandDTO(id=self.id, action=self.command, args=json.loads(self.args), version=version) + return CommandDTO(id=self.id, action=self.command, args=from_json(self.args), version=version) def __str__(self) -> str: return ( diff --git a/antarest/study/storage/variantstudy/model/interfaces.py b/antarest/study/storage/variantstudy/model/interfaces.py index 31b14fabd7..cfe392a024 100644 --- a/antarest/study/storage/variantstudy/model/interfaces.py +++ b/antarest/study/storage/variantstudy/model/interfaces.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import abc from abc import abstractmethod from typing import List, Optional, Tuple diff --git a/antarest/study/storage/variantstudy/model/model.py b/antarest/study/storage/variantstudy/model/model.py index e170bf4383..0be3c75353 100644 --- a/antarest/study/storage/variantstudy/model/model.py +++ b/antarest/study/storage/variantstudy/model/model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import uuid @@ -57,7 +69,7 @@ class CommandDTO(BaseModel): version: The version of the command. """ - id: t.Optional[str] + id: t.Optional[str] = None action: str args: t.Union[t.MutableSequence[JSON], JSON] version: int = 1 diff --git a/antarest/study/storage/variantstudy/repository.py b/antarest/study/storage/variantstudy/repository.py index 3f5ca51fdf..fc4fcc3809 100644 --- a/antarest/study/storage/variantstudy/repository.py +++ b/antarest/study/storage/variantstudy/repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from sqlalchemy.orm import Session, joinedload # type: ignore diff --git a/antarest/study/storage/variantstudy/snapshot_generator.py b/antarest/study/storage/variantstudy/snapshot_generator.py index ee4532349f..086c6d3952 100644 --- a/antarest/study/storage/variantstudy/snapshot_generator.py +++ b/antarest/study/storage/variantstudy/snapshot_generator.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ This module dedicated to variant snapshot generation. """ @@ -121,7 +133,7 @@ def generate_snapshot( else: try: - notifier(results.json()) + notifier(results.model_dump_json()) except Exception as exc: # This exception is ignored, because it is not critical. logger.warning(f"Error while sending notification: {exc}", exc_info=True) @@ -191,7 +203,7 @@ def _read_additional_data(self, file_study: FileStudy) -> StudyAdditionalData: horizon = file_study.tree.get(url=["settings", "generaldata", "general", "horizon"]) author = file_study.tree.get(url=["study", "antares", "author"]) patch = self.patch_service.get_from_filestudy(file_study) - study_additional_data = StudyAdditionalData(horizon=horizon, author=author, patch=patch.json()) + study_additional_data = StudyAdditionalData(horizon=horizon, author=author, patch=patch.model_dump_json()) return study_additional_data def _update_cache(self, file_study: FileStudy) -> None: @@ -199,7 +211,7 @@ def _update_cache(self, file_study: FileStudy) -> None: self.cache.invalidate(f"{CacheConstants.RAW_STUDY}/{file_study.config.study_id}") self.cache.put( f"{CacheConstants.STUDY_FACTORY}/{file_study.config.study_id}", - FileStudyTreeConfigDTO.from_build_config(file_study.config).dict(), + FileStudyTreeConfigDTO.from_build_config(file_study.config).model_dump(), ) diff --git a/antarest/study/storage/variantstudy/variant_command_extractor.py b/antarest/study/storage/variantstudy/variant_command_extractor.py index bd052a6c0a..76df6653c4 100644 --- a/antarest/study/storage/variantstudy/variant_command_extractor.py +++ b/antarest/study/storage/variantstudy/variant_command_extractor.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import List, Tuple diff --git a/antarest/study/storage/variantstudy/variant_command_generator.py b/antarest/study/storage/variantstudy/variant_command_generator.py index 7e56f370ec..de4bd60c0f 100644 --- a/antarest/study/storage/variantstudy/variant_command_generator.py +++ b/antarest/study/storage/variantstudy/variant_command_generator.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import shutil import uuid diff --git a/antarest/study/storage/variantstudy/variant_study_service.py b/antarest/study/storage/variantstudy/variant_study_service.py index a0c03a8457..1e26a20c8a 100644 --- a/antarest/study/storage/variantstudy/variant_study_service.py +++ b/antarest/study/storage/variantstudy/variant_study_service.py @@ -1,5 +1,16 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import concurrent.futures -import json import logging import re import shutil @@ -31,6 +42,7 @@ from antarest.core.jwt import DEFAULT_ADMIN_USER from antarest.core.model import JSON, PermissionInfo, PublicMode, StudyPermissionType from antarest.core.requests import RequestParameters, UserHasNotPermissionError +from antarest.core.serialization import to_json_string from antarest.core.tasks.model import CustomTaskEventMessages, TaskDTO, TaskResult, TaskType from antarest.core.tasks.service import DEFAULT_AWAIT_MAX_TIMEOUT, ITaskService, TaskUpdateNotifier, noop_notifier from antarest.core.utils.utils import assert_this, suppress_exception @@ -176,7 +188,10 @@ def append_commands( # noinspection PyArgumentList new_commands = [ CommandBlock( - command=command.action, args=json.dumps(command.args), index=(first_index + i), version=command.version + command=command.action, + args=to_json_string(command.args), + index=(first_index + i), + version=command.version, ) for i, command in enumerate(validated_commands) ] @@ -211,7 +226,7 @@ def replace_commands( validated_commands = transform_command_to_dto(command_objs, commands) # noinspection PyArgumentList study.commands = [ - CommandBlock(command=command.action, args=json.dumps(command.args), index=i, version=command.version) + CommandBlock(command=command.action, args=to_json_string(command.args), index=i, version=command.version) for i, command in enumerate(validated_commands) ] self.invalidate_cache(study, invalidate_self_snapshot=True) @@ -302,7 +317,7 @@ def update_command( index = [command.id for command in study.commands].index(command_id) if index >= 0: study.commands[index].command = validated_commands[0].action - study.commands[index].args = json.dumps(validated_commands[0].args) + study.commands[index].args = to_json_string(validated_commands[0].args) self.invalidate_cache(study, invalidate_self_snapshot=True) def export_commands_matrices(self, study_id: str, params: RequestParameters) -> FileDownloadTaskDTO: @@ -482,7 +497,7 @@ def get( Returns: study data formatted in json """ - self._safe_generation(metadata, timeout=60) + self._safe_generation(metadata, timeout=600) self.repository.refresh(metadata) return super().get( metadata=metadata, @@ -613,7 +628,7 @@ def callback(notifier: TaskUpdateNotifier) -> TaskResult: message=f"{study_id} generated successfully" if generate_result.success else f"{study_id} not generated", - return_value=generate_result.json(), + return_value=generate_result.model_dump_json(), ) metadata.generation_task = self.task_service.add_task( @@ -704,7 +719,7 @@ def notify(command_index: int, command_result: bool, command_message: str) -> No success=command_result, message=command_message, ) - notifier(command_result_obj.json()) + notifier(command_result_obj.model_dump_json()) self.event_bus.push( Event( type=EventType.STUDY_VARIANT_GENERATION_COMMAND_RESULT, @@ -924,7 +939,7 @@ def get_study_sim_result(self, study: VariantStudy) -> t.List[StudySimResultDTO] study: study Returns: study output data """ - self._safe_generation(study, timeout=60) + self._safe_generation(study, timeout=600) return super().get_study_sim_result(study=study) def set_reference_output(self, metadata: VariantStudy, output_id: str, status: bool) -> None: diff --git a/antarest/study/web/__init__.py b/antarest/study/web/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/study/web/__init__.py +++ b/antarest/study/web/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/study/web/raw_studies_blueprint.py b/antarest/study/web/raw_studies_blueprint.py index 93c2f018dc..c76bce3e77 100644 --- a/antarest/study/web/raw_studies_blueprint.py +++ b/antarest/study/web/raw_studies_blueprint.py @@ -1,7 +1,18 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import collections import http import io -import json import logging import typing as t from pathlib import Path, PurePosixPath @@ -14,11 +25,17 @@ from antarest.core.jwt import JWTUser from antarest.core.model import SUB_JSON from antarest.core.requests import RequestParameters +from antarest.core.serialization import from_json, to_json from antarest.core.swagger import get_path_examples from antarest.core.utils.utils import sanitize_string, sanitize_uuid from antarest.core.utils.web import APITag from antarest.login.auth import Auth -from antarest.study.business.aggregator_management import AreasQueryFile, LinksQueryFile +from antarest.study.business.aggregator_management import ( + MCAllAreasQueryFile, + MCAllLinksQueryFile, + MCIndAreasQueryFile, + MCIndLinksQueryFile, +) from antarest.study.service import StudyService from antarest.study.storage.df_download import TableExportFormat, export_file from antarest.study.storage.rawstudy.model.filesystem.matrix.matrix import MatrixFrequency @@ -131,7 +148,7 @@ def get_study( # Use `JSONResponse` to ensure to return a valid JSON response # that checks `NaN` and `Infinity` values. try: - output = json.loads(output) + output = from_json(output) return JSONResponse(content=output) except ValueError as exc: raise HTTPException( @@ -165,24 +182,18 @@ def get_study( # even though they are not standard JSON values because they are supported in JavaScript. # Additionally, we cannot use `orjson` because, despite its superior performance, it converts # `NaN` and other values to `null`, even when using a custom encoder. - json_response = json.dumps( - output, - ensure_ascii=False, - allow_nan=True, - indent=None, - separators=(",", ":"), - ).encode("utf-8") + json_response = to_json(output) return Response(content=json_response, media_type="application/json") @bp.get( - "/studies/{uuid}/areas/aggregate/{output_id}", + "/studies/{uuid}/areas/aggregate/mc-ind/{output_id}", tags=[APITag.study_raw_data], - summary="Retrieve Aggregated Areas Raw Data from Study Output", + summary="Retrieve Aggregated Areas Raw Data from Study Economy MCs individual Outputs", ) def aggregate_areas_raw_data( uuid: str, output_id: str, - query_file: AreasQueryFile, + query_file: MCIndAreasQueryFile, frequency: MatrixFrequency, mc_years: str = "", areas_ids: str = "", @@ -195,13 +206,14 @@ def aggregate_areas_raw_data( Create an aggregation of areas raw data Parameters: + - `uuid`: study ID - `output_id`: the output ID aka the simulation ID - `query_file`: "values", "details", "details-STstorage", "details-res" - `frequency`: "hourly", "daily", "weekly", "monthly", "annual" - `mc_years`: which Monte Carlo years to be selected. If empty, all are selected (comma separated) - `areas_ids`: which areas to be selected. If empty, all are selected (comma separated) - - `columns_names`: which columns to be selected. If empty, all are selected (comma separated) + - `columns_names`: names or regexes (if `query_file` is of type `details`) to select columns (comma separated) - `export_format`: Returned file format (csv by default). Returns: @@ -223,10 +235,10 @@ def aggregate_areas_raw_data( output_id=output_id, query_file=query_file, frequency=frequency, - mc_years=[int(mc_year) for mc_year in _split_comma_separated_values(mc_years)], columns_names=_split_comma_separated_values(columns_names), ids_to_consider=_split_comma_separated_values(areas_ids), params=parameters, + mc_years=[int(mc_year) for mc_year in _split_comma_separated_values(mc_years)], ) download_name = f"aggregated_output_{uuid}_{output_id}{export_format.suffix}" @@ -244,14 +256,14 @@ def aggregate_areas_raw_data( ) @bp.get( - "/studies/{uuid}/links/aggregate/{output_id}", + "/studies/{uuid}/links/aggregate/mc-ind/{output_id}", tags=[APITag.study_raw_data], - summary="Retrieve Aggregated Links Raw Data from Study Output", + summary="Retrieve Aggregated Links Raw Data from Study Economy MCs individual Outputs", ) def aggregate_links_raw_data( uuid: str, output_id: str, - query_file: LinksQueryFile, + query_file: MCIndLinksQueryFile, frequency: MatrixFrequency, mc_years: str = "", links_ids: str = "", @@ -263,13 +275,14 @@ def aggregate_links_raw_data( Create an aggregation of links raw data Parameters: + - `uuid`: study ID - `output_id`: the output ID aka the simulation ID - `query_file`: "values" (currently the only available option) - `frequency`: "hourly", "daily", "weekly", "monthly", "annual" - `mc_years`: which Monte Carlo years to be selected. If empty, all are selected (comma separated) - `links_ids`: which links to be selected (ex: "be - fr"). If empty, all are selected (comma separated) - - `columns_names`: which columns to be selected. If empty, all are selected (comma separated) + - `columns_names`: names or regexes (if `query_file` is of type `details`) to select columns (comma separated) - `export_format`: Returned file format (csv by default). Returns: @@ -291,7 +304,140 @@ def aggregate_links_raw_data( output_id=output_id, query_file=query_file, frequency=frequency, + columns_names=_split_comma_separated_values(columns_names), + ids_to_consider=_split_comma_separated_values(links_ids), + params=parameters, mc_years=[int(mc_year) for mc_year in _split_comma_separated_values(mc_years)], + ) + + download_name = f"aggregated_output_{uuid}_{output_id}{export_format.suffix}" + download_log = f"Exporting aggregated output data for study '{uuid}' as {export_format} file" + + return export_file( + df_matrix, + study_service.file_transfer_manager, + export_format, + True, + True, + download_name, + download_log, + current_user, + ) + + @bp.get( + "/studies/{uuid}/areas/aggregate/mc-all/{output_id}", + tags=[APITag.study_raw_data], + summary="Retrieve Aggregated Areas Raw Data from Study Economy MCs All Outputs", + ) + def aggregate_areas_raw_data__all( + uuid: str, + output_id: str, + query_file: MCAllAreasQueryFile, + frequency: MatrixFrequency, + areas_ids: str = "", + columns_names: str = "", + export_format: TableExportFormat = DEFAULT_EXPORT_FORMAT, # type: ignore + current_user: JWTUser = Depends(auth.get_current_user), + ) -> FileResponse: + # noinspection SpellCheckingInspection + """ + Create an aggregation of areas raw data in mc-all + + Parameters: + + - `uuid`: study ID + - `output_id`: the output ID aka the simulation ID + - `query_file`: "values", "details", "details-STstorage", "details-res", "id" + - `frequency`: "hourly", "daily", "weekly", "monthly", "annual" + - `areas_ids`: which areas to be selected. If empty, all are selected (comma separated) + - `columns_names`: names or regexes (if `query_file` is of type `details`) to select columns (comma separated) + - `export_format`: Returned file format (csv by default). + + Returns: + FileResponse that corresponds to a dataframe with the aggregated areas raw data + """ + logger.info( + f"Aggregating areas output data for study {uuid}, output {output_id}," + f"from files '{query_file}-{frequency}.txt'", + extra={"user": current_user.id}, + ) + + # Avoid vulnerabilities by sanitizing the `uuid` and `output_id` parameters + uuid = sanitize_uuid(uuid) + output_id = sanitize_string(output_id) + + parameters = RequestParameters(user=current_user) + df_matrix = study_service.aggregate_output_data( + uuid, + output_id=output_id, + query_file=query_file, + frequency=frequency, + columns_names=_split_comma_separated_values(columns_names), + ids_to_consider=_split_comma_separated_values(areas_ids), + params=parameters, + ) + + download_name = f"aggregated_output_{uuid}_{output_id}{export_format.suffix}" + download_log = f"Exporting aggregated output data for study '{uuid}' as {export_format} file" + + return export_file( + df_matrix, + study_service.file_transfer_manager, + export_format, + True, + True, + download_name, + download_log, + current_user, + ) + + @bp.get( + "/studies/{uuid}/links/aggregate/mc-all/{output_id}", + tags=[APITag.study_raw_data], + summary="Retrieve Aggregated Links Raw Data from Study Economy MC-All Outputs", + ) + def aggregate_links_raw_data__all( + uuid: str, + output_id: str, + query_file: MCAllLinksQueryFile, + frequency: MatrixFrequency, + links_ids: str = "", + columns_names: str = "", + export_format: TableExportFormat = DEFAULT_EXPORT_FORMAT, # type: ignore + current_user: JWTUser = Depends(auth.get_current_user), + ) -> FileResponse: + """ + Create an aggregation of links in mc-all + + Parameters: + + - `uuid`: study ID + - `output_id`: the output ID aka the simulation ID + - `query_file`: "values", "id" + - `frequency`: "hourly", "daily", "weekly", "monthly", "annual" + - `links_ids`: which links to be selected (ex: "be - fr"). If empty, all are selected (comma separated) + - `columns_names`: names or regexes (if `query_file` is of type `details`) to select columns (comma separated) + - `export_format`: Returned file format (csv by default). + + Returns: + FileResponse that corresponds to a dataframe with the aggregated links raw data + """ + logger.info( + f"Aggregating links mc-all data for study {uuid}, output {output_id}," + f"from files '{query_file}-{frequency}.txt'", + extra={"user": current_user.id}, + ) + + # Avoid vulnerabilities by sanitizing the `uuid` and `output_id` parameters + uuid = sanitize_uuid(uuid) + output_id = sanitize_string(output_id) + + parameters = RequestParameters(user=current_user) + df_matrix = study_service.aggregate_output_data( + uuid, + output_id=output_id, + query_file=query_file, + frequency=frequency, columns_names=_split_comma_separated_values(columns_names), ids_to_consider=_split_comma_separated_values(links_ids), params=parameters, @@ -329,6 +475,7 @@ def edit_study( > NOTE: use the PUT endpoint to upload a file. Parameters: + - `uuid`: The UUID of the study. - `path`: The path to the data to update. Defaults to "/". - `data`: The formatted data to be posted. Defaults to an empty string. @@ -362,6 +509,7 @@ def replace_study_file( Update raw data for a study by posting a raw file. Parameters: + - `uuid`: The UUID of the study. - `path`: The path to the data to update. Defaults to "/". - `file`: The raw file to be posted (e.g. a CSV file opened in binary mode). @@ -425,6 +573,7 @@ def get_matrix( Download a matrix in a given format. Parameters: + - `uuid`: study ID - `matrix_path`: Relative path of the matrix to download. - `export_format`: Returned file format (csv by default). diff --git a/antarest/study/web/studies_blueprint.py b/antarest/study/web/studies_blueprint.py index 1dbc4810f7..f532ac3051 100644 --- a/antarest/study/web/studies_blueprint.py +++ b/antarest/study/web/studies_blueprint.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import collections import io import logging @@ -715,7 +727,7 @@ def output_download( extra={"user": current_user.id}, ) params = RequestParameters(user=current_user) - accept = request.headers.get("Accept") + accept = request.headers["Accept"] filetype = ExportFormat.from_dto(accept) content = study_service.download_outputs( diff --git a/antarest/study/web/study_data_blueprint.py b/antarest/study/web/study_data_blueprint.py index 43d71400d5..9b1cca0fc5 100644 --- a/antarest/study/web/study_data_blueprint.py +++ b/antarest/study/web/study_data_blueprint.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import enum import logging import typing as t @@ -17,7 +29,7 @@ from antarest.matrixstore.matrix_editor import MatrixEditInstruction from antarest.study.business.adequacy_patch_management import AdequacyPatchFormFields from antarest.study.business.advanced_parameters_management import AdvancedParamsFormFields -from antarest.study.business.allocation_management import AllocationFormFields, AllocationMatrix +from antarest.study.business.allocation_management import AllocationField, AllocationFormFields, AllocationMatrix from antarest.study.business.area_management import AreaCreationDTO, AreaInfoDTO, AreaType, LayerInfoDTO, UpdateAreaUi from antarest.study.business.areas.hydro_management import InflowStructure, ManagementOptionsFormFields from antarest.study.business.areas.properties_management import PropertiesFormFields @@ -48,7 +60,12 @@ ConstraintOutput, ConstraintTerm, ) -from antarest.study.business.correlation_management import CorrelationFormFields, CorrelationManager, CorrelationMatrix +from antarest.study.business.correlation_management import ( + AreaCoefficientItem, + CorrelationFormFields, + CorrelationManager, + CorrelationMatrix, +) from antarest.study.business.district_manager import DistrictCreationDTO, DistrictInfoDTO, DistrictUpdateDTO from antarest.study.business.general_management import GeneralFormFields from antarest.study.business.link_management import LinkInfoDTO @@ -110,7 +127,7 @@ def create_study_data_routes(study_service: StudyService, config: Config) -> API "/studies/{uuid}/areas", tags=[APITag.study_data], summary="Get all areas basic info", - response_model=t.Union[t.List[AreaInfoDTO], t.Dict[str, t.Any]], # type: ignore + response_model=t.Union[t.List[AreaInfoDTO], t.Dict[str, t.Any]], ) def get_areas( uuid: str, @@ -491,7 +508,6 @@ def get_inflow_structure( "/studies/{uuid}/areas/{area_id}/hydro/inflow-structure", tags=[APITag.study_data], summary="Update inflow structure values", - response_model=InflowStructure, ) def update_inflow_structure( uuid: str, @@ -506,7 +522,7 @@ def update_inflow_structure( ) params = RequestParameters(user=current_user) study = study_service.check_study_access(uuid, StudyPermissionType.WRITE, params) - return study_service.hydro_manager.update_inflow_structure(study, area_id, values) + study_service.hydro_manager.update_inflow_structure(study, area_id, values) @bp.put( "/studies/{uuid}/matrix", @@ -1132,7 +1148,7 @@ def get_binding_constraint_list( "/studies/{uuid}/bindingconstraints/{binding_constraint_id}", tags=[APITag.study_data], summary="Get binding constraint", - response_model=ConstraintOutput, # type: ignore + response_model=ConstraintOutput, # TODO: redundant ? ) def get_binding_constraint( uuid: str, @@ -1520,8 +1536,8 @@ def set_allocation_form_fields( ..., example=AllocationFormFields( allocation=[ - {"areaId": "EAST", "coefficient": 1}, - {"areaId": "NORTH", "coefficient": 0.20}, + AllocationField.model_validate({"areaId": "EAST", "coefficient": 1}), + AllocationField.model_validate({"areaId": "NORTH", "coefficient": 0.20}), ] ), ), @@ -1553,8 +1569,8 @@ def set_allocation_form_fields( def get_correlation_matrix( uuid: str, columns: t.Optional[str] = Query( - None, - examples={ + default=None, + openapi_examples={ "all areas": { "description": "get the correlation matrix for all areas (by default)", "value": "", @@ -1686,8 +1702,8 @@ def set_correlation_form_fields( ..., example=CorrelationFormFields( correlation=[ - {"areaId": "east", "coefficient": 80}, - {"areaId": "north", "coefficient": 20}, + AreaCoefficientItem.model_validate({"areaId": "east", "coefficient": 80}), + AreaCoefficientItem.model_validate({"areaId": "north", "coefficient": 20}), ] ), ), @@ -1759,7 +1775,13 @@ def set_advanced_parameters( def generate_timeseries( uuid: str, current_user: JWTUser = Depends(auth.get_current_user), - ) -> t.Any: + ) -> str: + """ + Generates time-series for thermal clusters and put them inside input data. + + Args: + - `uuid`: The UUID of the study. + """ logger.info( f"Generating timeseries for study {uuid}", extra={"user": current_user.id}, diff --git a/antarest/study/web/variant_blueprint.py b/antarest/study/web/variant_blueprint.py index 060ff167e9..1c3c092a78 100644 --- a/antarest/study/web/variant_blueprint.py +++ b/antarest/study/web/variant_blueprint.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from typing import List, Optional, Union @@ -95,12 +107,7 @@ def create_variant( "/studies/{uuid}/variants", tags=[APITag.study_variant_management], summary="Get children variants", - responses={ - 200: { - "description": "The list of children study variant", - "model": List[StudyMetadataDTO], - } - }, + response_model=None, # To cope with recursive models issues ) def get_variants( uuid: str, diff --git a/antarest/study/web/watcher_blueprint.py b/antarest/study/web/watcher_blueprint.py index f5c8c6b922..a98ccfe0c5 100644 --- a/antarest/study/web/watcher_blueprint.py +++ b/antarest/study/web/watcher_blueprint.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from http import HTTPStatus from http.client import HTTPException diff --git a/antarest/study/web/xpansion_studies_blueprint.py b/antarest/study/web/xpansion_studies_blueprint.py index 1b46af1a84..775505baad 100644 --- a/antarest/study/web/xpansion_studies_blueprint.py +++ b/antarest/study/web/xpansion_studies_blueprint.py @@ -1,4 +1,15 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import typing as t @@ -9,6 +20,7 @@ from antarest.core.jwt import JWTUser from antarest.core.model import JSON, StudyPermissionType from antarest.core.requests import RequestParameters +from antarest.core.serialization import to_json from antarest.core.utils.web import APITag from antarest.login.auth import Auth from antarest.study.business.xpansion_management import ( @@ -127,7 +139,7 @@ def add_candidate( current_user: JWTUser = Depends(auth.get_current_user), ) -> XpansionCandidateDTO: logger.info( - f"Adding new candidate {xpansion_candidate_dto.dict(by_alias=True)} to study {uuid}", + f"Adding new candidate {xpansion_candidate_dto.model_dump(by_alias=True)} to study {uuid}", extra={"user": current_user.id}, ) params = RequestParameters(user=current_user) @@ -270,13 +282,7 @@ def get_resource_content( except (AttributeError, UnicodeDecodeError): pass - json_response = json.dumps( - output, - ensure_ascii=False, - allow_nan=True, - indent=None, - separators=(",", ":"), - ).encode("utf-8") + json_response = to_json(output) return Response(content=json_response, media_type="application/json") @bp.get( diff --git a/antarest/tools/__init__.py b/antarest/tools/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/tools/__init__.py +++ b/antarest/tools/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/tools/admin.py b/antarest/tools/admin.py index 2b89ffb013..39f15991cd 100644 --- a/antarest/tools/admin.py +++ b/antarest/tools/admin.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from pathlib import Path diff --git a/antarest/tools/admin_lib.py b/antarest/tools/admin_lib.py index 5f64dd3c6f..4a27593b96 100644 --- a/antarest/tools/admin_lib.py +++ b/antarest/tools/admin_lib.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from pathlib import Path diff --git a/antarest/tools/cli.py b/antarest/tools/cli.py index 902eee6d3a..85eef22128 100644 --- a/antarest/tools/cli.py +++ b/antarest/tools/cli.py @@ -1,12 +1,25 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from pathlib import Path from typing import Optional import click +from httpx import Client from antarest.study.model import NEW_DEFAULT_STUDY_VERSION -from antarest.study.storage.study_upgrader import upgrade_study -from antarest.tools.lib import extract_commands, generate_diff, generate_study +from antarest.study.storage.study_upgrader import StudyUpgrader +from antarest.tools.lib import create_http_client, extract_commands, generate_diff, generate_study @click.group(context_settings={"max_content_width": 120}) @@ -31,6 +44,12 @@ def commands() -> None: type=str, help="Authentication token if server needs one", ) +@click.option( + "--no-verify", + is_flag=True, + default=False, + help="Disables SSL certificate verification", +) @click.option( "--output", "-o", @@ -70,6 +89,7 @@ def cli_apply_script( output: Optional[str], host: Optional[str], auth_token: Optional[str], + no_verify: bool, version: str, ) -> None: """Apply a variant script onto an AntaresWeb study variant""" @@ -83,7 +103,10 @@ def cli_apply_script( print("--study_id must be set") exit(1) - res = generate_study(Path(input), study_id, output, host, auth_token, version) + client = None + if host: + client = create_http_client(verify=not no_verify, auth_token=auth_token) + res = generate_study(Path(input), study_id, output, host, client, version) print(res) @@ -164,7 +187,8 @@ def cli_upgrade_study(study_path: Path, target_version: str) -> None: TARGET_VERSION is the version you want your study to be at (example 8.4.0 or 840) """ - upgrade_study(Path(study_path), target_version.replace(".", "")) + study_upgrader = StudyUpgrader(study_path, target_version.replace(".", "")) + study_upgrader.upgrade() if __name__ == "__main__": diff --git a/antarest/tools/lib.py b/antarest/tools/lib.py index 472cf9e8e5..3c55bf3506 100644 --- a/antarest/tools/lib.py +++ b/antarest/tools/lib.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json import logging import os @@ -7,22 +19,12 @@ from typing import List, Optional, Set, Union, cast from zipfile import ZipFile -import numpy as np import pandas as pd - -try: - # The HTTPX equivalent of `requests.Session` is `httpx.Client`. - import httpx as requests - from httpx import Client as Session -except ImportError: - # noinspection PyUnresolvedReferences, PyPackageRequirements - import requests - - # noinspection PyUnresolvedReferences,PyPackageRequirements - from requests import Session +from httpx import Client from antarest.core.cache.business.local_chache import LocalCache from antarest.core.config import CacheConfig +from antarest.core.serialization import from_json, to_json_string from antarest.core.tasks.model import TaskDTO from antarest.core.utils.utils import StopWatch, get_local_path from antarest.matrixstore.repository import MatrixContentRepository @@ -50,34 +52,28 @@ def apply_commands(self, commands: List[CommandDTO], matrices_dir: Path) -> Gene raise NotImplementedError() +def set_auth_token(client: Client, auth_token: Optional[str] = None) -> Client: + if auth_token is not None: + client.headers.update({"Authorization": f"Bearer {auth_token}"}) + return client + + +def create_http_client(verify: bool, auth_token: Optional[str] = None) -> Client: + client = Client(verify=verify) + set_auth_token(client, auth_token) + return client + + class RemoteVariantGenerator(IVariantGenerator): def __init__( self, study_id: str, - host: Optional[str] = None, - token: Optional[str] = None, - session: Optional[Session] = None, + host: str, + session: Client, ): self.study_id = study_id - - # todo: find the correct way to handle certificates. - # By default, Requests/Httpx verifies SSL certificates for HTTPS requests. - # When verify is set to `False`, requests will accept any TLS certificate presented - # by the server,and will ignore hostname mismatches and/or expired certificates, - # which will make your application vulnerable to man-in-the-middle (MitM) attacks. - # Setting verify to False may be useful during local development or testing. - if Session.__name__ == "Client": - # noinspection PyArgumentList - self.session = session or Session(verify=False) - else: - self.session = session or Session() - self.session.verify = False - + self.session = session self.host = host - if session is None and host is None: - raise ValueError("Missing either session or host") - if token is not None: - self.session.headers.update({"Authorization": f"Bearer {token}"}) def apply_commands( self, @@ -105,7 +101,7 @@ def apply_commands( res = self.session.post( self.build_url(f"/v1/studies/{self.study_id}/commands"), - json=[command.dict() for command in commands], + json=[command.model_dump() for command in commands], ) res.raise_for_status() stopwatch.log_elapsed(lambda x: logger.info(f"Command upload done in {x}s")) @@ -124,7 +120,7 @@ def apply_commands( # This should not happen, but if it does, we return a failed result return GenerationResultInfoDTO(success=False, details=[]) - info = json.loads(task_result.result.return_value) + info = from_json(task_result.result.return_value) return GenerationResultInfoDTO(**info) def build_url(self, url: str) -> str: @@ -214,10 +210,7 @@ def extract_commands(study_path: Path, commands_output_dir: Path) -> None: command_list = extractor.extract(study) (commands_output_dir / COMMAND_FILE).write_text( - json.dumps( - [command.dict(exclude={"id"}) for command in command_list], - indent=2, - ) + to_json_string([command.model_dump(exclude={"id"}) for command in command_list], indent=2) ) @@ -306,10 +299,7 @@ def generate_diff( ) (output_dir / COMMAND_FILE).write_text( - json.dumps( - [command.to_dto().dict(exclude={"id"}) for command in diff_commands], - indent=2, - ) + to_json_string([command.to_dto().model_dump(exclude={"id"}) for command in diff_commands], indent=2) ) needed_matrices: Set[str] = set() @@ -339,7 +329,7 @@ def generate_study( study_id: Optional[str], output: Optional[str] = None, host: Optional[str] = None, - token: Optional[str] = None, + session: Optional[Client] = None, study_version: str = NEW_DEFAULT_STUDY_VERSION, ) -> GenerationResultInfoDTO: """ @@ -353,7 +343,7 @@ def generate_study( If `study_id` and `host` are not provided, this must be specified. host: The URL of the Antares server to use for generating the new study. If `study_id` is not provided, this is ignored. - token: The authentication token to use when connecting to the Antares server. + session: The session to use when connecting to the Antares server. If `host` is not provided, this is ignored. study_version: The target version of the generated study. @@ -361,8 +351,9 @@ def generate_study( GenerationResultInfoDTO: A data transfer object containing information about the generation result. """ generator: Union[RemoteVariantGenerator, LocalVariantGenerator] - if study_id is not None and host is not None: - generator = RemoteVariantGenerator(study_id, host, token) + + if study_id is not None and host is not None and session is not None: + generator = RemoteVariantGenerator(study_id, host, session) elif output is None: raise TypeError("'output' must be set") else: diff --git a/antarest/worker/__init__.py b/antarest/worker/__init__.py index e69de29bb2..058c6b221a 100644 --- a/antarest/worker/__init__.py +++ b/antarest/worker/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/antarest/worker/archive_worker.py b/antarest/worker/archive_worker.py index 0ef7bedc31..4fbc6a0631 100644 --- a/antarest/worker/archive_worker.py +++ b/antarest/worker/archive_worker.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging from pathlib import Path @@ -46,10 +58,10 @@ def __init__( ) def _execute_task(self, task_info: WorkerTaskCommand) -> TaskResult: - logger.info(f"Executing task {task_info.json()}") + logger.info(f"Executing task {task_info.model_dump_json()}") try: # sourcery skip: extract-method - archive_args = ArchiveTaskArgs.parse_obj(task_info.task_args) + archive_args = ArchiveTaskArgs.model_validate(task_info.task_args) dest = self.translate_path(Path(archive_args.dest)) src = self.translate_path(Path(archive_args.src)) stopwatch = StopWatch() @@ -63,7 +75,7 @@ def _execute_task(self, task_info: WorkerTaskCommand) -> TaskResult: return TaskResult(success=True, message="") except Exception as e: logger.warning( - f"Task {task_info.json()} failed", + f"Task {task_info.model_dump_json()} failed", exc_info=e, ) return TaskResult(success=False, message=str(e)) diff --git a/antarest/worker/archive_worker_service.py b/antarest/worker/archive_worker_service.py index 73106f1fc2..b8e505fa8c 100644 --- a/antarest/worker/archive_worker_service.py +++ b/antarest/worker/archive_worker_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import argparse import logging from pathlib import Path @@ -7,7 +19,7 @@ from antarest.core.config import Config from antarest.core.logging.utils import configure_logger from antarest.core.utils.utils import get_local_path -from antarest.utils import create_archive_worker +from antarest.service_creator import create_archive_worker # use the real module name instead of `__name__` (because `__name__ == "__main__"`) logger = logging.getLogger("antarest.worker.archive_worker_service") diff --git a/antarest/worker/simulator_worker.py b/antarest/worker/simulator_worker.py index d37a8825f5..583f340e7a 100644 --- a/antarest/worker/simulator_worker.py +++ b/antarest/worker/simulator_worker.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import logging import subprocess @@ -69,7 +81,7 @@ def execute_kirshoff_constraint_generation_task(self, task_info: WorkerTaskComma def execute_timeseries_generation_task(self, task_info: WorkerTaskCommand) -> TaskResult: result = TaskResult(success=True, message="", return_value="") - task = GenerateTimeseriesTaskArgs.parse_obj(task_info.task_args) + task = GenerateTimeseriesTaskArgs.model_validate(task_info.task_args) binary = ( self.binaries[task.study_version] if task.study_version in self.binaries diff --git a/antarest/worker/worker.py b/antarest/worker/worker.py index d292d7a8b8..7dc2534764 100644 --- a/antarest/worker/worker.py +++ b/antarest/worker/worker.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import time from abc import abstractmethod @@ -100,8 +112,8 @@ def _loop(self) -> None: time.sleep(1) async def _listen_for_tasks(self, event: Event) -> None: - logger.info(f"Accepting new task {event.json()}") - task_info = WorkerTaskCommand.parse_obj(event.payload) + logger.info(f"Accepting new task {event.model_dump_json()}") + task_info = WorkerTaskCommand.model_validate(event.payload) self.event_bus.push( Event( type=EventType.WORKER_TASK_STARTED, @@ -119,7 +131,7 @@ def _safe_execute_task(self, task_info: WorkerTaskCommand) -> TaskResult: return self._execute_task(task_info) except Exception as e: logger.error( - f"Unexpected error occurred when executing task {task_info.json()}", + f"Unexpected error occurred when executing task {task_info.model_dump_json()}", exc_info=e, ) return TaskResult(success=False, message=repr(e)) diff --git a/antarest/wsgi.py b/antarest/wsgi.py index a46965cf93..b39d3a1153 100644 --- a/antarest/wsgi.py +++ b/antarest/wsgi.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os from pathlib import Path diff --git a/docs/install/2-DEPLOY.md b/docs/install/2-DEPLOY.md index 5946e362f9..1136e24410 100644 --- a/docs/install/2-DEPLOY.md +++ b/docs/install/2-DEPLOY.md @@ -80,3 +80,31 @@ You can download the latest version here: - [For Windows](https://github.com/AntaresSimulatorTeam/AntaREST/releases/download/v2.5.0/AntaresWeb-windows-latest.zip) - [For Ubuntu](https://github.com/AntaresSimulatorTeam/AntaREST/releases/download/v2.5.0/AntaresWeb-ubuntu-latest.zip) + +The local application contains an installer program that you can use to manage the installation. +This program will keep your local data while updating the functional parts of the server. + +### GUI installer (windows only) + +Double-click on the installer executable and follow the instructions. +In case you already have a local application, choose your current application path +in order to update it. + +### CLI installer (linux only) + +Open a new command prompt or powershell instance. +Run the following command: + +``` +AntaresWebInstaller -t +``` + +where `` is the directory where you want to install the Antares Web Desktop. + +Note that you can specify an existing directory as value of `TARGET_DIR`, in which case the installer will update the +existing installation. + +By default, the installer will generate shortcuts and launch the server at the end of the installation, but you +optionally can decide to deactivate these steps with `--no-shortcut` and `--no-launch`. + +Run ```AntaresWebInstaller --help``` for more options. \ No newline at end of file diff --git a/installer b/installer new file mode 160000 index 0000000000..e7552a8a66 --- /dev/null +++ b/installer @@ -0,0 +1 @@ +Subproject commit e7552a8a66bef72f9e4b8fc6e1b274895f15a180 diff --git a/pyproject.toml b/pyproject.toml index a715fb2753..d8210f8981 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,84 @@ +[build-system] +requires = ["setuptools"] + +[project] +name = "AntaREST" +version = "2.17.5" +authors = [{name="RTE, Antares Web Team", email="andrea.sgattoni@rte-france.com" }] +description="Antares Server" +readme = {file = "README.md", content-type = "text/markdown"} +license = {file = "LICENSE"} +requires-python = ">=3.8" +classifiers=[ + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "License :: Apache License :: 2.0", + "Operating System :: OS Independent", + ] + +[project.urls] +Repository="https://github.com/AntaresSimulatorTeam/api-iso-antares" + +[tool.setuptools] +platforms = [ + "linux-x86_64", + "macosx-10.14-x86_64", + "macosx-10.15-x86_64", + "macosx-11-x86_64", + "macosx-12-x86_64", + "macosx-13-x86_64", + "win-amd64", +] + +[tool.setuptools.packages.find] +where = ["."] +include = ["antarest*"] + +[tool.mypy] +exclude = "antarest/fastapi_jwt_auth/*" +strict = true +files = "antarest" +plugins = "pydantic.mypy" + +[[tool.mypy.overrides]] +module = ["antarest/fastapi_jwt_auth.*"] +follow_imports = "skip" + +[[tool.mypy.overrides]] +module = [ + "antareslauncher.*", + "jsonschema", + "pytest", + "httpx", + "jsonref", + "jsonref", +] +ignore_missing_imports = true + +[[tool.mypy.overrides]] +module = "alembic.*" +no_implicit_reexport = false + + +[tool.pytest.ini_options] +testpaths = ["tests"] +markers = [ + "unit_test", + "integration_test" +] + + [tool.black] target-version = ["py38"] line-length = 120 exclude = "(antares-?launcher/*|alembic/*)" [tool.coverage.run] -omit = ["antarest/tools/cli.py", "antarest/tools/admin.py"] +omit = ["antarest/tools/cli.py", "antarest/tools/admin.py", "antarest/fastapi_jwt_auth/*.py"] +relative_files = true # avoids absolute path issues in CI [tool.isort] profile = "black" diff --git a/requirements-dev.txt b/requirements-dev.txt index e7ff79c736..973973dc76 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,7 +2,7 @@ # Version of Black should match the versions set in `.github/workflows/main.yml` black~=23.7.0 isort~=5.12.0 -mypy~=1.4.1 +mypy~=1.11.1 pyinstaller==5.6.2 pyinstaller-hooks-contrib==2024.6 @@ -11,6 +11,7 @@ pyinstaller-hooks-contrib==2024.6 # of the corresponding implementation libraries used in production (in `requirements.txt`). pandas-stubs~=1.4.0 +types-paramiko~=3.4.0 types-psycopg2~=2.9.4 types-redis~=4.1.2 types-requests~=2.27.1 diff --git a/requirements-test.txt b/requirements-test.txt index 8e408b2677..e72650560c 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,8 +1,11 @@ -r requirements.txt checksumdir~=1.2.0 -pytest~=6.2.5 +pytest~=8.3.0 +pytest-xdist~=3.6.0 pytest-cov~=4.0.0 +pytest-mock~=3.14.0 # In this version DataFrame conversion to Excel is done using 'xlsxwriter' library. # But Excel files reading is done using 'openpyxl' library, during testing only. -openpyxl~=3.1.2 \ No newline at end of file +openpyxl~=3.1.2 +jinja2~=3.1.3 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 5a543c02fc..4659b879ba 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,16 +1,35 @@ Antares-Launcher~=1.3.2 +antares-study-version~=1.0.3 +antares-timeseries-generation~=0.1.5 + +# When you install `fastapi[all]`, you get FastAPI along with additional dependencies: +# - `uvicorn`: A fast ASGI server commonly used to run FastAPI applications. +# - `pydantic`: A data validation library integrated into FastAPI for defining data models and validating input and output of endpoints. +# - `httpx`: A modern HTTP client library for making HTTP requests from your FastAPI application. +# - `starlette`: The underlying ASGI framework used by FastAPI for handling HTTP requests. +# - `uvloop` (on certain systems): A fast event loop based on uvicorn that improves FastAPI application performance. +# - `python-multipart`: A library for handling multipart data in HTTP requests, commonly used for processing file uploads. +# - `watchdog`: A file watching library used by FastAPI's automatic reloading tool to update the application in real-time when files are modified. +# - `email-validator`: A library for email address validation, used for validating email fields in Pydantic models. +# - `python-dotenv`: A library for managing environment variables, commonly used to load application configurations from `.env` files. + +# We prefer to add only the specific libraries we need for our project +# and **manage their versions** for better control and to avoid unnecessary dependencies. +fastapi~=0.110.3 +uvicorn[standard]~=0.30.6 +pydantic~=2.8.2 +httpx~=0.27.0 +python-multipart~=0.0.9 alembic~=1.7.5 asgi-ratelimit[redis]==0.7.0 bcrypt~=3.2.0 click~=8.0.3 contextvars~=2.4 -fastapi-jwt-auth~=0.5.0 -fastapi[all]~=0.73.0 filelock~=3.4.2 gunicorn~=20.1.0 -Jinja2~=3.0.3 jsonref~=0.2 +PyJWT~=2.9.0 MarkupSafe~=2.0.1 numpy~=1.22.1 pandas~=1.4.0 @@ -18,18 +37,13 @@ paramiko~=2.12.0 plyer~=2.0.0 psycopg2-binary==2.9.4 py7zr~=0.20.6 -pydantic~=1.9.0 PyQt5~=5.15.6 python-json-logger~=2.0.7 -python-multipart~=0.0.5 PyYAML~=5.4.1; python_version <= '3.9' PyYAML~=5.3.1; python_version > '3.9' redis~=4.1.2 -requests~=2.27.1 SQLAlchemy~=1.4.46 -starlette~=0.17.1 tables==3.6.1; python_version <= '3.8' tables==3.9.2; python_version > '3.8' -typing_extensions~=4.7.1 -uvicorn[standard]~=0.15.0 -xlsxwriter~=3.2.0 +typing_extensions~=4.12.2 +xlsxwriter~=3.2.0 \ No newline at end of file diff --git a/resources/application.yaml b/resources/application.yaml index 6fbdb31f9f..c962d09015 100644 --- a/resources/application.yaml +++ b/resources/application.yaml @@ -26,7 +26,19 @@ launcher: 700: path/to/700 enable_nb_cores_detection: true -root_path: "api" +# See https://fastapi.tiangolo.com/advanced/behind-a-proxy/ +# root path is used when the API is served behind a proxy which +# adds a prefix for clients. +# It does NOT add any prefix to the URLs which fastapi serve. + +# root_path: "api" + + +# Uncomment to serve the API under /api prefix +# (used in standalone mode to emulate the effect of proxy servers +# used in production deployments). + +# api_prefix: "/api" server: worker_threadpool_size: 12 @@ -36,4 +48,7 @@ server: logging: level: INFO - logfile: ./tmp/antarest.log \ No newline at end of file + logfile: ./tmp/antarest.log + +# True to get sqlalchemy logs +debug: False diff --git a/resources/deploy/config.prod.yaml b/resources/deploy/config.prod.yaml index cf9087a2af..9d8d78d56e 100644 --- a/resources/deploy/config.prod.yaml +++ b/resources/deploy/config.prod.yaml @@ -66,6 +66,10 @@ launcher: debug: false +# See https://fastapi.tiangolo.com/advanced/behind-a-proxy/ +# root path is used when the API is served behind a proxy which +# adds a prefix for clients. +# It does NOT add any prefix to the URLs which fastapi serve. root_path: "api" #tasks: diff --git a/resources/deploy/config.yaml b/resources/deploy/config.yaml index 6f3fdf595f..08831198ce 100644 --- a/resources/deploy/config.yaml +++ b/resources/deploy/config.yaml @@ -46,7 +46,8 @@ launcher: debug: false -root_path: "api" +# Serve the API at /api +api_prefix: "/api" server: worker_threadpool_size: 12 diff --git a/resources/templates/.placeholder b/resources/templates/.placeholder deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/scripts/build-front.sh b/scripts/build-front.sh index 87c2db6a50..15c2e0e60f 100755 --- a/scripts/build-front.sh +++ b/scripts/build-front.sh @@ -11,4 +11,3 @@ npm run build -- --mode=desktop cd .. rm -fr resources/webapp cp -r ./webapp/dist/ resources/webapp -cp ./webapp/dist/index.html resources/templates/ diff --git a/scripts/license_checker_and_adder.py b/scripts/license_checker_and_adder.py new file mode 100755 index 0000000000..31139ae87a --- /dev/null +++ b/scripts/license_checker_and_adder.py @@ -0,0 +1,134 @@ +import os +import re +from pathlib import Path +from typing import List + +import click + +# Use to skip subtrees that have their own licenses (forks) +LICENSE_FILE_PATTERN = re.compile("LICENSE.*") + +BACKEND_LICENSE_HEADER = """# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. +""" + + +front_license_path = Path(__file__).resolve().parent.parent / "webapp" / "license-header.js" +FRONTEND_LICENSE_HEADER = front_license_path.read_text() + + +def is_license_file(filename: str) -> bool: + return LICENSE_FILE_PATTERN.match(filename) is not None + + +def check_file(file_path: Path, action: str, license_as_list: List[str], license_to_save: List[str]) -> bool: + file_content = file_path.read_text().splitlines() + n = len(license_as_list) + if len(file_content) >= n and file_content[:n] == license_as_list: + return True + click.echo(f"{file_path} has no valid header.") + new_lines = [] + if action == "fix": + with open(file_path, "r") as f: # doesn't seem really optimal as I read the file twice. + already_licensed = False + lines = f.readlines() + first_line = lines[0].lower() if len(lines) > 0 else [] + if "copyright" in first_line or "license" in first_line: # assumes license follows this + already_licensed = True + if already_licensed: # I don't really know what to do here + raise ValueError(f"File {file_path} already licensed.") + else: + new_lines = license_to_save + lines + if new_lines: + with open(file_path, "w") as f: + f.writelines(new_lines) + + +def check_dir( + cwd: Path, + dir_path: Path, + action: str, + invalid_files: List[Path], + suffixes: List[str], + license_as_list: List[str], + license_to_save: List[str], +) -> None: + _, dirnames, filenames = next(os.walk(dir_path)) + for f in filenames: + if dir_path != cwd and is_license_file(f): + click.echo(f"Found third party license file, skipping folder: {dir_path / f}") + return + + for f in filenames: + file_path = dir_path / f + + if file_path.suffix not in suffixes: + continue + + if not check_file(file_path, action, license_as_list, license_to_save): + invalid_files.append(file_path) + + for d in dirnames: + check_dir(cwd, dir_path / d, action, invalid_files, suffixes, license_as_list, license_to_save) + + +@click.command("license_checker_and_adder") +@click.option( + "--path", + nargs=1, + required=True, + type=click.Path(exists=True, path_type=Path), + help="Path to check", +) +@click.option( + "--action", + nargs=1, + required=False, + default="check", + type=str, + help="Action to realise. Can either be check or fix", +) +def cli(path: Path, action: str) -> None: + if action not in ["check", "check-strict", "fix"]: + raise ValueError(f"Parameter --action should be 'check', 'check-strict' or 'fix' and was '{action}'") + + invalid_files = [] + cwd = Path.cwd() + # --------- infer which files to check and which license to add + suffixes = [".ts", ".tsx"] + license_header = FRONTEND_LICENSE_HEADER + if path.name in ["antarest", "tests"]: + suffixes = [".py"] + license_header = BACKEND_LICENSE_HEADER + license_as_list = license_header.splitlines() + license_to_save = [header + "\n" for header in license_as_list] + ["\n"] + # -------- + check_dir(cwd, path, action, invalid_files, suffixes, license_as_list, license_to_save) + file_count = len(invalid_files) + if file_count > 0: + if action == "fix": + click.echo(f"{file_count} files have been fixed") + else: + click.echo(f"{file_count} files have an invalid header. Use --action=fix to fix them") + if action == "check-strict": + raise ValueError("Some files have invalid headers") + + else: + click.echo("All good !") + + +def main(): + cli(prog_name="cli") + + +if __name__ == "__main__": + main() diff --git a/scripts/package_antares_installer.sh b/scripts/package_antares_installer.sh new file mode 100755 index 0000000000..0050a3edb5 --- /dev/null +++ b/scripts/package_antares_installer.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Antares Desktop Installer +# +# This script must be run by ̀.github/worflows/deploy.yml`. +# It builds the installer application and stores it in the package directory. + +SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P) +PROJECT_DIR=$(dirname -- "${SCRIPT_DIR}") +INSTALLER_DIR="${PROJECT_DIR}/installer" +DIST_DIR="${PROJECT_DIR}/dist/package" + +# build package +echo "INFO: Generating the Installer..." + +pushd ${INSTALLER_DIR} +if [[ "$OSTYPE" == "msys"* ]]; then + # For windows we build the GUI version + hatch run pyinstaller:build_gui AntaresWebInstaller + mv dist/AntaresWebInstaller ${DIST_DIR} +else + # For linux we build the command line version + hatch run pyinstaller:build_cli AntaresWebInstallerCLI + mv dist/AntaresWebInstallerCLI ${DIST_DIR} +fi +popd diff --git a/scripts/update_version.py b/scripts/update_version.py index a829035ff0..6a981968ea 100755 --- a/scripts/update_version.py +++ b/scripts/update_version.py @@ -117,9 +117,9 @@ def upgrade_version(new_version: str, new_date: str) -> None: # Patching version number files_to_patch = [ ( - "setup.py", - "version=.*", - f'version="{new_version}",', + "pyproject.toml", + "\nversion = .*", + f'\nversion = "{new_version}"', ), ( "sonar-project.properties", diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index b0f3012d17..0000000000 --- a/setup.cfg +++ /dev/null @@ -1,28 +0,0 @@ -[mypy] -strict = True -files = antarest/**/*.py - -[mypy-antareslauncher.*] -ignore_missing_imports = True - -[mypy-jsonschema.*] -ignore_missing_imports = True - -[mypy-pytest.*] -ignore_missing_imports = True - -[mypy-httpx.*] -ignore_missing_imports = True - -[mypy-jsonref.*] -ignore_missing_imports = True - -[mypy-alembic.*] -no_implicit_reexport = false - -[tool:pytest] -testpaths = - tests -markers = - unit_test - integration_test diff --git a/setup.py b/setup.py deleted file mode 100644 index 38e6d70055..0000000000 --- a/setup.py +++ /dev/null @@ -1,37 +0,0 @@ -from pathlib import Path - -from setuptools import setup, find_packages - -excluded_dirs = {"alembic", "conf", "docs", "examples", "resources", "scripts", "tests", "venv", "webapp"} - -setup( - name="AntaREST", - version="2.17.5", - description="Antares Server", - long_description=Path("README.md").read_text(encoding="utf-8"), - long_description_content_type="text/markdown", - author="RTE, Antares Web Team", - author_email="andrea.sgattoni@rte-france.com", - url="https://github.com/AntaresSimulatorTeam/api-iso-antares", - packages=find_packages(exclude=excluded_dirs), - license="Apache Software License", - platforms=[ - "linux-x86_64", - "macosx-10.14-x86_64", - "macosx-10.15-x86_64", - "macosx-11-x86_64", - "macosx-12-x86_64", - "macosx-13-x86_64", - "win-amd64", - ], - classifiers=[ - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "License :: Apache License :: 2.0", - "Operating System :: OS Independent", - ], - python_requires=">=3.8", -) diff --git a/sonar-project.properties b/sonar-project.properties index 07d21a096d..a42bdb7b79 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -7,4 +7,4 @@ sonar.python.coverage.reportPaths=coverage.xml sonar.python.version=3.8 sonar.javascript.lcov.reportPaths=webapp/coverage/lcov.info sonar.projectVersion=2.17.5 -sonar.coverage.exclusions=antarest/gui.py,antarest/main.py,antarest/singleton_services.py,antarest/worker/archive_worker_service.py,webapp/**/* \ No newline at end of file +sonar.coverage.exclusions=antarest/gui.py,antarest/main.py,antarest/singleton_services.py,antarest/worker/archive_worker_service.py,webapp/**/*,,antarest/fastapi_jwt_auth/** \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/cache/__init__.py b/tests/cache/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/cache/__init__.py +++ b/tests/cache/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/cache/test_local_cache.py b/tests/cache/test_local_cache.py index b9fae75ee9..8f8643d2f4 100644 --- a/tests/cache/test_local_cache.py +++ b/tests/cache/test_local_cache.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import time from pathlib import Path from unittest import mock @@ -29,11 +41,11 @@ def test_lifecycle(): id = "some_id" duration = 3600 timeout = int(time.time()) + duration - cache_element = LocalCacheElement(duration=duration, data=config.dict(), timeout=timeout) + cache_element = LocalCacheElement(duration=duration, data=config.model_dump(), timeout=timeout) # PUT - cache.put(id=id, data=config.dict(), duration=duration) + cache.put(id=id, data=config.model_dump(), duration=duration) assert cache.cache[id] == cache_element # GET - assert cache.get(id=id) == config.dict() + assert cache.get(id=id) == config.model_dump() diff --git a/tests/cache/test_redis_cache.py b/tests/cache/test_redis_cache.py index a7c76d07c1..b3d9cabefd 100644 --- a/tests/cache/test_redis_cache.py +++ b/tests/cache/test_redis_cache.py @@ -1,8 +1,20 @@ -import json +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock from antarest.core.cache.business.redis_cache import RedisCache, RedisCacheElement +from antarest.core.serialization import from_json from antarest.study.storage.rawstudy.model.filesystem.config.model import Area, FileStudyTreeConfigDTO @@ -28,18 +40,18 @@ def test_lifecycle(): id = "some_id" redis_key = f"cache:{id}" duration = 3600 - cache_element = RedisCacheElement(duration=duration, data=config.dict()).json() + cache_element = RedisCacheElement(duration=duration, data=config.model_dump()).model_dump_json() # GET redis_client.get.return_value = cache_element - load = json.loads(cache_element) + load = from_json(cache_element) assert cache.get(id=id) == load["data"] redis_client.expire.assert_called_with(redis_key, duration) redis_client.get.assert_called_once_with(redis_key) # PUT duration = 7200 - cache_element = RedisCacheElement(duration=duration, data=config.dict()).json() - cache.put(id=id, data=config.dict(), duration=duration) + cache_element = RedisCacheElement(duration=duration, data=config.model_dump()).model_dump_json() + cache.put(id=id, data=config.model_dump(), duration=duration) redis_client.set.assert_called_once_with(redis_key, cache_element) redis_client.expire.assert_called_with(redis_key, duration) diff --git a/tests/cache/test_service.py b/tests/cache/test_service.py index 5377551a8b..cc833227d0 100644 --- a/tests/cache/test_service.py +++ b/tests/cache/test_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock from antarest.core.cache.business.local_chache import LocalCache diff --git a/tests/conftest.py b/tests/conftest.py index e1a1d69bff..3a074c8b98 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path import pytest diff --git a/tests/conftest_db.py b/tests/conftest_db.py index 925e0fe639..51b63d24af 100644 --- a/tests/conftest_db.py +++ b/tests/conftest_db.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import typing as t diff --git a/tests/conftest_services.py b/tests/conftest_services.py index 59f562e241..24d94acafb 100644 --- a/tests/conftest_services.py +++ b/tests/conftest_services.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ This module provides various pytest fixtures for unit testing the AntaREST application. diff --git a/tests/core/__init__.py b/tests/core/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/core/__init__.py +++ b/tests/core/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/core/assets/__init__.py b/tests/core/assets/__init__.py index 773f16ec60..3fff24b6fe 100644 --- a/tests/core/assets/__init__.py +++ b/tests/core/assets/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path ASSETS_DIR = Path(__file__).parent.resolve() diff --git a/tests/core/tasks/__init__.py b/tests/core/tasks/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/core/tasks/__init__.py +++ b/tests/core/tasks/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/core/tasks/test_model.py b/tests/core/tasks/test_model.py index 763aa36db8..8c93ba9c3b 100644 --- a/tests/core/tasks/test_model.py +++ b/tests/core/tasks/test_model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import uuid import pytest diff --git a/tests/core/tasks/test_task_job_service.py b/tests/core/tasks/test_task_job_service.py index 40a463675a..759146cac5 100644 --- a/tests/core/tasks/test_task_job_service.py +++ b/tests/core/tasks/test_task_job_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime from sqlalchemy.orm import Session # type: ignore diff --git a/tests/core/test_auth.py b/tests/core/test_auth.py index 24fda299c5..469ce8a2ee 100644 --- a/tests/core/test_auth.py +++ b/tests/core/test_auth.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock from fastapi import FastAPI diff --git a/tests/core/test_exceptions.py b/tests/core/test_exceptions.py index 86892187a0..9ebdc6aa84 100644 --- a/tests/core/test_exceptions.py +++ b/tests/core/test_exceptions.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.core.exceptions import ReferencedObjectDeletionNotAllowed diff --git a/tests/core/test_file_transfer.py b/tests/core/test_file_transfer.py index 2b0cfff0c6..44cf01e410 100644 --- a/tests/core/test_file_transfer.py +++ b/tests/core/test_file_transfer.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime from pathlib import Path from unittest.mock import Mock diff --git a/tests/core/test_jwt.py b/tests/core/test_jwt.py index 61c006d871..603d2b76dc 100644 --- a/tests/core/test_jwt.py +++ b/tests/core/test_jwt.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.core.jwt import JWTGroup, JWTUser from antarest.core.roles import RoleType from antarest.login.model import Group, User diff --git a/tests/core/test_maintenance.py b/tests/core/test_maintenance.py index a0ccad5db9..c6c604d9ca 100644 --- a/tests/core/test_maintenance.py +++ b/tests/core/test_maintenance.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock import pytest diff --git a/tests/core/test_tasks.py b/tests/core/test_tasks.py index 7edc25ec6f..cb2c635177 100644 --- a/tests/core/test_tasks.py +++ b/tests/core/test_tasks.py @@ -1,4 +1,15 @@ -import dataclasses +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import time import typing as t @@ -10,7 +21,7 @@ from sqlalchemy.engine.base import Engine # type: ignore from sqlalchemy.orm import Session, sessionmaker # type: ignore -from antarest.core.config import Config, RemoteWorkerConfig, TaskConfig +from antarest.core.config import Config from antarest.core.interfaces.eventbus import EventType, IEventBus from antarest.core.jwt import DEFAULT_ADMIN_USER from antarest.core.model import PermissionInfo, PublicMode @@ -31,8 +42,8 @@ from antarest.eventbus.business.local_eventbus import LocalEventBus from antarest.eventbus.service import EventBusService from antarest.login.model import User +from antarest.service_creator import SESSION_ARGS from antarest.study.model import RawStudy -from antarest.utils import SESSION_ARGS from antarest.worker.worker import AbstractWorker, WorkerTaskCommand from tests.helpers import with_db_context @@ -108,7 +119,7 @@ def test_service(core_config: Config, event_bus: IEventBus) -> None: "status": TaskStatus.FAILED, "type": None, } - assert res.dict() == expected + assert res.model_dump() == expected # Test Case: add a task that fails and wait for it # ================================================ @@ -179,34 +190,6 @@ def _execute_task(self, task_info: WorkerTaskCommand) -> TaskResult: return TaskResult(success=True, message="") -@with_db_context -def test_worker_tasks(tmp_path: Path, core_config: Config, event_bus: IEventBus) -> None: - # Create a TaskJobService - task_job_repo = TaskJobRepository() - task_config = TaskConfig(remote_workers=[RemoteWorkerConfig(name="test", queues=["test"])]) - config = dataclasses.replace(core_config, tasks=task_config) - service = TaskJobService(config=config, repository=task_job_repo, event_bus=event_bus) - - worker = DummyWorker(event_bus, ["test"], tmp_path) - worker.start(threaded=True) - - file_to_create = "foo" - assert not (tmp_path / file_to_create).exists() - - task_id = service.add_worker_task( - TaskType.WORKER_TASK, - "test", - {"file": file_to_create}, - None, - None, - request_params=RequestParameters(user=DEFAULT_ADMIN_USER), - ) - assert task_id is not None - service.await_task(task_id, timeout_sec=2) - - assert (tmp_path / file_to_create).exists() - - def test_repository(db_session: Session) -> None: # Prepare two users in the database user1_id = 9 diff --git a/tests/core/test_utils.py b/tests/core/test_utils.py index 78808aafab..d57ac68d21 100644 --- a/tests/core/test_utils.py +++ b/tests/core/test_utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import zipfile from pathlib import Path diff --git a/tests/core/test_utils_bp.py b/tests/core/test_utils_bp.py index cb9b47618d..b4ae0847ed 100644 --- a/tests/core/test_utils_bp.py +++ b/tests/core/test_utils_bp.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from http import HTTPStatus from pathlib import Path from unittest.mock import Mock diff --git a/tests/core/test_version_info.py b/tests/core/test_version_info.py index daa63e317d..2ad075d9f1 100644 --- a/tests/core/test_version_info.py +++ b/tests/core/test_version_info.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re from unittest.mock import patch diff --git a/tests/core/utils/__init__.py b/tests/core/utils/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/core/utils/__init__.py +++ b/tests/core/utils/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/core/utils/test_extract_zip.py b/tests/core/utils/test_extract_zip.py index 11c3c11ff3..dfbde6bf6d 100644 --- a/tests/core/utils/test_extract_zip.py +++ b/tests/core/utils/test_extract_zip.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import zipfile from pathlib import Path diff --git a/tests/db_statement_recorder.py b/tests/db_statement_recorder.py index c6a1264e03..890205b94f 100644 --- a/tests/db_statement_recorder.py +++ b/tests/db_statement_recorder.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Record SQL statements in memory to diagnose the queries performed by the application. """ diff --git a/tests/eventbus/__init__.py b/tests/eventbus/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/eventbus/__init__.py +++ b/tests/eventbus/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/eventbus/test_local_eventbus.py b/tests/eventbus/test_local_eventbus.py index a42b40a990..571673cbeb 100644 --- a/tests/eventbus/test_local_eventbus.py +++ b/tests/eventbus/test_local_eventbus.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.core.interfaces.eventbus import Event, EventType from antarest.core.model import PermissionInfo, PublicMode from antarest.eventbus.business.local_eventbus import LocalEventBus diff --git a/tests/eventbus/test_redis_event_bus.py b/tests/eventbus/test_redis_event_bus.py index 8e28ab1163..37f69e1fad 100644 --- a/tests/eventbus/test_redis_event_bus.py +++ b/tests/eventbus/test_redis_event_bus.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock from antarest.core.interfaces.eventbus import Event, EventType @@ -17,7 +29,7 @@ def test_lifecycle(): payload="foo", permissions=PermissionInfo(public_mode=PublicMode.READ), ) - serialized = event.json() + serialized = event.model_dump_json() pubsub_mock.get_message.return_value = {"data": serialized} eventbus.push_event(event) redis_client.publish.assert_called_once_with("events", serialized) diff --git a/tests/eventbus/test_service.py b/tests/eventbus/test_service.py index 40db647ca3..4089849db7 100644 --- a/tests/eventbus/test_service.py +++ b/tests/eventbus/test_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Awaitable, Callable, List from unittest.mock import MagicMock, Mock diff --git a/tests/eventbus/test_websocket_manager.py b/tests/eventbus/test_websocket_manager.py index fc512854c8..94500de322 100644 --- a/tests/eventbus/test_websocket_manager.py +++ b/tests/eventbus/test_websocket_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest import IsolatedAsyncioTestCase from unittest.mock import MagicMock, call @@ -25,7 +37,7 @@ async def test_subscriptions(self): await ws_manager.connect(mock_connection, user) assert len(ws_manager.active_connections) == 1 - ws_manager.process_message(subscribe_message.json(), mock_connection) + ws_manager.process_message(subscribe_message.model_dump_json(), mock_connection) connections = ws_manager.active_connections[0] assert len(connections.channel_subscriptions) == 1 assert connections.channel_subscriptions[0] == "foo" @@ -39,7 +51,7 @@ async def test_subscriptions(self): mock_connection.send_text.assert_has_calls([call("msg1"), call("msg2")]) - ws_manager.process_message(unsubscribe_message.json(), mock_connection) + ws_manager.process_message(unsubscribe_message.model_dump_json(), mock_connection) assert len(connections.channel_subscriptions) == 0 ws_manager.disconnect(mock_connection) diff --git a/tests/helpers.py b/tests/helpers.py index d9652b6585..80dd0683a6 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import math import time import uuid diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/integration/__init__.py +++ b/tests/integration/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/integration/assets/STA-mini.7z b/tests/integration/assets/STA-mini.7z index 10a4d3fdbf..4bae2fe52f 100644 Binary files a/tests/integration/assets/STA-mini.7z and b/tests/integration/assets/STA-mini.7z differ diff --git a/tests/integration/assets/STA-mini.zip b/tests/integration/assets/STA-mini.zip index f9ce08baf6..c201008ff5 100644 Binary files a/tests/integration/assets/STA-mini.zip and b/tests/integration/assets/STA-mini.zip differ diff --git a/tests/integration/assets/__init__.py b/tests/integration/assets/__init__.py index 773f16ec60..3fff24b6fe 100644 --- a/tests/integration/assets/__init__.py +++ b/tests/integration/assets/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path ASSETS_DIR = Path(__file__).parent.resolve() diff --git a/tests/integration/assets/timeseries_generation/case_1.txt b/tests/integration/assets/timeseries_generation/case_1.txt new file mode 100644 index 0000000000..72fa912cbe --- /dev/null +++ b/tests/integration/assets/timeseries_generation/case_1.txt @@ -0,0 +1,8760 @@ +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +2000 2250 1750 2000 2500 1750 2250 2250 2500 2000 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 500 450 350 500 500 450 500 450 500 +500 300 400 350 500 500 450 450 450 500 +500 300 400 350 500 500 450 450 450 500 +500 300 400 350 500 500 450 450 450 500 +500 300 400 350 500 500 450 450 450 500 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 3000 4000 3500 5000 5000 4500 4500 4500 5000 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 4000 4500 3000 5000 4500 4500 5000 4500 4500 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +5000 3000 4500 4000 5000 3500 4500 4500 5000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +3500 4500 4000 4000 5000 4500 4500 4500 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 4000 4000 4500 5000 4500 4500 5000 4000 4000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +4500 5000 4500 4000 5000 3500 4500 5000 4500 3000 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +3500 4500 4500 4500 4000 3000 5000 5000 4500 2500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4500 4000 4500 5000 3500 4000 4500 5000 4000 4500 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4000 4500 4500 4000 4000 4500 3500 4500 5000 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +4500 4000 4500 5000 3000 5000 3000 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +3500 5000 5000 5000 4000 4500 4500 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4500 4000 4500 5000 5000 4000 4000 4500 4500 4000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 4000 4500 4500 5000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +3500 4000 4000 4500 3500 5000 5000 5000 4500 4000 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +4000 3500 4000 5000 3500 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +5000 4000 4000 4500 5000 4000 5000 4500 4500 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 5000 4500 4000 4000 3500 4000 4000 4000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4000 4500 3500 4000 4500 5000 4500 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +4500 3500 5000 4500 5000 4000 4000 5000 5000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 5000 5000 4500 4500 5000 4500 4000 5000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +5000 4500 4500 5000 4500 4500 4500 4000 4500 4000 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 4000 5000 4500 4500 5000 3000 5000 3500 4500 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 5000 4500 3000 5000 4500 5000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4000 3000 4500 3500 4000 3500 4500 5000 5000 4000 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 2000 3500 4500 4500 4500 4500 4500 4000 4500 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4500 4500 5000 4000 4500 4500 3000 4000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 5000 4000 4500 5000 4000 4000 4500 3000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 4500 4000 4000 4500 4000 4000 4000 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4500 5000 4000 4500 4000 4500 4500 4500 5000 5000 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4000 4000 3500 3000 3500 4500 3500 3000 3500 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +4500 4500 3000 3000 3000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 4500 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 4000 3500 3500 2500 3500 4500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 4000 3000 4000 4000 3500 3500 3500 4500 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3000 3500 3500 3500 3500 4000 3500 3500 3500 5000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4500 3500 4000 4500 4000 4000 4000 4500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3000 3500 3500 4500 5000 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 5000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +4000 3500 4000 3500 3500 4000 3000 3500 3000 3500 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 5000 3500 3500 4000 3000 3500 3500 3000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 4500 3500 3000 3500 3500 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +4500 3500 3500 4500 3500 4000 3500 3500 3000 3000 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 4000 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +4000 3500 4000 3500 3500 4000 3500 3500 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 3000 4500 3500 4500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4000 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4500 4000 3500 4000 3500 3500 4000 4500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 4500 3500 3500 4000 4000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +4500 3500 3500 3500 4000 5000 3000 3500 3500 5000 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 3500 4000 3000 3000 3500 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3500 3500 3500 4500 3500 4500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4000 4500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +5000 4000 3500 3500 3500 3500 3500 4000 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3000 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4000 3500 4000 3500 4500 3500 3500 3500 4500 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3000 3500 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3000 3500 3000 4000 3500 3500 3000 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 3500 3000 4500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3000 4000 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3000 3500 3500 3000 3500 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 4500 4500 3000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3000 4000 3500 3500 3500 3500 3500 4500 5000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3000 4500 3500 3500 3500 3500 3500 3000 3500 5000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 3500 5000 3000 4500 3500 3500 3500 3500 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 4000 4000 3500 4500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3000 3500 4000 3500 3500 4500 3500 3500 4500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +4000 4000 3000 4500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 3500 3500 4500 4000 3500 3500 4500 3000 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +3500 3500 4000 3500 3500 3000 3000 3500 4500 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +4500 4500 4500 3500 4000 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 4000 3500 3500 4000 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4500 3500 4000 3500 4000 3000 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3000 3500 4000 4000 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +3500 3500 3500 4500 3500 3500 4500 3500 4500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 3000 3500 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +4000 4000 3500 4500 3500 3500 4000 3500 4000 3500 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 4000 4500 3500 3500 3500 4000 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 4500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 5000 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3000 3500 4500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 3500 3500 4000 4000 3500 4500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +3500 4500 4000 4500 4000 4000 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3000 3000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +3500 3500 3500 4000 3500 5000 4000 3500 4000 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 3500 4000 5000 3000 3500 3500 4000 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 3000 3500 3500 3500 4000 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +3500 3500 4000 4500 3500 4000 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +4000 3500 3000 4500 3500 3500 3500 3500 3000 3000 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 4500 3000 3500 3500 3500 3500 4500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3000 3500 3000 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +4500 3500 4000 3000 3500 3500 3500 4000 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 3500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +3500 3500 4000 4000 3500 3500 3500 4500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 4500 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +4500 4000 3500 4500 3500 3000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3000 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +4000 3500 3500 4000 3500 5000 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3500 3500 3500 3500 4000 3500 3000 3000 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3000 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 4500 3500 3000 4000 3500 3500 3500 3000 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 5000 3500 3500 3500 3000 3500 4000 4000 5000 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 4000 4000 3500 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3000 3500 3500 3500 3500 3000 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 4500 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +4500 3500 4500 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4000 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 4500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3000 3500 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3000 3500 3500 4000 4000 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +4000 3500 3500 4000 3000 3500 3000 4000 4000 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 5000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 5000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +4000 4000 3000 3500 3000 3000 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 5000 4000 3500 3500 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 5000 3500 4000 3000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 5000 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 4500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3000 3500 3500 3500 3500 4500 3500 3500 3000 3500 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3000 4500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 4500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3500 3500 4000 3500 3500 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 5000 4000 3500 3500 3500 4500 3000 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +4000 4000 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +4000 3500 3000 4000 3000 3000 3500 3500 4000 3000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 4500 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3000 4000 4000 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3500 3500 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 3000 3500 4500 3500 3500 4500 3500 4000 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 4500 4000 3500 3500 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 5000 3500 3500 3500 4500 4000 3000 3000 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 3500 3000 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4000 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +4000 4500 3500 3000 3500 3000 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 4000 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 4000 3500 3500 3500 4000 3500 4000 4000 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 4500 3500 3500 4500 3500 3500 4500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4500 4500 4000 3500 3000 4500 3000 3500 3500 4500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 4500 3000 4000 4000 3500 3500 4000 3500 3500 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3000 4500 3500 4000 4000 3000 3500 3500 4000 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 2500 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 3500 3500 3500 3500 3000 4000 4000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 4500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 4000 4500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 3500 4000 3500 4000 3500 4000 3500 3500 4000 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 4000 3500 5000 3500 4000 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 4500 4000 3500 4000 3500 3500 4500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 4500 3500 4500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3000 3500 3000 5000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 3500 3500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +5000 3500 3500 3500 3500 4000 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3000 3500 3500 4000 3500 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 5000 3500 4500 3000 4500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3000 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4000 3500 3500 3500 3500 5000 4000 3500 4500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4000 4000 3500 4500 4000 3500 3500 3500 4500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +4500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 4000 4500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3000 3500 4500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4000 3500 3500 diff --git a/tests/integration/assets/timeseries_generation/case_2.txt b/tests/integration/assets/timeseries_generation/case_2.txt new file mode 100644 index 0000000000..0f33c9ac05 --- /dev/null +++ b/tests/integration/assets/timeseries_generation/case_2.txt @@ -0,0 +1,8760 @@ +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +3500 3500 4500 4000 4000 5000 5000 4000 4500 4000 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +2500 4000 3500 5000 3000 4000 5000 4000 4000 3500 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +5000 4500 4000 4500 4000 4500 4000 5000 4500 5000 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +4000 3000 4000 4500 4000 4000 4500 5000 4500 4500 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +5000 4000 4500 4000 4500 4000 4500 5000 5000 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4500 3500 4500 4000 4000 4000 4000 5000 3500 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +4000 4000 3500 4000 5000 4500 4500 4500 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +5000 4500 3500 4000 5000 4000 4000 4000 4000 5000 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +4000 4000 3500 3500 4000 4500 3500 4000 3500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +3500 3500 5000 5000 4500 4000 4500 4500 4500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 4500 5000 5000 3500 4500 3500 4500 3500 4500 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4000 5000 5000 4000 5000 3500 4000 4000 5000 5000 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 3000 4000 5000 5000 4000 4500 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4500 4500 4500 4500 5000 3500 4000 4500 5000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4000 5000 3500 5000 5000 3500 4000 4500 4000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +4500 4500 5000 5000 4500 4500 4500 5000 3000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +5000 5000 4000 4500 5000 4000 4500 5000 4000 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +4500 4500 4000 4500 4000 4500 5000 4500 4500 4500 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +5000 3500 3500 4000 4000 4500 5000 3500 4500 4000 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 3500 4500 5000 4500 4500 4000 4500 4500 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4000 4000 4500 4500 4000 4000 5000 3500 5000 4500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +4500 3000 4000 5000 4000 4000 4500 4000 3000 3500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +5000 5000 3500 4500 3500 4500 3500 4500 4500 4500 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4000 5000 4500 4500 4500 4500 4000 4500 4500 5000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4000 5000 4500 5000 3500 5000 4500 4000 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +4500 4500 4500 4000 4000 5000 5000 4000 5000 4500 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +5000 4500 5000 5000 5000 4000 5000 4000 5000 3000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +4500 5000 4500 3000 4500 4500 4500 4500 5000 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +5000 4000 4000 5000 4000 4500 4500 5000 4500 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +4500 5000 4500 3500 5000 5000 4500 5000 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +5000 4000 4500 4000 5000 3500 4500 4500 4000 4000 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 4500 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 3500 4000 3500 3500 3500 3500 3500 4500 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +5000 3500 4500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 3500 3000 3500 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4500 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 4000 3500 3500 3500 4000 4000 3500 5000 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 5000 3500 4500 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +3500 3500 3500 3000 4000 3500 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 5000 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4000 4500 3500 3500 3500 4000 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +5000 3500 4500 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 3000 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4500 3500 3500 4500 3500 3500 5000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +3500 4000 4000 4000 3500 3500 3500 4000 3500 4000 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +4500 3500 3500 3500 3000 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3500 3500 3500 3500 3500 4000 3500 4500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +5000 4000 3500 3500 4000 5000 3500 3000 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3000 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3000 3500 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +4500 3500 4500 3500 3500 4000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 3500 3500 3500 3500 5000 3500 3500 4000 3000 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 4500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 4500 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3000 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3000 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3000 3500 4500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 4500 3500 3500 3500 4500 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +4500 3500 3500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3000 3500 3500 4000 3500 3500 3500 4000 4000 4000 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 4500 3500 3500 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 3500 3500 3500 4500 4000 4500 3500 3000 4000 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 4500 4000 3000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3000 3500 3500 4000 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 4000 3500 3500 5000 3500 3500 3500 4500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4000 4500 3500 4500 3500 4500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +3500 4500 3500 3500 4500 3500 3500 4000 4000 4000 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 5000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +4000 3500 3500 4000 3500 3000 3500 3500 3000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 4000 3500 4000 3500 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 4500 4000 3000 3500 4000 3500 4500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +3500 3500 3500 4500 3500 3500 4000 3500 5000 4000 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 4000 3500 4000 4000 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 4000 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +4000 3500 3500 4500 3000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 3000 4000 4500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +4000 3500 3500 3500 3500 3500 3000 4000 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 3500 3500 5000 3500 3500 5000 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4000 4500 3500 3500 4000 4000 3500 4000 3500 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +4500 3500 3500 3500 4000 3500 3500 4000 3000 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 4500 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +5000 4000 3500 3500 4500 4000 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3000 4500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 2500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +4500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4000 4000 3000 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +3500 4000 3500 3500 3500 3500 4000 3500 3500 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +3500 3500 4500 3500 4000 3500 3000 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3000 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +3500 4000 4000 4000 3500 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +4500 3500 4000 3500 3500 3500 3500 3500 4000 4000 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3000 3000 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 2500 3500 4000 3500 4000 4000 3500 4000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +4000 3500 3500 3500 4000 2500 4000 4000 3500 5000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +3500 4000 3500 3500 3500 3500 4000 3500 3500 4500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 3500 3500 3500 4000 4000 3500 4500 3500 4500 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 4000 3500 3500 3500 3000 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3000 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4000 4000 3500 4000 4000 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 5000 3500 3500 3500 4500 4000 3500 4000 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4000 3500 4500 3500 3500 4500 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 4500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4500 3000 3500 3500 4000 4500 3500 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 3500 3500 4500 3000 4500 3500 3500 3500 4500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 4000 3500 3500 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +3500 3000 3500 3500 4000 3500 5000 4000 3500 5000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +4500 4000 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 5000 4000 3000 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3000 3500 3500 3500 3500 3500 3000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3000 3500 3500 3500 3000 4000 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 4500 4000 3500 3500 4500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 3500 5000 3500 4500 3500 3500 3000 3500 4000 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3000 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3000 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +3500 3500 3500 4000 3500 3500 3000 4000 3500 4500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 5000 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 3500 3500 4000 3500 4500 3500 3500 4000 4000 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 5000 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3000 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3000 3500 4000 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 4000 4000 4500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 4500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 4500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 4000 4000 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +3500 3500 3500 3500 5000 3000 3500 3500 3000 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +4500 4500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +3500 4000 3500 3500 3000 3500 4000 3500 4000 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +4000 4000 3500 3500 4500 3500 4500 3500 3500 3500 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 5000 3500 3500 3500 3000 3500 4000 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +4500 4000 3500 3500 3500 3500 4500 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 4500 3000 3500 4500 3500 4000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 4500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +4500 4000 4000 3500 3000 3500 4500 3000 4000 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3500 5000 4000 3500 4000 3500 3500 4000 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3000 4500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 4500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 5000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4500 3500 4500 3500 3500 4000 3500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +4000 4500 3500 4000 3500 3500 4000 3500 4500 4500 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 4500 3500 3500 4000 3500 4500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 4500 3500 3500 3500 4000 4000 3500 4500 3500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3000 3500 3500 3500 4000 4000 3500 4000 4500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +3500 3500 3500 4000 4000 4000 3500 4500 3500 3500 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4500 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +4500 4500 3500 3500 3500 3000 3500 3000 4500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3000 3500 3500 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 4500 4000 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4500 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 3500 3500 3500 3500 3500 4000 4000 3500 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3000 3500 4000 3500 4500 3000 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 4500 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4500 3500 3500 4000 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3000 4000 3500 3500 3500 4000 4000 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4000 3500 3500 3500 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3000 3500 3500 3500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 4500 3500 3500 3000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 3500 4500 3500 4000 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 3500 4000 3500 3500 3000 4000 4500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 4000 3500 3500 3500 3500 4000 3500 3000 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3000 4000 3500 3500 3500 3500 3500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +4500 3500 3000 4000 3500 3500 3500 3500 4500 3500 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4500 3500 4000 3500 3500 4000 3000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 3500 3000 4000 3500 4000 3500 3500 3000 3500 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +4000 5000 3500 4000 3500 4000 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3000 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3000 5000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 3500 3500 5000 3500 4500 3500 3500 3000 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 +3500 3500 5000 3500 3500 3500 5000 4000 3500 3500 diff --git a/tests/integration/assets/timeseries_generation/case_3.txt b/tests/integration/assets/timeseries_generation/case_3.txt new file mode 100644 index 0000000000..0248026540 --- /dev/null +++ b/tests/integration/assets/timeseries_generation/case_3.txt @@ -0,0 +1,8760 @@ +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +3000 3500 4000 5000 4500 3500 3000 3500 3500 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +5000 5000 4000 4500 5000 4000 5000 5000 5000 4500 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +4000 4000 5000 3000 5000 5000 4000 4500 5000 5000 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +5000 4000 5000 3500 3000 5000 4500 4500 5000 4500 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +4500 4500 5000 4000 4500 4000 4000 2000 5000 4000 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +3000 4000 3500 4500 4500 4500 4500 4500 4000 3500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 5000 3500 4500 4500 5000 4500 5000 5000 4500 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 4500 5000 5000 4500 5000 3500 4000 4500 5000 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4500 5000 4500 4500 4000 4500 4500 4000 3500 4500 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 4000 4000 4500 5000 4500 4500 4000 5000 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4000 4500 5000 4000 4500 5000 5000 4000 5000 4500 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4000 4500 4000 4000 5000 4000 3500 5000 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +4500 5000 4500 5000 5000 4000 4500 4500 4500 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +5000 5000 4500 4500 4000 3500 4500 4500 5000 4500 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4500 4000 4500 4500 4500 3500 5000 4500 4000 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4000 5000 5000 4500 4000 3500 5000 4500 4500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4500 4500 5000 3500 4500 5000 4500 4000 5000 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +4000 5000 4000 4000 4500 4000 4500 5000 4500 3500 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +3500 4500 5000 4000 4000 3500 4000 5000 4000 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4500 4000 4000 4500 4500 4500 4500 5000 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +4000 4500 4000 4000 4500 3500 4500 4500 5000 3500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +5000 2000 4000 4500 4500 4500 4500 4500 4500 4500 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +3500 4500 4000 4500 3500 5000 5000 5000 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +5000 4000 5000 4500 4500 4000 5000 4500 5000 4000 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4500 3000 4000 4000 4500 5000 3500 4000 5000 4500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4000 5000 4500 5000 4500 4000 4500 4500 4000 3500 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4500 4000 4000 4000 4500 4000 4000 5000 4500 4000 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +4000 4500 4000 5000 5000 5000 4000 4500 4500 4500 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +5000 4500 5000 4000 4500 4500 3500 4000 4000 5000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +3500 4000 4500 5000 4500 5000 3500 5000 4500 4000 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4000 3500 4500 4500 4500 5000 5000 3500 4500 4500 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 3500 4000 3500 3500 4500 4000 4500 4500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 3500 3500 4000 3500 3500 4000 3000 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 4500 3500 3500 4500 4500 4500 3500 4000 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 4500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +4000 3000 5000 3500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4000 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +3500 4000 4000 3500 3500 3500 4000 3000 4000 4500 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 4000 4500 3500 3500 4000 3500 3500 4000 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +4000 3500 3500 3500 4500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 4500 3000 3500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 3000 3500 3500 4000 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3500 3500 3500 3500 4500 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +4500 3500 4000 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 5000 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3500 4500 3000 3500 3000 3500 3500 4000 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +3000 3500 3500 3500 5000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3000 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3000 4500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +4500 3500 3500 4000 3500 4500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3000 3500 3500 3000 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +4000 3500 4000 4500 3500 3000 3500 4000 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3000 4500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3000 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +3500 4500 4500 3500 3500 4500 3500 4000 3000 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +4000 4000 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4500 3500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4000 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4000 3500 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +4500 4500 4000 3500 3500 4000 4500 3500 3500 3000 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 5000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 2500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 5000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 5000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 3500 3500 4000 4500 3500 4000 3000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 4000 4000 3000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 4500 3500 3500 4000 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3000 3500 4000 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 3500 4000 3500 3500 4000 3500 3500 3500 4000 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4500 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3500 3500 4000 4000 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 4500 3500 4500 3500 3500 4000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 4500 3500 3500 3500 3500 3500 3500 5000 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 4500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3000 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 4500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3000 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 4500 3500 4500 4000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4000 3500 3000 4500 4000 4000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3000 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 4000 4500 3000 3500 4500 3500 3500 3500 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +3500 4000 3500 3000 3500 4000 3500 4000 3500 3000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +4000 4000 4000 3500 3500 3500 3000 3500 4500 4000 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 4500 3500 3500 3500 4500 3500 4000 3500 4500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +3500 3500 3000 3500 4000 3500 3500 4000 4000 3500 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4000 3500 4000 3500 3500 3500 3500 3500 3000 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +4000 4500 4000 5000 3500 3500 3500 4000 4000 4500 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3500 4500 4000 3500 3500 3000 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 4500 3000 4000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 3500 4000 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4500 3500 3500 4000 4000 3500 3500 4000 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +3500 3500 4000 3500 4000 5000 4000 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +4500 3500 4500 3500 4000 3500 3500 3500 4500 5000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 4000 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 5000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +3000 3500 3500 3500 4500 3500 3500 3500 3500 4000 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +4500 3500 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +4500 3500 4000 4000 3500 3500 3500 3000 3500 3000 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3500 3500 3500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3000 4000 3500 3500 3500 3500 4000 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 4500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3000 3500 4000 3500 3500 3500 4500 3500 3500 3000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +3500 4000 3500 3500 3500 4000 3500 3500 4500 5000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +4000 4000 3000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 4000 3500 4500 4500 4000 3500 4000 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 5000 4000 4000 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 3500 3500 3500 4500 3000 3500 4500 3000 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3500 4000 3000 3500 4000 3500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4000 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 3500 4500 5000 3500 3500 3500 3000 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 4000 3500 4000 3500 4000 5000 3500 4000 3500 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3000 3500 3500 3500 3500 3500 4000 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3000 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +4000 4000 3500 4000 3500 3500 3000 3500 3500 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +3500 4000 3000 4000 3500 3500 3500 3500 3000 4000 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4000 4000 3000 4000 3500 3500 3500 4500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +4500 3500 3500 3500 4000 3000 4000 3500 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 4000 4000 4000 4500 4500 3500 4000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 4000 4000 4000 3500 4000 3500 3500 5000 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4000 4500 3000 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 4500 3500 3500 4000 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 4000 4000 3500 3500 4000 4000 4500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +3500 3500 4000 3000 3500 4500 4500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 4000 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 4000 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 4500 3500 3500 3500 4000 3500 4500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +4000 3500 3500 3500 4000 3500 3000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 4500 4500 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 5000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 3500 3500 4000 3500 4000 4500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4500 4000 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 3000 3500 3500 3500 4500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +4000 3500 3500 4000 3500 4000 4500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +4500 3500 3500 3500 3500 3000 3500 3500 4000 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 4000 3000 3500 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +3500 3500 3500 4000 4000 3500 4000 3500 3000 3500 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 4500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +3500 3500 3500 3500 4000 3500 3000 4000 3500 3000 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +4000 4000 4000 3500 4000 3500 3000 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3000 3000 3000 3500 3500 4000 3500 4000 4000 4000 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3000 3500 3500 3500 3500 4000 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3000 3500 3500 5000 3500 3500 4500 3500 4500 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4500 3500 4000 3500 3500 3500 5000 3500 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 4500 3500 3500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +3500 3500 4000 4000 3500 3500 4500 3500 3500 3000 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +5000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3500 3500 3500 4000 2500 3500 3500 3500 4500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +4500 3000 3500 3500 4000 3500 3000 3500 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3000 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3000 4000 3500 3000 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 2500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +2500 3500 4000 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 3500 3500 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 4000 3500 4000 3000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3500 4000 3500 4000 4000 4500 3500 4000 4000 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +3000 3500 3000 3500 4000 4500 4500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 3500 4000 3500 4000 3500 4000 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 5000 4000 5000 4000 4000 3500 3500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 5000 4000 3500 3500 4500 3500 3500 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +3500 4000 3500 4500 3500 4500 3500 4000 4000 3000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3000 3500 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3000 4000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +4500 3000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +4500 3500 3500 3500 4500 3500 3500 3500 4000 4000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +5000 4500 3500 3500 4500 3500 3500 3500 4000 5000 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4500 3500 3500 3500 4500 4500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 4000 4500 3500 3500 3500 4000 3500 4500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 4500 3000 3500 3000 3500 3500 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 4500 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 3500 3500 4000 3500 4000 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 4500 3500 3000 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +4500 3500 3500 3500 3500 3500 3500 3000 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 5000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 4000 3000 3000 3500 4500 4000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +4000 3500 3500 3500 3500 5000 4000 4500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4500 3500 3500 4000 3500 3500 4000 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3000 4500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +3500 4000 3000 3500 3500 3500 3500 3500 3500 5000 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 4500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 4500 3500 3500 4000 3500 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 2500 3500 3500 3500 4000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3000 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4500 3000 3500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 4000 3500 4000 5000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4000 3500 4000 3500 4500 3500 4500 3500 3500 3500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4500 3500 3500 3000 3500 3500 3500 3000 4000 4500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +4000 3500 4500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 3500 3500 4000 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 4000 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4500 3500 3500 4000 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3000 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3000 4000 3500 4500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3000 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 4500 4000 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3000 3500 4000 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 4500 3500 3500 3500 3500 3000 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3000 3500 3500 4000 3500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +4000 3500 3500 4500 3500 4500 3500 4000 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 4000 3500 4000 3500 3500 3500 4000 3500 diff --git a/tests/integration/assets/timeseries_generation/input_gen_ts.txt b/tests/integration/assets/timeseries_generation/input_gen_ts.txt new file mode 100644 index 0000000000..bc2d2feaa6 --- /dev/null +++ b/tests/integration/assets/timeseries_generation/input_gen_ts.txt @@ -0,0 +1,365 @@ +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +2 3 0.100000 0.020000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 +1 1 0.010000 0.300000 0 3 diff --git a/tests/integration/assets/timeseries_generation/reference_case.txt b/tests/integration/assets/timeseries_generation/reference_case.txt new file mode 100644 index 0000000000..fbbe1ad56a --- /dev/null +++ b/tests/integration/assets/timeseries_generation/reference_case.txt @@ -0,0 +1,8760 @@ +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +2250 1250 2000 1750 1250 2250 1750 2250 2000 1750 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +450 250 400 300 250 450 250 450 450 350 +400 350 400 350 350 400 250 450 400 400 +400 350 400 350 350 400 250 450 400 400 +400 350 400 350 350 400 250 450 400 400 +400 350 400 350 350 400 250 450 400 400 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4000 3500 4000 3500 3500 4000 2500 4500 4000 4000 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 5000 4000 4500 4000 4000 4000 4000 3000 4500 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4500 4500 4500 4000 4000 5000 4500 4500 3000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4000 4000 5000 5000 4000 5000 5000 4500 4000 5000 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4500 3000 5000 5000 4000 4000 4500 4500 4500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4000 3500 4500 5000 4500 4000 4000 5000 3500 4500 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4500 5000 4000 5000 5000 3500 4500 4500 4500 5000 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4000 4000 4000 5000 4500 3500 4500 4500 5000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4500 4500 3500 5000 4500 4000 5000 5000 4000 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4000 4500 4500 4500 4500 5000 3500 4500 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4000 4500 4500 4500 4500 3000 5000 3000 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +4000 4500 4500 4500 4500 5000 3000 4500 4500 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4000 4500 4500 5000 4500 5000 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +5000 4500 4500 3500 5000 4000 4500 4500 4000 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4000 4000 3500 5000 4500 4500 4000 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +4500 4500 4000 4000 5000 4000 4000 4500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 4000 4000 4500 4500 4000 4000 3500 4500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +5000 3000 4000 4500 4500 4000 4500 5000 3500 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 3000 4500 4500 4500 4500 5000 5000 4000 5000 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 2500 5000 4500 4000 4500 5000 5000 4000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4000 4500 4500 4000 3000 4500 4500 4500 5000 4500 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4500 4500 3500 4500 5000 4000 5000 5000 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4000 4000 4500 3500 4500 4500 3000 4000 4500 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4000 5000 4500 4500 4500 4000 4000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4500 4500 4500 5000 4500 4000 3500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +4500 4000 4500 4500 5000 4000 4500 4500 5000 4000 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4500 4500 4500 5000 5000 4500 4500 4500 4500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 4000 5000 4000 5000 4500 4500 4500 4500 3500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +5000 3500 4500 3000 5000 4500 4000 4000 4500 4500 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 2500 3500 4500 3500 3000 3000 3000 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3000 3500 4000 3500 3500 3000 3000 3000 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +3000 3500 4500 3500 4000 4500 3500 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 3500 4000 3500 3500 3500 3500 5000 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 3500 3500 3500 3500 4500 4000 4000 3000 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4000 4500 3500 3500 3500 4500 4000 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3000 4000 3500 3500 4000 3500 4000 3500 3500 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +4500 3500 3500 3500 3500 4000 3500 4000 3500 3000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4500 3500 3500 3500 3500 4000 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3000 3500 3500 3500 4000 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +4000 3500 3500 3500 3500 4000 3500 3500 3500 3000 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +3500 4500 3500 3500 4000 3500 3500 3500 3500 4500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4500 4000 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3500 4000 5000 3000 3500 3500 3500 3500 3500 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3000 4000 4000 4000 3500 3500 3500 4500 4000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3500 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3000 4000 4000 4500 3500 3500 3500 4000 4000 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 5000 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 4500 4000 3500 3500 3500 4000 4000 4500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3000 3500 3500 3500 3500 3500 3000 3500 3500 4000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 4500 3500 3500 4500 3500 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3000 3500 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +4000 3500 4000 3500 3500 3500 4500 4000 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 4500 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3000 4000 4500 3500 4000 4500 3000 3500 4000 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +3500 3500 4000 3500 3500 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4000 3500 3500 3500 3500 4000 3500 3500 4500 3500 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +4500 3500 3500 3500 4000 4000 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 3500 4000 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +4000 3500 3500 4500 3500 3500 3000 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 3500 3500 3500 3500 4000 3500 2500 3500 3000 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 4500 3500 3500 4500 3500 3500 3000 3500 3500 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 3500 3000 3500 4500 4500 3500 4000 3500 4000 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 4500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 4500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 5000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 3500 3000 3000 3500 3500 4000 4000 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 3500 3000 3500 4000 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 3000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 4500 3500 3500 3500 4000 3500 3500 3000 5000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 3500 3500 4000 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 4500 3500 3000 3500 5000 3500 3500 3500 3500 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3000 4500 4500 3500 3000 3500 3000 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3000 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3000 4000 3500 3000 4500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 4000 3500 3500 5000 3500 4000 3000 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 5000 3000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3000 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 3500 3500 3500 3500 4000 3500 3000 3500 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 2500 3500 4000 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 4500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4500 3000 3500 4500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 4500 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 3500 4500 3500 3500 3500 3500 4500 4000 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 4000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3000 4000 3500 3000 3500 4000 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3000 3000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 4000 4000 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3000 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 5000 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +3500 3500 4000 3500 4000 4500 5000 3500 3500 4000 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4000 3500 4000 3500 3500 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +4000 3500 4500 3000 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3000 3500 3500 3500 3500 3000 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4500 3500 3500 3500 5000 3500 3500 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +3500 3500 3500 4000 3500 4500 3500 4500 3500 4000 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 4500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 4500 3500 3500 5000 3500 3500 3500 3500 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4000 3500 4000 3500 3500 4000 3500 3500 4500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4500 3500 4000 3500 3500 3500 4000 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3000 3500 3500 3500 4000 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 3500 3500 4000 4500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 4000 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +4000 3500 4500 5000 3500 3500 3500 4000 4500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +3500 3500 3000 4000 4000 3500 3000 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 4500 4000 3500 3500 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +4500 3500 4000 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +4000 3500 3000 3000 3000 4500 4500 3000 3500 3500 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 4000 4000 3500 3500 3500 3000 4000 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3500 3500 4000 3500 4000 4000 5000 4500 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3000 3500 3000 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3500 3500 3500 4500 4000 4000 4000 3500 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +3000 3500 3500 4000 4000 3500 3500 3000 3500 4000 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +4500 3500 3500 3500 4000 3500 4000 4000 4000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +3500 4000 3500 3500 4000 4500 3000 3500 3500 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +4500 3500 3500 4000 5000 3500 3000 4500 3000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3000 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 4500 4000 3500 3000 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 4000 3500 4000 3500 3500 4000 3500 4000 4000 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3500 3000 3500 4500 3500 3500 3500 3500 3500 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3000 4000 3000 3500 3500 3500 3500 3500 4000 3000 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +3500 4000 3000 3500 3500 4000 3500 3500 4000 3500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +4000 3500 3500 3500 3000 5000 3500 3500 4000 4500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 4000 4000 3500 3500 4000 3000 4000 4500 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 3500 3000 3500 3500 3500 4500 5000 3500 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3500 3500 3500 4000 4500 3500 4000 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3000 4500 3000 3500 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 3500 4000 3500 3500 4000 4000 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 4500 3500 4000 3500 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 3500 4000 3500 3500 4000 3500 3500 3000 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 4000 4000 3500 3500 4000 3500 3500 3000 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 4000 4000 4500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3000 4000 3500 4500 3500 3000 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +3500 3500 3500 4000 3500 3500 3500 3500 2500 4000 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 3500 4500 3500 3500 3000 3500 4500 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 3000 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3000 4500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +4500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 3000 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3000 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3000 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +4000 3500 3500 3500 4000 3500 3500 4500 3500 4000 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 2500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3000 3500 4000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3000 3500 3500 3500 3500 3500 3500 5000 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +4000 3500 3000 3500 3500 3000 3000 3500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 3000 4000 3500 3500 4500 3500 3500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 5000 3500 3500 3500 3500 4000 4500 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 4000 3500 4500 3500 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 4000 4000 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4500 4000 4000 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 3500 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +4000 4500 3000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4500 4500 3500 3500 4500 3500 3500 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 4000 4000 3500 3500 4500 3500 4000 3500 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +3500 3500 4000 3500 3500 3500 4500 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 3500 3500 4000 3500 3500 3500 3500 4500 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4000 4000 3500 3500 3500 4000 3500 4000 4000 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3000 3500 4500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 3000 3500 3500 3500 4500 3500 4000 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +4000 3500 4000 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3000 3500 3500 3000 4500 3500 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3500 3500 3500 3500 3000 3000 3500 3500 5000 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 4000 3000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3000 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 4500 3500 4000 4000 3500 3500 3500 3500 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3000 3500 4000 5000 3500 3500 3500 3500 3500 3000 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3500 3500 3500 5000 4000 3500 3000 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3000 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +3500 3500 3000 3500 3500 3500 3500 4500 3500 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +5000 4000 4000 3500 3500 3000 3500 4500 4000 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 3500 3500 4000 3500 3000 3500 3500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +4500 3500 4000 4500 3500 3500 3500 4500 3500 4500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4500 3500 4000 3500 4000 3500 3500 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 4000 3500 3500 4000 3500 3500 4000 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +4000 4000 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 5000 3500 4500 3500 3500 3500 3500 4000 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +3500 3500 3500 3500 3500 4500 3000 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +2500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 5000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3500 4000 4000 3500 5000 3500 3500 3500 3500 3000 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +3000 4000 3500 3500 3500 3000 3000 3500 4500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3000 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 4000 3500 3500 3500 4500 3500 3000 3500 4000 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 3500 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +4000 4500 3500 4000 3000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +3500 3500 3000 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +4000 3500 3500 3000 4500 3500 3500 4500 4500 4000 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3000 3500 3000 3500 4000 4000 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3500 4000 3500 3500 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +4500 4000 3500 3500 4500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +3500 3500 3000 3500 3500 3500 3500 4000 4000 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +4500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +5000 3500 3500 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 2500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +3500 3500 3500 3500 3500 3500 4000 3500 4000 3500 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +4000 3500 3500 4000 3500 3500 3500 3500 3000 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 3500 3000 3500 4000 3000 3500 3500 4000 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 4000 3500 4000 3500 3500 3500 4000 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +4000 3500 3500 3500 4000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 4500 3500 4000 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +3500 3500 3500 3000 3500 3500 3000 4500 3500 4500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +4500 4500 3500 4000 3500 3500 3500 4000 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 4000 3500 3500 3500 3500 4000 3500 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 3500 3000 3500 3500 3500 3500 4000 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4000 3500 4500 3500 3500 3500 3500 3000 3500 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 4500 3500 3500 3500 3500 3500 3500 3000 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 4000 4500 3500 3500 3500 3500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 4500 3500 3500 3000 3500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +4000 3000 3500 3500 3500 3500 2500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3500 4000 3500 4000 3500 3500 3500 3500 3500 4000 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3000 4000 4000 3500 3500 4500 3500 4500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3000 3500 3500 3500 3500 3500 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +3500 3500 4000 4000 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 3500 3000 3500 3500 4000 3500 4500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +4000 3500 3500 4000 4000 3500 3500 4000 3500 3500 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 3500 3000 3500 4000 3500 3500 4500 3500 3000 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 4000 4500 3500 4000 3500 3500 4500 4000 3500 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +3500 3500 3500 3500 3500 3500 3500 5000 4000 4000 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4500 3500 3500 3500 3500 3500 4500 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +4000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 4000 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3000 3500 3500 4000 4000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 3500 3500 3500 3500 4000 3500 3500 4000 4500 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +3500 4000 3500 4500 3500 4000 3500 3500 4500 4000 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4000 3500 3500 3500 4000 3500 3500 3500 4000 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4500 3500 4000 3500 5000 3000 4000 3500 3500 3500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +4000 3500 4000 3500 3500 3000 4000 3500 3500 4500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4500 3500 3500 3500 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 3500 3500 4000 4000 3500 3500 4500 4000 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +3500 3500 4000 3500 4000 3500 3500 3500 3500 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 4000 3500 3000 4000 4000 3500 4000 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3000 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 4000 3500 3500 3500 3500 3500 4500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4000 3000 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3000 3500 3000 3500 3500 3500 4000 3500 4500 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 4000 3500 3500 4500 3500 4000 3500 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 3500 3000 3500 3500 3500 4000 3000 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 4500 3500 3500 3500 3500 5000 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3000 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3000 3500 3000 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +3500 4000 3500 4000 4000 4000 3500 4000 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +4000 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 4000 3500 5000 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 4500 4500 3500 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3500 3500 3500 5000 3500 4000 3500 4000 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3000 3500 3500 4500 4000 3500 3000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3000 3500 3500 4000 4500 4000 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +3500 3500 3500 3500 3500 4000 3500 4500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 4000 3500 3500 3500 4000 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +4000 3500 3500 3500 4500 4500 3500 3500 3500 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3500 3500 3500 4000 3500 3500 3500 3000 4000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3000 3500 3500 4500 4000 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3000 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 3500 3500 3500 4000 3500 4000 3500 3500 3500 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 4500 3500 4000 4500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 4500 3000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3000 3500 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +5000 3500 3500 4500 4000 3500 3500 3500 3500 4000 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 4000 3000 3500 3500 3500 3500 3500 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 3500 4000 3500 3500 3000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 4500 3500 3500 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3000 4000 4000 4000 3500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +3500 3500 3500 3500 3500 3500 3500 4000 4500 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +4000 4000 4500 3500 3000 4000 3500 4000 4000 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 +3500 3500 3500 3500 3500 4000 4000 3500 3500 3500 diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index 64d00e745d..833791850d 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os import typing as t import zipfile diff --git a/tests/integration/filesystem_blueprint/__init__.py b/tests/integration/filesystem_blueprint/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/integration/filesystem_blueprint/__init__.py +++ b/tests/integration/filesystem_blueprint/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/integration/filesystem_blueprint/test_filesystem_endpoints.py b/tests/integration/filesystem_blueprint/test_filesystem_endpoints.py index a547313896..ac1e9a36ff 100644 --- a/tests/integration/filesystem_blueprint/test_filesystem_endpoints.py +++ b/tests/integration/filesystem_blueprint/test_filesystem_endpoints.py @@ -1,10 +1,22 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import operator import re -import shutil import typing as t from pathlib import Path +from pytest_mock import MockerFixture from starlette.testclient import TestClient from tests.integration.conftest import RESOURCES_DIR @@ -81,6 +93,7 @@ def test_lifecycle( client: TestClient, user_access_token: str, admin_access_token: str, + mocker: MockerFixture, ) -> None: """ Test the lifecycle of the filesystem endpoints. @@ -90,7 +103,7 @@ def test_lifecycle( caplog: pytest caplog fixture. client: test client (tests.integration.conftest.client_fixture). user_access_token: access token of a classic user (tests.integration.conftest.user_access_token_fixture). - admin_access_token: access token of an admin user (tests.integration.conftest.admin_access_token_fixture). + admin_access_token: access token of an admin user (tests.integration.conftestin_access_token_fixture). """ # NOTE: all the following paths are based on the configuration defined in the app_fixture. archive_dir = tmp_path / "archive_dir" @@ -153,26 +166,25 @@ def test_lifecycle( err_count += 1 # Known filesystem + mocker.patch("shutil.disk_usage", return_value=(100, 200, 300)) res = client.get("/v1/filesystem/ws", headers=user_headers) assert res.status_code == 200, res.json() actual = sorted(res.json(), key=operator.itemgetter("name")) - # Both mount point are in the same filesystem, which is the `tmp_path` filesystem - total_bytes, used_bytes, free_bytes = shutil.disk_usage(tmp_path) expected = [ { "name": "default", "path": str(default_workspace), - "total_bytes": total_bytes, - "used_bytes": used_bytes, - "free_bytes": free_bytes, + "total_bytes": 100, + "used_bytes": 200, + "free_bytes": 300, "message": AnyDiskUsagePercent(), }, { "name": "ext", "path": str(ext_workspace_path), - "total_bytes": total_bytes, - "used_bytes": used_bytes, - "free_bytes": free_bytes, + "total_bytes": 100, + "used_bytes": 200, + "free_bytes": 300, "message": AnyDiskUsagePercent(), }, ] @@ -194,9 +206,9 @@ def test_lifecycle( expected = { "name": "default", "path": str(default_workspace), - "total_bytes": total_bytes, - "used_bytes": used_bytes, - "free_bytes": free_bytes, + "total_bytes": 100, + "used_bytes": 200, + "free_bytes": 300, "message": AnyDiskUsagePercent(), } assert actual == expected @@ -256,8 +268,8 @@ def test_lifecycle( { "path": str(ext_workspace_path / "STA-mini"), "file_type": "directory", - "file_count": IntegerRange(900, 1000), # 918 - "size_bytes": IntegerRange(7_000_000, 9_000_000), # nt: 7_741_619, posix: 8_597_683 + "file_count": IntegerRange(1000, 1100), # 1043 + "size_bytes": IntegerRange(9_000_000, 11_000_000), # 10_428_620 "created": AnyIsoDateTime(), "accessed": AnyIsoDateTime(), "modified": AnyIsoDateTime(), @@ -415,7 +427,7 @@ def test_size_of_studies( sizes.append(actual[0]["size_bytes"]) # Check the sizes - # The size of the new study should be between 140 and 300 KB. - # The suze of 'STA-mini' should be between 7 and 9 MB. + # The size of the new study should be between 140 and 350 KB. + # The suze of 'STA-mini' should be between 9 and 11 MB. sizes.sort() - assert sizes == [IntegerRange(140_000, 300_000), IntegerRange(7_000_000, 9_000_000)] + assert sizes == [IntegerRange(140_000, 350_000), IntegerRange(9_000_000, 11_000_000)] diff --git a/tests/integration/filesystem_blueprint/test_model.py b/tests/integration/filesystem_blueprint/test_model.py index 3c21340363..d26bdb02cb 100644 --- a/tests/integration/filesystem_blueprint/test_model.py +++ b/tests/integration/filesystem_blueprint/test_model.py @@ -1,9 +1,23 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import asyncio import datetime import re import shutil from pathlib import Path +from pytest_mock import MockerFixture + from antarest.core.filesystem_blueprint import FileInfoDTO, FilesystemDTO, MountPointDTO @@ -16,7 +30,7 @@ def test_init(self) -> None: "common": "/path/to/workspaces/common_studies", }, } - dto = FilesystemDTO.parse_obj(example) + dto = FilesystemDTO.model_validate(example) assert dto.name == example["name"] assert dto.mount_dirs["default"] == Path(example["mount_dirs"]["default"]) assert dto.mount_dirs["common"] == Path(example["mount_dirs"]["common"]) @@ -32,7 +46,7 @@ def test_init(self) -> None: "free_bytes": 1e9 - 0.6e9, "message": f"{0.6e9 / 1e9:%} used", } - dto = MountPointDTO.parse_obj(example) + dto = MountPointDTO.model_validate(example) assert dto.name == example["name"] assert dto.path == Path(example["path"]) assert dto.total_bytes == example["total_bytes"] @@ -51,15 +65,16 @@ def test_from_path__missing_file(self) -> None: assert dto.free_bytes == 0 assert dto.message.startswith("N/A:"), dto.message - def test_from_path__file(self, tmp_path: Path) -> None: + def test_from_path__file(self, tmp_path: Path, mocker: MockerFixture) -> None: + mocker.patch("shutil.disk_usage", return_value=(100, 200, 300)) + name = "foo" dto = asyncio.run(MountPointDTO.from_path(name, tmp_path)) - total_bytes, used_bytes, free_bytes = shutil.disk_usage(tmp_path) assert dto.name == name assert dto.path == tmp_path - assert dto.total_bytes == total_bytes - assert dto.used_bytes == used_bytes - assert dto.free_bytes == free_bytes + assert dto.total_bytes == 100 + assert dto.used_bytes == 200 + assert dto.free_bytes == 300 assert re.fullmatch(r"\d+(?:\.\d+)?% used", dto.message), dto.message @@ -75,7 +90,7 @@ def test_init(self) -> None: "accessed": "2024-01-11T17:54:09", "message": "OK", } - dto = FileInfoDTO.parse_obj(example) + dto = FileInfoDTO.model_validate(example) assert dto.path == Path(example["path"]) assert dto.file_type == example["file_type"] assert dto.file_count == example["file_count"] diff --git a/tests/integration/launcher_blueprint/__init__.py b/tests/integration/launcher_blueprint/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/integration/launcher_blueprint/__init__.py +++ b/tests/integration/launcher_blueprint/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/integration/launcher_blueprint/test_launcher_local.py b/tests/integration/launcher_blueprint/test_launcher_local.py index 08d1175889..67fc421324 100644 --- a/tests/integration/launcher_blueprint/test_launcher_local.py +++ b/tests/integration/launcher_blueprint/test_launcher_local.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import http import pytest @@ -64,10 +76,8 @@ def test_get_launcher_nb_cores( ) assert res.status_code == http.HTTPStatus.UNPROCESSABLE_ENTITY, res.json() actual = res.json() - assert actual == { - "description": "Unknown solver configuration: 'unknown'", - "exception": "UnknownSolverConfig", - } + assert actual["description"] == "Input should be 'slurm', 'local' or 'default'" + assert actual["exception"] == "RequestValidationError" def test_get_launcher_time_limit( self, @@ -118,7 +128,46 @@ def test_get_launcher_time_limit( ) assert res.status_code == http.HTTPStatus.UNPROCESSABLE_ENTITY, res.json() actual = res.json() - assert actual == { - "description": "Unknown solver configuration: 'unknown'", - "exception": "UnknownSolverConfig", - } + assert actual["description"] == "Input should be 'slurm', 'local' or 'default'" + assert actual["exception"] == "RequestValidationError" + + def test_jobs_permissions( + self, + client: TestClient, + user_access_token: str, + admin_access_token: str, + ) -> None: + # create an admin study with no permissions + res = client.post( + "/v1/studies", + headers={"Authorization": f"Bearer {admin_access_token}"}, + params={"name": "study_admin"}, + ) + res.raise_for_status() + # get the study_id + study_id = res.json() + + # launch a job with the admin user + res = client.post( + f"/v1/launcher/run/{study_id}", + headers={"Authorization": f"Bearer {admin_access_token}"}, + json={"launcher": "local"}, + ) + res.raise_for_status() + job_id = res.json()["job_id"] + + # check that the user cannot see the job + res = client.get( + "/v1/launcher/jobs", + headers={"Authorization": f"Bearer {user_access_token}"}, + ) + res.raise_for_status() + assert job_id not in [job.get("id") for job in res.json()] + + # check that the admin can see the job + res = client.get( + "/v1/launcher/jobs", + headers={"Authorization": f"Bearer {admin_access_token}"}, + ) + res.raise_for_status() + assert job_id in [job.get("id") for job in res.json()] diff --git a/tests/integration/launcher_blueprint/test_solver_versions.py b/tests/integration/launcher_blueprint/test_solver_versions.py index 5c6c0166f9..f4634a497e 100644 --- a/tests/integration/launcher_blueprint/test_solver_versions.py +++ b/tests/integration/launcher_blueprint/test_solver_versions.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Sequence from unittest.mock import patch diff --git a/tests/integration/prepare_proxy.py b/tests/integration/prepare_proxy.py index 0556df8a87..47e5a33294 100644 --- a/tests/integration/prepare_proxy.py +++ b/tests/integration/prepare_proxy.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import typing as t @@ -78,7 +90,7 @@ def copy_study_and_upgrade(self, ref_study_id: str, target_version: int) -> str: task_id = res.json() assert task_id - task = wait_task_completion(self.client, self.user_access_token, task_id, timeout=20) + task = wait_task_completion(self.client, self.user_access_token, task_id, base_timeout=20) assert task.status == TaskStatus.COMPLETED return study_id @@ -161,7 +173,7 @@ def generate_snapshot(self, variant_id: str, denormalize: bool = False, from_scr task_id = res.json() assert task_id - task = wait_task_completion(self.client, self.user_access_token, task_id, timeout=20) + task = wait_task_completion(self.client, self.user_access_token, task_id, base_timeout=20) assert task.status == TaskStatus.COMPLETED def create_area(self, study_id: str, *, name: str, country: str = "FR") -> t.Dict[str, t.Any]: diff --git a/tests/integration/raw_studies_blueprint/__init__.py b/tests/integration/raw_studies_blueprint/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/integration/raw_studies_blueprint/__init__.py +++ b/tests/integration/raw_studies_blueprint/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/integration/raw_studies_blueprint/assets/__init__.py b/tests/integration/raw_studies_blueprint/assets/__init__.py index 773f16ec60..3fff24b6fe 100644 --- a/tests/integration/raw_studies_blueprint/assets/__init__.py +++ b/tests/integration/raw_studies_blueprint/assets/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path ASSETS_DIR = Path(__file__).parent.resolve() diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-01-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-01-all.result.tsv new file mode 100644 index 0000000000..5232984b37 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-01-all.result.tsv @@ -0,0 +1,15 @@ +area timeId time OV. COST EXP OP. COST EXP OP. COST STD OP. COST MIN OP. COST MAX MRG. PRICE EXP MRG. PRICE STD MRG. PRICE MIN MRG. PRICE MAX CO2 EMIS. EXP BALANCE EXP BALANCE STD BALANCE MIN BALANCE MAX ROW BAL. VALUES PSP EXP MISC. NDG EXP LOAD EXP LOAD STD LOAD MIN LOAD MAX H. ROR EXP H. ROR STD H. ROR MIN H. ROR MAX WIND EXP WIND STD WIND MIN WIND MAX SOLAR EXP SOLAR STD SOLAR MIN SOLAR MAX NUCLEAR EXP NUCLEAR STD NUCLEAR MIN NUCLEAR MAX LIGNITE EXP LIGNITE STD LIGNITE MIN LIGNITE MAX COAL EXP COAL STD COAL MIN COAL MAX GAS EXP GAS STD GAS MIN GAS MAX OIL EXP OIL STD OIL MIN OIL MAX MIX. FUEL EXP MIX. FUEL STD MIX. FUEL MIN MIX. FUEL MAX MISC. DTG EXP MISC. DTG STD MISC. DTG MIN MISC. DTG MAX H. STOR EXP H. STOR STD H. STOR MIN H. STOR MAX H. PUMP EXP H. PUMP STD H. PUMP MIN H. PUMP MAX H. LEV EXP H. LEV STD H. LEV MIN H. LEV MAX H. INFL EXP H. INFL STD H. INFL MIN H. INFL MAX H. OVFL EXP H. OVFL STD H. OVFL MIN H. OVFL MAX H. VAL EXP H. VAL STD H. VAL MIN H. VAL MAX H. COST EXP H. COST STD H. COST MIN H. COST MAX UNSP. ENRG EXP UNSP. ENRG STD UNSP. ENRG MIN UNSP. ENRG MAX SPIL. ENRG EXP SPIL. ENRG STD SPIL. ENRG MIN SPIL. ENRG MAX LOLD EXP LOLD STD LOLD MIN LOLD MAX LOLP VALUES AVL DTG EXP AVL DTG STD AVL DTG MIN AVL DTG MAX DTG MRG EXP DTG MRG STD DTG MRG MIN DTG MRG MAX MAX MRG EXP MAX MRG STD MAX MRG MIN MAX MRG MAX NP COST EXP NP COST STD NP COST MIN NP COST MAX NODU EXP NODU STD NODU MIN NODU MAX +de 1 2030 282000.0 282000.0 0.0 282000.0 282000.0 11.66 0.0 11.66 11.66 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27600.0 0.0 27600.0 27600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27600.0 0.0 27600.0 27600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 404400.0 0.0 404400.0 404400.0 404400.0 0.0 404400.0 404400.0 0.0 0.0 0.0 0.0 26.0 0.0 26.0 26.0 +de 2 2030 1252000.0 1252000.0 0.0 1252000.0 1252000.0 23.33 0.0 23.33 23.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 85200.0 0.0 85200.0 85200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 85200.0 0.0 85200.0 85200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 346800.0 0.0 346800.0 346800.0 346800.0 0.0 346800.0 346800.0 0.0 0.0 0.0 0.0 55.0 0.0 55.0 55.0 +de 3 2030 2910000.0 2910000.0 0.0 2910000.0 2910000.0 35.0 0.0 35.0 35.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 142800.0 0.0 142800.0 142800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 142800.0 0.0 142800.0 142800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 289200.0 0.0 289200.0 289200.0 289200.0 0.0 289200.0 289200.0 0.0 0.0 0.0 0.0 83.0 0.0 83.0 83.0 +de 4 2030 5256000.0 5256000.0 0.0 5256000.0 5256000.0 46.67 0.0 46.67 46.67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200400.0 0.0 200400.0 200400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200400.0 0.0 200400.0 200400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 231600.0 0.0 231600.0 231600.0 231600.0 0.0 231600.0 231600.0 0.0 0.0 0.0 0.0 111.0 0.0 111.0 111.0 +de 5 2030 8290000.0 8290000.0 0.0 8290000.0 8290000.0 58.33 0.0 58.33 58.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 258000.0 0.0 258000.0 258000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 258000.0 0.0 258000.0 258000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 174000.0 0.0 174000.0 174000.0 174000.0 0.0 174000.0 174000.0 0.0 0.0 0.0 0.0 139.0 0.0 139.0 139.0 +de 6 2030 12018000.0 12018000.0 0.0 12018000.0 12018000.0 71.67 0.0 71.67 71.67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 315600.0 0.0 315600.0 315600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 315600.0 0.0 315600.0 315600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 116400.0 0.0 116400.0 116400.0 116400.0 0.0 116400.0 116400.0 0.0 0.0 0.0 0.0 170.0 0.0 170.0 170.0 +de 7 2030 16444000.0 16444000.0 0.0 16444000.0 16444000.0 83.33 0.0 83.33 83.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 373200.0 0.0 373200.0 373200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 373200.0 0.0 373200.0 373200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 58800.0 0.0 58800.0 58800.0 58800.0 0.0 58800.0 58800.0 0.0 0.0 0.0 0.0 199.0 0.0 199.0 199.0 +es 1 2030 282000.0 282000.0 0.0 282000.0 282000.0 11.66 0.0 11.66 11.66 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27600.0 0.0 27600.0 27600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27600.0 0.0 27600.0 27600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 404400.0 0.0 404400.0 404400.0 404400.0 0.0 404400.0 404400.0 0.0 0.0 0.0 0.0 26.0 0.0 26.0 26.0 +es 2 2030 1252000.0 1252000.0 0.0 1252000.0 1252000.0 23.33 0.0 23.33 23.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 85200.0 0.0 85200.0 85200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 85200.0 0.0 85200.0 85200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 346800.0 0.0 346800.0 346800.0 346800.0 0.0 346800.0 346800.0 0.0 0.0 0.0 0.0 55.0 0.0 55.0 55.0 +es 3 2030 2910000.0 2910000.0 0.0 2910000.0 2910000.0 35.0 0.0 35.0 35.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 142800.0 0.0 142800.0 142800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 142800.0 0.0 142800.0 142800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 289200.0 0.0 289200.0 289200.0 289200.0 0.0 289200.0 289200.0 0.0 0.0 0.0 0.0 83.0 0.0 83.0 83.0 +es 4 2030 5256000.0 5256000.0 0.0 5256000.0 5256000.0 46.67 0.0 46.67 46.67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200400.0 0.0 200400.0 200400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200400.0 0.0 200400.0 200400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 231600.0 0.0 231600.0 231600.0 231600.0 0.0 231600.0 231600.0 0.0 0.0 0.0 0.0 111.0 0.0 111.0 111.0 +es 5 2030 8290000.0 8290000.0 0.0 8290000.0 8290000.0 58.33 0.0 58.33 58.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 258000.0 0.0 258000.0 258000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 258000.0 0.0 258000.0 258000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 174000.0 0.0 174000.0 174000.0 174000.0 0.0 174000.0 174000.0 0.0 0.0 0.0 0.0 139.0 0.0 139.0 139.0 +es 6 2030 12018000.0 12018000.0 0.0 12018000.0 12018000.0 71.67 0.0 71.67 71.67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 315600.0 0.0 315600.0 315600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 315600.0 0.0 315600.0 315600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 116400.0 0.0 116400.0 116400.0 116400.0 0.0 116400.0 116400.0 0.0 0.0 0.0 0.0 170.0 0.0 170.0 170.0 +es 7 2030 16444000.0 16444000.0 0.0 16444000.0 16444000.0 83.33 0.0 83.33 83.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 373200.0 0.0 373200.0 373200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 373200.0 0.0 373200.0 373200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 58800.0 0.0 58800.0 58800.0 58800.0 0.0 58800.0 58800.0 0.0 0.0 0.0 0.0 199.0 0.0 199.0 199.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-02-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-02-all.result.tsv new file mode 100644 index 0000000000..1cd8562aac --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-02-all.result.tsv @@ -0,0 +1,10 @@ +area cluster timeId time production NODU NP Cost - Euro +de 01_solar 1 2030 315000.0 167.0 0.0 +de 02_wind_on 1 2030 275000.0 147.0 0.0 +de 03_wind_off 1 2030 235000.0 127.0 0.0 +de 04_res 1 2030 195000.0 107.0 0.0 +de 05_nuclear 1 2030 155000.0 87.0 0.0 +de 06_coal 1 2030 115000.0 67.0 0.0 +de 07_gas 1 2030 75000.0 47.0 0.0 +de 08_non-res 1 2030 35000.0 27.0 0.0 +de 09_hydro_pump 1 2030 2800.0 7.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-02.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-02.result.tsv index 54ce752e07..e8f08094b2 100644 --- a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-02.result.tsv +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-02.result.tsv @@ -1,1009 +1,9073 @@ -area mcYear timeId time 01_SOLAR MWH 02_WIND_ON MWH 03_WIND_OFF MWH 04_RES MWH 05_NUCLEAR MWH 06_COAL MWH 07_GAS MWH 08_NON-RES MWH 09_HYDRO_PUMP MWH 01_SOLAR NP COST - EURO 02_WIND_ON NP COST - EURO 03_WIND_OFF NP COST - EURO 04_RES NP COST - EURO 05_NUCLEAR NP COST - EURO 06_COAL NP COST - EURO 07_GAS NP COST - EURO 08_NON-RES NP COST - EURO 09_HYDRO_PUMP NP COST - EURO 01_SOLAR NODU 02_WIND_ON NODU 03_WIND_OFF NODU 04_RES NODU 05_NUCLEAR NODU 06_COAL NODU 07_GAS NODU 08_NON-RES NODU 09_HYDRO_PUMP NODU -de 1 1 2030 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 2 2030 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 3 2030 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 4 2030 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 5 2030 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 6 2030 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 7 2030 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 8 2030 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 9 2030 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 10 2030 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 11 2030 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 12 2030 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 13 2030 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 14 2030 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 15 2030 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 16 2030 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 17 2030 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 18 2030 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 19 2030 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 20 2030 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 21 2030 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 22 2030 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 23 2030 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 24 2030 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 25 2030 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 26 2030 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 27 2030 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 28 2030 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 29 2030 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 30 2030 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 31 2030 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 32 2030 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 33 2030 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 34 2030 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 35 2030 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 36 2030 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 37 2030 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 38 2030 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 39 2030 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 40 2030 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 41 2030 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 42 2030 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 43 2030 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 44 2030 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 45 2030 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 46 2030 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 47 2030 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 48 2030 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 49 2030 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 50 2030 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 51 2030 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 52 2030 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 53 2030 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 54 2030 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 55 2030 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 56 2030 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 57 2030 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 58 2030 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 59 2030 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 60 2030 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 61 2030 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 62 2030 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 63 2030 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 64 2030 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 65 2030 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 66 2030 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 67 2030 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 68 2030 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 69 2030 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 70 2030 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 71 2030 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 72 2030 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 73 2030 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 74 2030 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 75 2030 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 76 2030 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 77 2030 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 78 2030 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 79 2030 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 80 2030 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 81 2030 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 82 2030 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 83 2030 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 84 2030 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 85 2030 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 86 2030 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 87 2030 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 88 2030 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 89 2030 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 90 2030 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 91 2030 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 92 2030 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 93 2030 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 94 2030 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 95 2030 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 96 2030 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 97 2030 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 98 2030 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 99 2030 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 100 2030 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 101 2030 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 102 2030 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 103 2030 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 104 2030 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 105 2030 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 106 2030 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 107 2030 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 108 2030 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 109 2030 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 110 2030 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 111 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 112 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 113 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 114 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 115 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 116 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 117 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 118 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 119 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 120 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 121 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 122 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 123 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 124 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 125 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 126 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 127 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 128 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 129 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 130 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 131 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 132 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 133 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 134 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 135 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 136 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 137 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 138 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 139 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 140 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 141 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 142 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 143 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 144 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 145 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 146 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 147 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 148 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 149 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 150 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 151 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 152 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 153 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 154 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 155 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 156 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 157 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 158 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 159 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 160 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 161 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 162 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 163 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 164 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 165 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 166 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 167 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 168 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 169 2030 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 170 2030 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 171 2030 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 172 2030 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 173 2030 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 174 2030 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 175 2030 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 176 2030 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 177 2030 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 178 2030 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 179 2030 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 180 2030 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 181 2030 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 182 2030 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 183 2030 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 184 2030 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 185 2030 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 186 2030 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 187 2030 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 188 2030 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 189 2030 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 190 2030 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 191 2030 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 192 2030 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 193 2030 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 194 2030 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 195 2030 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 196 2030 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 197 2030 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 198 2030 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 199 2030 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 200 2030 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 201 2030 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 202 2030 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 203 2030 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 204 2030 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 205 2030 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 206 2030 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 207 2030 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 208 2030 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 209 2030 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 210 2030 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 211 2030 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 212 2030 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 213 2030 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 214 2030 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 215 2030 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 216 2030 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 217 2030 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 218 2030 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 219 2030 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 220 2030 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 221 2030 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 222 2030 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 223 2030 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 224 2030 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 225 2030 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 226 2030 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 227 2030 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 228 2030 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 229 2030 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -de 1 230 2030 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 231 2030 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 232 2030 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 233 2030 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 234 2030 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 235 2030 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 236 2030 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 237 2030 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 238 2030 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 239 2030 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 240 2030 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 241 2030 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 242 2030 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 243 2030 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 244 2030 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 245 2030 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 246 2030 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 247 2030 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 248 2030 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 249 2030 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -de 1 250 2030 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 251 2030 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 252 2030 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 253 2030 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 254 2030 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 255 2030 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 256 2030 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 257 2030 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 258 2030 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 259 2030 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 260 2030 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 261 2030 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 262 2030 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 263 2030 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 264 2030 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 265 2030 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 266 2030 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 267 2030 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 268 2030 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 269 2030 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -de 1 270 2030 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 271 2030 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 272 2030 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 273 2030 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 274 2030 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 275 2030 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 276 2030 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 277 2030 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 278 2030 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 279 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 280 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 281 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 282 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 283 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 284 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 285 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 286 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 287 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 288 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 289 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -de 1 290 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 291 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 292 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 293 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 294 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 295 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 296 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 297 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 298 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 299 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 300 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 301 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 302 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 303 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 304 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 305 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 306 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 307 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 308 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 309 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -de 1 310 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 311 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 312 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 313 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 314 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 315 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 316 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 317 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 318 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 319 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 320 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 321 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 322 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 323 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 324 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 325 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 326 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 327 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 328 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 329 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -de 1 330 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 331 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 332 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 333 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 334 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 335 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -de 1 336 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 1 2030 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 2 2030 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 3 2030 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 4 2030 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 5 2030 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 6 2030 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 7 2030 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 8 2030 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 9 2030 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 10 2030 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 11 2030 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 12 2030 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 13 2030 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 14 2030 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 15 2030 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 16 2030 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 17 2030 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 18 2030 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 19 2030 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 20 2030 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 21 2030 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 22 2030 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 23 2030 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 24 2030 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 25 2030 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 26 2030 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 27 2030 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 28 2030 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 29 2030 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 30 2030 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 31 2030 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 32 2030 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 33 2030 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 34 2030 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 35 2030 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 36 2030 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 37 2030 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 38 2030 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 39 2030 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 40 2030 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 41 2030 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 42 2030 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 43 2030 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 44 2030 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 45 2030 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 46 2030 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 47 2030 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 48 2030 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 49 2030 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 50 2030 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 51 2030 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 52 2030 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 53 2030 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 54 2030 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 55 2030 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 56 2030 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 57 2030 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 58 2030 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 59 2030 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 60 2030 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 61 2030 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 62 2030 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 63 2030 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 64 2030 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 65 2030 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 66 2030 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 67 2030 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 68 2030 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 69 2030 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 70 2030 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 71 2030 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 72 2030 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 73 2030 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 74 2030 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 75 2030 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 76 2030 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 77 2030 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 78 2030 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 79 2030 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 80 2030 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 81 2030 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 82 2030 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 83 2030 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 84 2030 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 85 2030 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 86 2030 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 87 2030 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 88 2030 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 89 2030 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 90 2030 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 91 2030 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 92 2030 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 93 2030 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 94 2030 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 95 2030 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 96 2030 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 97 2030 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 98 2030 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 99 2030 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 100 2030 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 101 2030 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 102 2030 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 103 2030 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 104 2030 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 105 2030 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 106 2030 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 107 2030 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 108 2030 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 109 2030 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 110 2030 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 111 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 112 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 113 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 114 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 115 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 116 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 117 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 118 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 119 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 120 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 121 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 122 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 123 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 124 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 125 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 126 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 127 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 128 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 129 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 130 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 131 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 132 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 133 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 134 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 135 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 136 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 137 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 138 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 139 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 140 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 141 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 142 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 143 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 144 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 145 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 146 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 147 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 148 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 149 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 150 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 151 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 152 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 153 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 154 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 155 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 156 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 157 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 158 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 159 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 160 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 161 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 162 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 163 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 164 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 165 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 166 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 167 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 168 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 169 2030 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 170 2030 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 171 2030 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 172 2030 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 173 2030 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 174 2030 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 175 2030 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 176 2030 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 177 2030 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 178 2030 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 179 2030 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 180 2030 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 181 2030 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 182 2030 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 183 2030 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 184 2030 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 185 2030 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 186 2030 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 187 2030 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 188 2030 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 189 2030 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 190 2030 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 191 2030 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 192 2030 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 193 2030 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 194 2030 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 195 2030 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 196 2030 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 197 2030 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 198 2030 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 199 2030 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 200 2030 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 201 2030 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 202 2030 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 203 2030 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 204 2030 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 205 2030 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 206 2030 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 207 2030 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 208 2030 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 209 2030 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 210 2030 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 211 2030 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 212 2030 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 213 2030 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 214 2030 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 215 2030 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 216 2030 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 217 2030 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 218 2030 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 219 2030 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 220 2030 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 221 2030 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 222 2030 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 223 2030 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 224 2030 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 225 2030 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 226 2030 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 227 2030 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 228 2030 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 229 2030 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -fr 1 230 2030 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 231 2030 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 232 2030 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 233 2030 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 234 2030 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 235 2030 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 236 2030 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 237 2030 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 238 2030 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 239 2030 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 240 2030 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 241 2030 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 242 2030 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 243 2030 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 244 2030 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 245 2030 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 246 2030 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 247 2030 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 248 2030 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 249 2030 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -fr 1 250 2030 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 251 2030 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 252 2030 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 253 2030 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 254 2030 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 255 2030 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 256 2030 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 257 2030 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 258 2030 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 259 2030 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 260 2030 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 261 2030 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 262 2030 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 263 2030 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 264 2030 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 265 2030 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 266 2030 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 267 2030 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 268 2030 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 269 2030 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -fr 1 270 2030 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 271 2030 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 272 2030 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 273 2030 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 274 2030 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 275 2030 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 276 2030 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 277 2030 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 278 2030 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 279 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 280 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 281 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 282 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 283 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 284 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 285 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 286 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 287 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 288 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 289 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -fr 1 290 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 291 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 292 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 293 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 294 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 295 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 296 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 297 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 298 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 299 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 300 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 301 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 302 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 303 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 304 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 305 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 306 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 307 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 308 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 309 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -fr 1 310 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 311 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 312 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 313 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 314 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 315 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 316 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 317 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 318 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 319 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 320 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 321 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 322 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 323 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 324 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 325 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 326 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 327 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 328 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 329 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -fr 1 330 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 331 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 332 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 333 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 334 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 335 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -fr 1 336 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 1 2030 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 2 2030 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 3 2030 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 4 2030 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 5 2030 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 6 2030 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 7 2030 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 8 2030 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 9 2030 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 10 2030 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 11 2030 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 12 2030 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 13 2030 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 14 2030 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 15 2030 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 16 2030 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 17 2030 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 18 2030 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 19 2030 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 20 2030 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 21 2030 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 22 2030 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 23 2030 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 24 2030 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 25 2030 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 26 2030 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 27 2030 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 28 2030 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 29 2030 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 30 2030 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 31 2030 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 32 2030 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 33 2030 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 34 2030 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 35 2030 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 36 2030 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 37 2030 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 38 2030 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 39 2030 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 40 2030 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 41 2030 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 42 2030 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 43 2030 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 44 2030 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 45 2030 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 46 2030 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 47 2030 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 48 2030 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 49 2030 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 50 2030 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 51 2030 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 52 2030 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 53 2030 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 54 2030 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 55 2030 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 56 2030 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 57 2030 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 58 2030 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 59 2030 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 60 2030 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 61 2030 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 62 2030 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 63 2030 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 64 2030 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 65 2030 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 66 2030 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 67 2030 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 68 2030 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 69 2030 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 70 2030 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 71 2030 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 72 2030 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 73 2030 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 74 2030 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 75 2030 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 76 2030 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 77 2030 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 78 2030 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 79 2030 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 80 2030 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 81 2030 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 82 2030 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 83 2030 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 84 2030 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 85 2030 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 86 2030 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 87 2030 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 88 2030 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 89 2030 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 90 2030 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 91 2030 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 92 2030 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 93 2030 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 94 2030 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 95 2030 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 96 2030 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 97 2030 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 98 2030 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 99 2030 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 100 2030 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 101 2030 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 102 2030 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 103 2030 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 104 2030 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 105 2030 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 106 2030 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 107 2030 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 108 2030 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 109 2030 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 110 2030 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 111 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 112 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 113 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 114 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 115 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 116 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 117 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 118 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 119 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 120 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 121 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 122 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 123 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 124 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 125 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 126 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 127 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 128 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 129 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 130 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 131 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 132 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 133 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 134 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 135 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 136 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 137 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 138 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 139 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 140 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 141 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 142 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 143 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 144 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 145 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 146 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 147 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 148 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 149 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 150 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 151 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 152 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 153 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 154 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 155 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 156 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 157 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 158 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 159 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 160 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 161 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 162 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 163 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 164 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 165 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 166 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 167 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 168 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 169 2030 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 170 2030 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 171 2030 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 172 2030 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 173 2030 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 174 2030 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 175 2030 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 176 2030 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 177 2030 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 178 2030 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 179 2030 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 180 2030 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 181 2030 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 182 2030 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 183 2030 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 184 2030 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 185 2030 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 186 2030 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 187 2030 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 188 2030 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 189 2030 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 190 2030 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 191 2030 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 192 2030 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 193 2030 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 194 2030 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 195 2030 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 196 2030 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 197 2030 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 198 2030 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 199 2030 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 200 2030 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 201 2030 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 202 2030 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 203 2030 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 204 2030 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 205 2030 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 206 2030 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 207 2030 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 208 2030 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 209 2030 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 210 2030 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 211 2030 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 212 2030 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 213 2030 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 214 2030 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 215 2030 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 216 2030 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 217 2030 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 218 2030 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 219 2030 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 220 2030 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 221 2030 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 222 2030 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 223 2030 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 224 2030 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 225 2030 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 226 2030 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 227 2030 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 228 2030 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 229 2030 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 -it 1 230 2030 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 231 2030 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 232 2030 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 233 2030 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 234 2030 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 235 2030 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 236 2030 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 237 2030 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 238 2030 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 239 2030 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 240 2030 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 241 2030 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 242 2030 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 243 2030 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 244 2030 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 245 2030 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 246 2030 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 247 2030 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 248 2030 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 249 2030 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 -it 1 250 2030 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 251 2030 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 252 2030 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 253 2030 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 254 2030 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 255 2030 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 256 2030 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 257 2030 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 258 2030 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 259 2030 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 260 2030 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 261 2030 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 262 2030 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 263 2030 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 264 2030 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 265 2030 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 266 2030 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 267 2030 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 268 2030 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 269 2030 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 -it 1 270 2030 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 271 2030 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 272 2030 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 273 2030 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 274 2030 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 275 2030 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 276 2030 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 277 2030 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 278 2030 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 279 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 280 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 281 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 282 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 283 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 284 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 285 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 286 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 287 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 288 2030 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 289 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 -it 1 290 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 291 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 292 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 293 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 294 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 295 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 296 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 297 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 298 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 299 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 300 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 301 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 302 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 303 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 304 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 305 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 306 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 307 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 308 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 309 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 -it 1 310 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 311 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 312 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 313 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 314 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 315 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 316 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 317 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 318 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 319 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 320 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 321 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 322 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 323 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 324 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 325 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 326 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 327 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 328 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 1900.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 329 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 -it 1 330 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 331 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 332 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 333 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 334 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 500.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 335 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -it 1 336 2030 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 2000.0 700.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +area cluster mcYear timeId time production NODU NP Cost - Euro +de 01_solar 1 1 2030 0.0 0.0 0.0 +de 02_wind_on 1 1 2030 0.0 0.0 0.0 +de 03_wind_off 1 1 2030 0.0 0.0 0.0 +de 04_res 1 1 2030 0.0 0.0 0.0 +de 05_nuclear 1 1 2030 0.0 0.0 0.0 +de 06_coal 1 1 2030 0.0 0.0 0.0 +de 07_gas 1 1 2030 0.0 0.0 0.0 +de 08_non-res 1 1 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 1 2030 0.0 0.0 0.0 +de 01_solar 1 2 2030 100.0 1.0 0.0 +de 02_wind_on 1 2 2030 0.0 0.0 0.0 +de 03_wind_off 1 2 2030 0.0 0.0 0.0 +de 04_res 1 2 2030 0.0 0.0 0.0 +de 05_nuclear 1 2 2030 0.0 0.0 0.0 +de 06_coal 1 2 2030 0.0 0.0 0.0 +de 07_gas 1 2 2030 0.0 0.0 0.0 +de 08_non-res 1 2 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 2 2030 0.0 0.0 0.0 +de 01_solar 1 3 2030 200.0 1.0 0.0 +de 02_wind_on 1 3 2030 0.0 0.0 0.0 +de 03_wind_off 1 3 2030 0.0 0.0 0.0 +de 04_res 1 3 2030 0.0 0.0 0.0 +de 05_nuclear 1 3 2030 0.0 0.0 0.0 +de 06_coal 1 3 2030 0.0 0.0 0.0 +de 07_gas 1 3 2030 0.0 0.0 0.0 +de 08_non-res 1 3 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 3 2030 0.0 0.0 0.0 +de 01_solar 1 4 2030 300.0 1.0 0.0 +de 02_wind_on 1 4 2030 0.0 0.0 0.0 +de 03_wind_off 1 4 2030 0.0 0.0 0.0 +de 04_res 1 4 2030 0.0 0.0 0.0 +de 05_nuclear 1 4 2030 0.0 0.0 0.0 +de 06_coal 1 4 2030 0.0 0.0 0.0 +de 07_gas 1 4 2030 0.0 0.0 0.0 +de 08_non-res 1 4 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 4 2030 0.0 0.0 0.0 +de 01_solar 1 5 2030 400.0 1.0 0.0 +de 02_wind_on 1 5 2030 0.0 0.0 0.0 +de 03_wind_off 1 5 2030 0.0 0.0 0.0 +de 04_res 1 5 2030 0.0 0.0 0.0 +de 05_nuclear 1 5 2030 0.0 0.0 0.0 +de 06_coal 1 5 2030 0.0 0.0 0.0 +de 07_gas 1 5 2030 0.0 0.0 0.0 +de 08_non-res 1 5 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 5 2030 0.0 0.0 0.0 +de 01_solar 1 6 2030 500.0 1.0 0.0 +de 02_wind_on 1 6 2030 0.0 0.0 0.0 +de 03_wind_off 1 6 2030 0.0 0.0 0.0 +de 04_res 1 6 2030 0.0 0.0 0.0 +de 05_nuclear 1 6 2030 0.0 0.0 0.0 +de 06_coal 1 6 2030 0.0 0.0 0.0 +de 07_gas 1 6 2030 0.0 0.0 0.0 +de 08_non-res 1 6 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 6 2030 0.0 0.0 0.0 +de 01_solar 1 7 2030 600.0 1.0 0.0 +de 02_wind_on 1 7 2030 0.0 0.0 0.0 +de 03_wind_off 1 7 2030 0.0 0.0 0.0 +de 04_res 1 7 2030 0.0 0.0 0.0 +de 05_nuclear 1 7 2030 0.0 0.0 0.0 +de 06_coal 1 7 2030 0.0 0.0 0.0 +de 07_gas 1 7 2030 0.0 0.0 0.0 +de 08_non-res 1 7 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 7 2030 0.0 0.0 0.0 +de 01_solar 1 8 2030 700.0 1.0 0.0 +de 02_wind_on 1 8 2030 0.0 0.0 0.0 +de 03_wind_off 1 8 2030 0.0 0.0 0.0 +de 04_res 1 8 2030 0.0 0.0 0.0 +de 05_nuclear 1 8 2030 0.0 0.0 0.0 +de 06_coal 1 8 2030 0.0 0.0 0.0 +de 07_gas 1 8 2030 0.0 0.0 0.0 +de 08_non-res 1 8 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 8 2030 0.0 0.0 0.0 +de 01_solar 1 9 2030 800.0 1.0 0.0 +de 02_wind_on 1 9 2030 0.0 0.0 0.0 +de 03_wind_off 1 9 2030 0.0 0.0 0.0 +de 04_res 1 9 2030 0.0 0.0 0.0 +de 05_nuclear 1 9 2030 0.0 0.0 0.0 +de 06_coal 1 9 2030 0.0 0.0 0.0 +de 07_gas 1 9 2030 0.0 0.0 0.0 +de 08_non-res 1 9 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 9 2030 0.0 0.0 0.0 +de 01_solar 1 10 2030 900.0 1.0 0.0 +de 02_wind_on 1 10 2030 0.0 0.0 0.0 +de 03_wind_off 1 10 2030 0.0 0.0 0.0 +de 04_res 1 10 2030 0.0 0.0 0.0 +de 05_nuclear 1 10 2030 0.0 0.0 0.0 +de 06_coal 1 10 2030 0.0 0.0 0.0 +de 07_gas 1 10 2030 0.0 0.0 0.0 +de 08_non-res 1 10 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 10 2030 0.0 0.0 0.0 +de 01_solar 1 11 2030 1000.0 1.0 0.0 +de 02_wind_on 1 11 2030 0.0 0.0 0.0 +de 03_wind_off 1 11 2030 0.0 0.0 0.0 +de 04_res 1 11 2030 0.0 0.0 0.0 +de 05_nuclear 1 11 2030 0.0 0.0 0.0 +de 06_coal 1 11 2030 0.0 0.0 0.0 +de 07_gas 1 11 2030 0.0 0.0 0.0 +de 08_non-res 1 11 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 11 2030 0.0 0.0 0.0 +de 01_solar 1 12 2030 1100.0 1.0 0.0 +de 02_wind_on 1 12 2030 0.0 0.0 0.0 +de 03_wind_off 1 12 2030 0.0 0.0 0.0 +de 04_res 1 12 2030 0.0 0.0 0.0 +de 05_nuclear 1 12 2030 0.0 0.0 0.0 +de 06_coal 1 12 2030 0.0 0.0 0.0 +de 07_gas 1 12 2030 0.0 0.0 0.0 +de 08_non-res 1 12 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 12 2030 0.0 0.0 0.0 +de 01_solar 1 13 2030 1200.0 1.0 0.0 +de 02_wind_on 1 13 2030 0.0 0.0 0.0 +de 03_wind_off 1 13 2030 0.0 0.0 0.0 +de 04_res 1 13 2030 0.0 0.0 0.0 +de 05_nuclear 1 13 2030 0.0 0.0 0.0 +de 06_coal 1 13 2030 0.0 0.0 0.0 +de 07_gas 1 13 2030 0.0 0.0 0.0 +de 08_non-res 1 13 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 13 2030 0.0 0.0 0.0 +de 01_solar 1 14 2030 1300.0 1.0 0.0 +de 02_wind_on 1 14 2030 0.0 0.0 0.0 +de 03_wind_off 1 14 2030 0.0 0.0 0.0 +de 04_res 1 14 2030 0.0 0.0 0.0 +de 05_nuclear 1 14 2030 0.0 0.0 0.0 +de 06_coal 1 14 2030 0.0 0.0 0.0 +de 07_gas 1 14 2030 0.0 0.0 0.0 +de 08_non-res 1 14 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 14 2030 0.0 0.0 0.0 +de 01_solar 1 15 2030 1400.0 1.0 0.0 +de 02_wind_on 1 15 2030 0.0 0.0 0.0 +de 03_wind_off 1 15 2030 0.0 0.0 0.0 +de 04_res 1 15 2030 0.0 0.0 0.0 +de 05_nuclear 1 15 2030 0.0 0.0 0.0 +de 06_coal 1 15 2030 0.0 0.0 0.0 +de 07_gas 1 15 2030 0.0 0.0 0.0 +de 08_non-res 1 15 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 15 2030 0.0 0.0 0.0 +de 01_solar 1 16 2030 1500.0 1.0 0.0 +de 02_wind_on 1 16 2030 0.0 0.0 0.0 +de 03_wind_off 1 16 2030 0.0 0.0 0.0 +de 04_res 1 16 2030 0.0 0.0 0.0 +de 05_nuclear 1 16 2030 0.0 0.0 0.0 +de 06_coal 1 16 2030 0.0 0.0 0.0 +de 07_gas 1 16 2030 0.0 0.0 0.0 +de 08_non-res 1 16 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 16 2030 0.0 0.0 0.0 +de 01_solar 1 17 2030 1600.0 1.0 0.0 +de 02_wind_on 1 17 2030 0.0 0.0 0.0 +de 03_wind_off 1 17 2030 0.0 0.0 0.0 +de 04_res 1 17 2030 0.0 0.0 0.0 +de 05_nuclear 1 17 2030 0.0 0.0 0.0 +de 06_coal 1 17 2030 0.0 0.0 0.0 +de 07_gas 1 17 2030 0.0 0.0 0.0 +de 08_non-res 1 17 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 17 2030 0.0 0.0 0.0 +de 01_solar 1 18 2030 1700.0 1.0 0.0 +de 02_wind_on 1 18 2030 0.0 0.0 0.0 +de 03_wind_off 1 18 2030 0.0 0.0 0.0 +de 04_res 1 18 2030 0.0 0.0 0.0 +de 05_nuclear 1 18 2030 0.0 0.0 0.0 +de 06_coal 1 18 2030 0.0 0.0 0.0 +de 07_gas 1 18 2030 0.0 0.0 0.0 +de 08_non-res 1 18 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 18 2030 0.0 0.0 0.0 +de 01_solar 1 19 2030 1800.0 1.0 0.0 +de 02_wind_on 1 19 2030 0.0 0.0 0.0 +de 03_wind_off 1 19 2030 0.0 0.0 0.0 +de 04_res 1 19 2030 0.0 0.0 0.0 +de 05_nuclear 1 19 2030 0.0 0.0 0.0 +de 06_coal 1 19 2030 0.0 0.0 0.0 +de 07_gas 1 19 2030 0.0 0.0 0.0 +de 08_non-res 1 19 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 19 2030 0.0 0.0 0.0 +de 01_solar 1 20 2030 1900.0 1.0 0.0 +de 02_wind_on 1 20 2030 0.0 0.0 0.0 +de 03_wind_off 1 20 2030 0.0 0.0 0.0 +de 04_res 1 20 2030 0.0 0.0 0.0 +de 05_nuclear 1 20 2030 0.0 0.0 0.0 +de 06_coal 1 20 2030 0.0 0.0 0.0 +de 07_gas 1 20 2030 0.0 0.0 0.0 +de 08_non-res 1 20 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 20 2030 0.0 0.0 0.0 +de 01_solar 1 21 2030 2000.0 1.0 0.0 +de 02_wind_on 1 21 2030 0.0 0.0 0.0 +de 03_wind_off 1 21 2030 0.0 0.0 0.0 +de 04_res 1 21 2030 0.0 0.0 0.0 +de 05_nuclear 1 21 2030 0.0 0.0 0.0 +de 06_coal 1 21 2030 0.0 0.0 0.0 +de 07_gas 1 21 2030 0.0 0.0 0.0 +de 08_non-res 1 21 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 21 2030 0.0 0.0 0.0 +de 01_solar 1 22 2030 2000.0 1.0 0.0 +de 02_wind_on 1 22 2030 100.0 1.0 0.0 +de 03_wind_off 1 22 2030 0.0 0.0 0.0 +de 04_res 1 22 2030 0.0 0.0 0.0 +de 05_nuclear 1 22 2030 0.0 0.0 0.0 +de 06_coal 1 22 2030 0.0 0.0 0.0 +de 07_gas 1 22 2030 0.0 0.0 0.0 +de 08_non-res 1 22 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 22 2030 0.0 0.0 0.0 +de 01_solar 1 23 2030 2000.0 1.0 0.0 +de 02_wind_on 1 23 2030 200.0 1.0 0.0 +de 03_wind_off 1 23 2030 0.0 0.0 0.0 +de 04_res 1 23 2030 0.0 0.0 0.0 +de 05_nuclear 1 23 2030 0.0 0.0 0.0 +de 06_coal 1 23 2030 0.0 0.0 0.0 +de 07_gas 1 23 2030 0.0 0.0 0.0 +de 08_non-res 1 23 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 23 2030 0.0 0.0 0.0 +de 01_solar 1 24 2030 2000.0 1.0 0.0 +de 02_wind_on 1 24 2030 300.0 1.0 0.0 +de 03_wind_off 1 24 2030 0.0 0.0 0.0 +de 04_res 1 24 2030 0.0 0.0 0.0 +de 05_nuclear 1 24 2030 0.0 0.0 0.0 +de 06_coal 1 24 2030 0.0 0.0 0.0 +de 07_gas 1 24 2030 0.0 0.0 0.0 +de 08_non-res 1 24 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 24 2030 0.0 0.0 0.0 +de 01_solar 1 25 2030 2000.0 1.0 0.0 +de 02_wind_on 1 25 2030 400.0 1.0 0.0 +de 03_wind_off 1 25 2030 0.0 0.0 0.0 +de 04_res 1 25 2030 0.0 0.0 0.0 +de 05_nuclear 1 25 2030 0.0 0.0 0.0 +de 06_coal 1 25 2030 0.0 0.0 0.0 +de 07_gas 1 25 2030 0.0 0.0 0.0 +de 08_non-res 1 25 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 25 2030 0.0 0.0 0.0 +de 01_solar 1 26 2030 2000.0 1.0 0.0 +de 02_wind_on 1 26 2030 500.0 1.0 0.0 +de 03_wind_off 1 26 2030 0.0 0.0 0.0 +de 04_res 1 26 2030 0.0 0.0 0.0 +de 05_nuclear 1 26 2030 0.0 0.0 0.0 +de 06_coal 1 26 2030 0.0 0.0 0.0 +de 07_gas 1 26 2030 0.0 0.0 0.0 +de 08_non-res 1 26 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 26 2030 0.0 0.0 0.0 +de 01_solar 1 27 2030 2000.0 1.0 0.0 +de 02_wind_on 1 27 2030 600.0 1.0 0.0 +de 03_wind_off 1 27 2030 0.0 0.0 0.0 +de 04_res 1 27 2030 0.0 0.0 0.0 +de 05_nuclear 1 27 2030 0.0 0.0 0.0 +de 06_coal 1 27 2030 0.0 0.0 0.0 +de 07_gas 1 27 2030 0.0 0.0 0.0 +de 08_non-res 1 27 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 27 2030 0.0 0.0 0.0 +de 01_solar 1 28 2030 2000.0 1.0 0.0 +de 02_wind_on 1 28 2030 700.0 1.0 0.0 +de 03_wind_off 1 28 2030 0.0 0.0 0.0 +de 04_res 1 28 2030 0.0 0.0 0.0 +de 05_nuclear 1 28 2030 0.0 0.0 0.0 +de 06_coal 1 28 2030 0.0 0.0 0.0 +de 07_gas 1 28 2030 0.0 0.0 0.0 +de 08_non-res 1 28 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 28 2030 0.0 0.0 0.0 +de 01_solar 1 29 2030 2000.0 1.0 0.0 +de 02_wind_on 1 29 2030 800.0 1.0 0.0 +de 03_wind_off 1 29 2030 0.0 0.0 0.0 +de 04_res 1 29 2030 0.0 0.0 0.0 +de 05_nuclear 1 29 2030 0.0 0.0 0.0 +de 06_coal 1 29 2030 0.0 0.0 0.0 +de 07_gas 1 29 2030 0.0 0.0 0.0 +de 08_non-res 1 29 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 29 2030 0.0 0.0 0.0 +de 01_solar 1 30 2030 2000.0 1.0 0.0 +de 02_wind_on 1 30 2030 900.0 1.0 0.0 +de 03_wind_off 1 30 2030 0.0 0.0 0.0 +de 04_res 1 30 2030 0.0 0.0 0.0 +de 05_nuclear 1 30 2030 0.0 0.0 0.0 +de 06_coal 1 30 2030 0.0 0.0 0.0 +de 07_gas 1 30 2030 0.0 0.0 0.0 +de 08_non-res 1 30 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 30 2030 0.0 0.0 0.0 +de 01_solar 1 31 2030 2000.0 1.0 0.0 +de 02_wind_on 1 31 2030 1000.0 1.0 0.0 +de 03_wind_off 1 31 2030 0.0 0.0 0.0 +de 04_res 1 31 2030 0.0 0.0 0.0 +de 05_nuclear 1 31 2030 0.0 0.0 0.0 +de 06_coal 1 31 2030 0.0 0.0 0.0 +de 07_gas 1 31 2030 0.0 0.0 0.0 +de 08_non-res 1 31 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 31 2030 0.0 0.0 0.0 +de 01_solar 1 32 2030 2000.0 1.0 0.0 +de 02_wind_on 1 32 2030 1100.0 1.0 0.0 +de 03_wind_off 1 32 2030 0.0 0.0 0.0 +de 04_res 1 32 2030 0.0 0.0 0.0 +de 05_nuclear 1 32 2030 0.0 0.0 0.0 +de 06_coal 1 32 2030 0.0 0.0 0.0 +de 07_gas 1 32 2030 0.0 0.0 0.0 +de 08_non-res 1 32 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 32 2030 0.0 0.0 0.0 +de 01_solar 1 33 2030 2000.0 1.0 0.0 +de 02_wind_on 1 33 2030 1200.0 1.0 0.0 +de 03_wind_off 1 33 2030 0.0 0.0 0.0 +de 04_res 1 33 2030 0.0 0.0 0.0 +de 05_nuclear 1 33 2030 0.0 0.0 0.0 +de 06_coal 1 33 2030 0.0 0.0 0.0 +de 07_gas 1 33 2030 0.0 0.0 0.0 +de 08_non-res 1 33 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 33 2030 0.0 0.0 0.0 +de 01_solar 1 34 2030 2000.0 1.0 0.0 +de 02_wind_on 1 34 2030 1300.0 1.0 0.0 +de 03_wind_off 1 34 2030 0.0 0.0 0.0 +de 04_res 1 34 2030 0.0 0.0 0.0 +de 05_nuclear 1 34 2030 0.0 0.0 0.0 +de 06_coal 1 34 2030 0.0 0.0 0.0 +de 07_gas 1 34 2030 0.0 0.0 0.0 +de 08_non-res 1 34 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 34 2030 0.0 0.0 0.0 +de 01_solar 1 35 2030 2000.0 1.0 0.0 +de 02_wind_on 1 35 2030 1400.0 1.0 0.0 +de 03_wind_off 1 35 2030 0.0 0.0 0.0 +de 04_res 1 35 2030 0.0 0.0 0.0 +de 05_nuclear 1 35 2030 0.0 0.0 0.0 +de 06_coal 1 35 2030 0.0 0.0 0.0 +de 07_gas 1 35 2030 0.0 0.0 0.0 +de 08_non-res 1 35 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 35 2030 0.0 0.0 0.0 +de 01_solar 1 36 2030 2000.0 1.0 0.0 +de 02_wind_on 1 36 2030 1500.0 1.0 0.0 +de 03_wind_off 1 36 2030 0.0 0.0 0.0 +de 04_res 1 36 2030 0.0 0.0 0.0 +de 05_nuclear 1 36 2030 0.0 0.0 0.0 +de 06_coal 1 36 2030 0.0 0.0 0.0 +de 07_gas 1 36 2030 0.0 0.0 0.0 +de 08_non-res 1 36 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 36 2030 0.0 0.0 0.0 +de 01_solar 1 37 2030 2000.0 1.0 0.0 +de 02_wind_on 1 37 2030 1600.0 1.0 0.0 +de 03_wind_off 1 37 2030 0.0 0.0 0.0 +de 04_res 1 37 2030 0.0 0.0 0.0 +de 05_nuclear 1 37 2030 0.0 0.0 0.0 +de 06_coal 1 37 2030 0.0 0.0 0.0 +de 07_gas 1 37 2030 0.0 0.0 0.0 +de 08_non-res 1 37 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 37 2030 0.0 0.0 0.0 +de 01_solar 1 38 2030 2000.0 1.0 0.0 +de 02_wind_on 1 38 2030 1700.0 1.0 0.0 +de 03_wind_off 1 38 2030 0.0 0.0 0.0 +de 04_res 1 38 2030 0.0 0.0 0.0 +de 05_nuclear 1 38 2030 0.0 0.0 0.0 +de 06_coal 1 38 2030 0.0 0.0 0.0 +de 07_gas 1 38 2030 0.0 0.0 0.0 +de 08_non-res 1 38 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 38 2030 0.0 0.0 0.0 +de 01_solar 1 39 2030 2000.0 1.0 0.0 +de 02_wind_on 1 39 2030 1800.0 1.0 0.0 +de 03_wind_off 1 39 2030 0.0 0.0 0.0 +de 04_res 1 39 2030 0.0 0.0 0.0 +de 05_nuclear 1 39 2030 0.0 0.0 0.0 +de 06_coal 1 39 2030 0.0 0.0 0.0 +de 07_gas 1 39 2030 0.0 0.0 0.0 +de 08_non-res 1 39 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 39 2030 0.0 0.0 0.0 +de 01_solar 1 40 2030 2000.0 1.0 0.0 +de 02_wind_on 1 40 2030 1900.0 1.0 0.0 +de 03_wind_off 1 40 2030 0.0 0.0 0.0 +de 04_res 1 40 2030 0.0 0.0 0.0 +de 05_nuclear 1 40 2030 0.0 0.0 0.0 +de 06_coal 1 40 2030 0.0 0.0 0.0 +de 07_gas 1 40 2030 0.0 0.0 0.0 +de 08_non-res 1 40 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 40 2030 0.0 0.0 0.0 +de 01_solar 1 41 2030 2000.0 1.0 0.0 +de 02_wind_on 1 41 2030 2000.0 1.0 0.0 +de 03_wind_off 1 41 2030 0.0 0.0 0.0 +de 04_res 1 41 2030 0.0 0.0 0.0 +de 05_nuclear 1 41 2030 0.0 0.0 0.0 +de 06_coal 1 41 2030 0.0 0.0 0.0 +de 07_gas 1 41 2030 0.0 0.0 0.0 +de 08_non-res 1 41 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 41 2030 0.0 0.0 0.0 +de 01_solar 1 42 2030 2000.0 1.0 0.0 +de 02_wind_on 1 42 2030 2000.0 1.0 0.0 +de 03_wind_off 1 42 2030 100.0 1.0 0.0 +de 04_res 1 42 2030 0.0 0.0 0.0 +de 05_nuclear 1 42 2030 0.0 0.0 0.0 +de 06_coal 1 42 2030 0.0 0.0 0.0 +de 07_gas 1 42 2030 0.0 0.0 0.0 +de 08_non-res 1 42 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 42 2030 0.0 0.0 0.0 +de 01_solar 1 43 2030 2000.0 1.0 0.0 +de 02_wind_on 1 43 2030 2000.0 1.0 0.0 +de 03_wind_off 1 43 2030 200.0 1.0 0.0 +de 04_res 1 43 2030 0.0 0.0 0.0 +de 05_nuclear 1 43 2030 0.0 0.0 0.0 +de 06_coal 1 43 2030 0.0 0.0 0.0 +de 07_gas 1 43 2030 0.0 0.0 0.0 +de 08_non-res 1 43 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 43 2030 0.0 0.0 0.0 +de 01_solar 1 44 2030 2000.0 1.0 0.0 +de 02_wind_on 1 44 2030 2000.0 1.0 0.0 +de 03_wind_off 1 44 2030 300.0 1.0 0.0 +de 04_res 1 44 2030 0.0 0.0 0.0 +de 05_nuclear 1 44 2030 0.0 0.0 0.0 +de 06_coal 1 44 2030 0.0 0.0 0.0 +de 07_gas 1 44 2030 0.0 0.0 0.0 +de 08_non-res 1 44 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 44 2030 0.0 0.0 0.0 +de 01_solar 1 45 2030 2000.0 1.0 0.0 +de 02_wind_on 1 45 2030 2000.0 1.0 0.0 +de 03_wind_off 1 45 2030 400.0 1.0 0.0 +de 04_res 1 45 2030 0.0 0.0 0.0 +de 05_nuclear 1 45 2030 0.0 0.0 0.0 +de 06_coal 1 45 2030 0.0 0.0 0.0 +de 07_gas 1 45 2030 0.0 0.0 0.0 +de 08_non-res 1 45 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 45 2030 0.0 0.0 0.0 +de 01_solar 1 46 2030 2000.0 1.0 0.0 +de 02_wind_on 1 46 2030 2000.0 1.0 0.0 +de 03_wind_off 1 46 2030 500.0 1.0 0.0 +de 04_res 1 46 2030 0.0 0.0 0.0 +de 05_nuclear 1 46 2030 0.0 0.0 0.0 +de 06_coal 1 46 2030 0.0 0.0 0.0 +de 07_gas 1 46 2030 0.0 0.0 0.0 +de 08_non-res 1 46 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 46 2030 0.0 0.0 0.0 +de 01_solar 1 47 2030 2000.0 1.0 0.0 +de 02_wind_on 1 47 2030 2000.0 1.0 0.0 +de 03_wind_off 1 47 2030 600.0 1.0 0.0 +de 04_res 1 47 2030 0.0 0.0 0.0 +de 05_nuclear 1 47 2030 0.0 0.0 0.0 +de 06_coal 1 47 2030 0.0 0.0 0.0 +de 07_gas 1 47 2030 0.0 0.0 0.0 +de 08_non-res 1 47 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 47 2030 0.0 0.0 0.0 +de 01_solar 1 48 2030 2000.0 1.0 0.0 +de 02_wind_on 1 48 2030 2000.0 1.0 0.0 +de 03_wind_off 1 48 2030 700.0 1.0 0.0 +de 04_res 1 48 2030 0.0 0.0 0.0 +de 05_nuclear 1 48 2030 0.0 0.0 0.0 +de 06_coal 1 48 2030 0.0 0.0 0.0 +de 07_gas 1 48 2030 0.0 0.0 0.0 +de 08_non-res 1 48 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 48 2030 0.0 0.0 0.0 +de 01_solar 1 49 2030 2000.0 1.0 0.0 +de 02_wind_on 1 49 2030 2000.0 1.0 0.0 +de 03_wind_off 1 49 2030 800.0 1.0 0.0 +de 04_res 1 49 2030 0.0 0.0 0.0 +de 05_nuclear 1 49 2030 0.0 0.0 0.0 +de 06_coal 1 49 2030 0.0 0.0 0.0 +de 07_gas 1 49 2030 0.0 0.0 0.0 +de 08_non-res 1 49 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 49 2030 0.0 0.0 0.0 +de 01_solar 1 50 2030 2000.0 1.0 0.0 +de 02_wind_on 1 50 2030 2000.0 1.0 0.0 +de 03_wind_off 1 50 2030 900.0 1.0 0.0 +de 04_res 1 50 2030 0.0 0.0 0.0 +de 05_nuclear 1 50 2030 0.0 0.0 0.0 +de 06_coal 1 50 2030 0.0 0.0 0.0 +de 07_gas 1 50 2030 0.0 0.0 0.0 +de 08_non-res 1 50 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 50 2030 0.0 0.0 0.0 +de 01_solar 1 51 2030 2000.0 1.0 0.0 +de 02_wind_on 1 51 2030 2000.0 1.0 0.0 +de 03_wind_off 1 51 2030 1000.0 1.0 0.0 +de 04_res 1 51 2030 0.0 0.0 0.0 +de 05_nuclear 1 51 2030 0.0 0.0 0.0 +de 06_coal 1 51 2030 0.0 0.0 0.0 +de 07_gas 1 51 2030 0.0 0.0 0.0 +de 08_non-res 1 51 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 51 2030 0.0 0.0 0.0 +de 01_solar 1 52 2030 2000.0 1.0 0.0 +de 02_wind_on 1 52 2030 2000.0 1.0 0.0 +de 03_wind_off 1 52 2030 1100.0 1.0 0.0 +de 04_res 1 52 2030 0.0 0.0 0.0 +de 05_nuclear 1 52 2030 0.0 0.0 0.0 +de 06_coal 1 52 2030 0.0 0.0 0.0 +de 07_gas 1 52 2030 0.0 0.0 0.0 +de 08_non-res 1 52 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 52 2030 0.0 0.0 0.0 +de 01_solar 1 53 2030 2000.0 1.0 0.0 +de 02_wind_on 1 53 2030 2000.0 1.0 0.0 +de 03_wind_off 1 53 2030 1200.0 1.0 0.0 +de 04_res 1 53 2030 0.0 0.0 0.0 +de 05_nuclear 1 53 2030 0.0 0.0 0.0 +de 06_coal 1 53 2030 0.0 0.0 0.0 +de 07_gas 1 53 2030 0.0 0.0 0.0 +de 08_non-res 1 53 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 53 2030 0.0 0.0 0.0 +de 01_solar 1 54 2030 2000.0 1.0 0.0 +de 02_wind_on 1 54 2030 2000.0 1.0 0.0 +de 03_wind_off 1 54 2030 1300.0 1.0 0.0 +de 04_res 1 54 2030 0.0 0.0 0.0 +de 05_nuclear 1 54 2030 0.0 0.0 0.0 +de 06_coal 1 54 2030 0.0 0.0 0.0 +de 07_gas 1 54 2030 0.0 0.0 0.0 +de 08_non-res 1 54 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 54 2030 0.0 0.0 0.0 +de 01_solar 1 55 2030 2000.0 1.0 0.0 +de 02_wind_on 1 55 2030 2000.0 1.0 0.0 +de 03_wind_off 1 55 2030 1400.0 1.0 0.0 +de 04_res 1 55 2030 0.0 0.0 0.0 +de 05_nuclear 1 55 2030 0.0 0.0 0.0 +de 06_coal 1 55 2030 0.0 0.0 0.0 +de 07_gas 1 55 2030 0.0 0.0 0.0 +de 08_non-res 1 55 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 55 2030 0.0 0.0 0.0 +de 01_solar 1 56 2030 2000.0 1.0 0.0 +de 02_wind_on 1 56 2030 2000.0 1.0 0.0 +de 03_wind_off 1 56 2030 1500.0 1.0 0.0 +de 04_res 1 56 2030 0.0 0.0 0.0 +de 05_nuclear 1 56 2030 0.0 0.0 0.0 +de 06_coal 1 56 2030 0.0 0.0 0.0 +de 07_gas 1 56 2030 0.0 0.0 0.0 +de 08_non-res 1 56 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 56 2030 0.0 0.0 0.0 +de 01_solar 1 57 2030 2000.0 1.0 0.0 +de 02_wind_on 1 57 2030 2000.0 1.0 0.0 +de 03_wind_off 1 57 2030 1600.0 1.0 0.0 +de 04_res 1 57 2030 0.0 0.0 0.0 +de 05_nuclear 1 57 2030 0.0 0.0 0.0 +de 06_coal 1 57 2030 0.0 0.0 0.0 +de 07_gas 1 57 2030 0.0 0.0 0.0 +de 08_non-res 1 57 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 57 2030 0.0 0.0 0.0 +de 01_solar 1 58 2030 2000.0 1.0 0.0 +de 02_wind_on 1 58 2030 2000.0 1.0 0.0 +de 03_wind_off 1 58 2030 1700.0 1.0 0.0 +de 04_res 1 58 2030 0.0 0.0 0.0 +de 05_nuclear 1 58 2030 0.0 0.0 0.0 +de 06_coal 1 58 2030 0.0 0.0 0.0 +de 07_gas 1 58 2030 0.0 0.0 0.0 +de 08_non-res 1 58 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 58 2030 0.0 0.0 0.0 +de 01_solar 1 59 2030 2000.0 1.0 0.0 +de 02_wind_on 1 59 2030 2000.0 1.0 0.0 +de 03_wind_off 1 59 2030 1800.0 1.0 0.0 +de 04_res 1 59 2030 0.0 0.0 0.0 +de 05_nuclear 1 59 2030 0.0 0.0 0.0 +de 06_coal 1 59 2030 0.0 0.0 0.0 +de 07_gas 1 59 2030 0.0 0.0 0.0 +de 08_non-res 1 59 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 59 2030 0.0 0.0 0.0 +de 01_solar 1 60 2030 2000.0 1.0 0.0 +de 02_wind_on 1 60 2030 2000.0 1.0 0.0 +de 03_wind_off 1 60 2030 1900.0 1.0 0.0 +de 04_res 1 60 2030 0.0 0.0 0.0 +de 05_nuclear 1 60 2030 0.0 0.0 0.0 +de 06_coal 1 60 2030 0.0 0.0 0.0 +de 07_gas 1 60 2030 0.0 0.0 0.0 +de 08_non-res 1 60 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 60 2030 0.0 0.0 0.0 +de 01_solar 1 61 2030 2000.0 1.0 0.0 +de 02_wind_on 1 61 2030 2000.0 1.0 0.0 +de 03_wind_off 1 61 2030 2000.0 1.0 0.0 +de 04_res 1 61 2030 0.0 0.0 0.0 +de 05_nuclear 1 61 2030 0.0 0.0 0.0 +de 06_coal 1 61 2030 0.0 0.0 0.0 +de 07_gas 1 61 2030 0.0 0.0 0.0 +de 08_non-res 1 61 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 61 2030 0.0 0.0 0.0 +de 01_solar 1 62 2030 2000.0 1.0 0.0 +de 02_wind_on 1 62 2030 2000.0 1.0 0.0 +de 03_wind_off 1 62 2030 2000.0 1.0 0.0 +de 04_res 1 62 2030 100.0 1.0 0.0 +de 05_nuclear 1 62 2030 0.0 0.0 0.0 +de 06_coal 1 62 2030 0.0 0.0 0.0 +de 07_gas 1 62 2030 0.0 0.0 0.0 +de 08_non-res 1 62 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 62 2030 0.0 0.0 0.0 +de 01_solar 1 63 2030 2000.0 1.0 0.0 +de 02_wind_on 1 63 2030 2000.0 1.0 0.0 +de 03_wind_off 1 63 2030 2000.0 1.0 0.0 +de 04_res 1 63 2030 200.0 1.0 0.0 +de 05_nuclear 1 63 2030 0.0 0.0 0.0 +de 06_coal 1 63 2030 0.0 0.0 0.0 +de 07_gas 1 63 2030 0.0 0.0 0.0 +de 08_non-res 1 63 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 63 2030 0.0 0.0 0.0 +de 01_solar 1 64 2030 2000.0 1.0 0.0 +de 02_wind_on 1 64 2030 2000.0 1.0 0.0 +de 03_wind_off 1 64 2030 2000.0 1.0 0.0 +de 04_res 1 64 2030 300.0 1.0 0.0 +de 05_nuclear 1 64 2030 0.0 0.0 0.0 +de 06_coal 1 64 2030 0.0 0.0 0.0 +de 07_gas 1 64 2030 0.0 0.0 0.0 +de 08_non-res 1 64 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 64 2030 0.0 0.0 0.0 +de 01_solar 1 65 2030 2000.0 1.0 0.0 +de 02_wind_on 1 65 2030 2000.0 1.0 0.0 +de 03_wind_off 1 65 2030 2000.0 1.0 0.0 +de 04_res 1 65 2030 400.0 1.0 0.0 +de 05_nuclear 1 65 2030 0.0 0.0 0.0 +de 06_coal 1 65 2030 0.0 0.0 0.0 +de 07_gas 1 65 2030 0.0 0.0 0.0 +de 08_non-res 1 65 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 65 2030 0.0 0.0 0.0 +de 01_solar 1 66 2030 2000.0 1.0 0.0 +de 02_wind_on 1 66 2030 2000.0 1.0 0.0 +de 03_wind_off 1 66 2030 2000.0 1.0 0.0 +de 04_res 1 66 2030 500.0 1.0 0.0 +de 05_nuclear 1 66 2030 0.0 0.0 0.0 +de 06_coal 1 66 2030 0.0 0.0 0.0 +de 07_gas 1 66 2030 0.0 0.0 0.0 +de 08_non-res 1 66 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 66 2030 0.0 0.0 0.0 +de 01_solar 1 67 2030 2000.0 1.0 0.0 +de 02_wind_on 1 67 2030 2000.0 1.0 0.0 +de 03_wind_off 1 67 2030 2000.0 1.0 0.0 +de 04_res 1 67 2030 600.0 1.0 0.0 +de 05_nuclear 1 67 2030 0.0 0.0 0.0 +de 06_coal 1 67 2030 0.0 0.0 0.0 +de 07_gas 1 67 2030 0.0 0.0 0.0 +de 08_non-res 1 67 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 67 2030 0.0 0.0 0.0 +de 01_solar 1 68 2030 2000.0 1.0 0.0 +de 02_wind_on 1 68 2030 2000.0 1.0 0.0 +de 03_wind_off 1 68 2030 2000.0 1.0 0.0 +de 04_res 1 68 2030 700.0 1.0 0.0 +de 05_nuclear 1 68 2030 0.0 0.0 0.0 +de 06_coal 1 68 2030 0.0 0.0 0.0 +de 07_gas 1 68 2030 0.0 0.0 0.0 +de 08_non-res 1 68 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 68 2030 0.0 0.0 0.0 +de 01_solar 1 69 2030 2000.0 1.0 0.0 +de 02_wind_on 1 69 2030 2000.0 1.0 0.0 +de 03_wind_off 1 69 2030 2000.0 1.0 0.0 +de 04_res 1 69 2030 800.0 1.0 0.0 +de 05_nuclear 1 69 2030 0.0 0.0 0.0 +de 06_coal 1 69 2030 0.0 0.0 0.0 +de 07_gas 1 69 2030 0.0 0.0 0.0 +de 08_non-res 1 69 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 69 2030 0.0 0.0 0.0 +de 01_solar 1 70 2030 2000.0 1.0 0.0 +de 02_wind_on 1 70 2030 2000.0 1.0 0.0 +de 03_wind_off 1 70 2030 2000.0 1.0 0.0 +de 04_res 1 70 2030 900.0 1.0 0.0 +de 05_nuclear 1 70 2030 0.0 0.0 0.0 +de 06_coal 1 70 2030 0.0 0.0 0.0 +de 07_gas 1 70 2030 0.0 0.0 0.0 +de 08_non-res 1 70 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 70 2030 0.0 0.0 0.0 +de 01_solar 1 71 2030 2000.0 1.0 0.0 +de 02_wind_on 1 71 2030 2000.0 1.0 0.0 +de 03_wind_off 1 71 2030 2000.0 1.0 0.0 +de 04_res 1 71 2030 1000.0 1.0 0.0 +de 05_nuclear 1 71 2030 0.0 0.0 0.0 +de 06_coal 1 71 2030 0.0 0.0 0.0 +de 07_gas 1 71 2030 0.0 0.0 0.0 +de 08_non-res 1 71 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 71 2030 0.0 0.0 0.0 +de 01_solar 1 72 2030 2000.0 1.0 0.0 +de 02_wind_on 1 72 2030 2000.0 1.0 0.0 +de 03_wind_off 1 72 2030 2000.0 1.0 0.0 +de 04_res 1 72 2030 1100.0 1.0 0.0 +de 05_nuclear 1 72 2030 0.0 0.0 0.0 +de 06_coal 1 72 2030 0.0 0.0 0.0 +de 07_gas 1 72 2030 0.0 0.0 0.0 +de 08_non-res 1 72 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 72 2030 0.0 0.0 0.0 +de 01_solar 1 73 2030 2000.0 1.0 0.0 +de 02_wind_on 1 73 2030 2000.0 1.0 0.0 +de 03_wind_off 1 73 2030 2000.0 1.0 0.0 +de 04_res 1 73 2030 1200.0 1.0 0.0 +de 05_nuclear 1 73 2030 0.0 0.0 0.0 +de 06_coal 1 73 2030 0.0 0.0 0.0 +de 07_gas 1 73 2030 0.0 0.0 0.0 +de 08_non-res 1 73 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 73 2030 0.0 0.0 0.0 +de 01_solar 1 74 2030 2000.0 1.0 0.0 +de 02_wind_on 1 74 2030 2000.0 1.0 0.0 +de 03_wind_off 1 74 2030 2000.0 1.0 0.0 +de 04_res 1 74 2030 1300.0 1.0 0.0 +de 05_nuclear 1 74 2030 0.0 0.0 0.0 +de 06_coal 1 74 2030 0.0 0.0 0.0 +de 07_gas 1 74 2030 0.0 0.0 0.0 +de 08_non-res 1 74 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 74 2030 0.0 0.0 0.0 +de 01_solar 1 75 2030 2000.0 1.0 0.0 +de 02_wind_on 1 75 2030 2000.0 1.0 0.0 +de 03_wind_off 1 75 2030 2000.0 1.0 0.0 +de 04_res 1 75 2030 1400.0 1.0 0.0 +de 05_nuclear 1 75 2030 0.0 0.0 0.0 +de 06_coal 1 75 2030 0.0 0.0 0.0 +de 07_gas 1 75 2030 0.0 0.0 0.0 +de 08_non-res 1 75 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 75 2030 0.0 0.0 0.0 +de 01_solar 1 76 2030 2000.0 1.0 0.0 +de 02_wind_on 1 76 2030 2000.0 1.0 0.0 +de 03_wind_off 1 76 2030 2000.0 1.0 0.0 +de 04_res 1 76 2030 1500.0 1.0 0.0 +de 05_nuclear 1 76 2030 0.0 0.0 0.0 +de 06_coal 1 76 2030 0.0 0.0 0.0 +de 07_gas 1 76 2030 0.0 0.0 0.0 +de 08_non-res 1 76 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 76 2030 0.0 0.0 0.0 +de 01_solar 1 77 2030 2000.0 1.0 0.0 +de 02_wind_on 1 77 2030 2000.0 1.0 0.0 +de 03_wind_off 1 77 2030 2000.0 1.0 0.0 +de 04_res 1 77 2030 1600.0 1.0 0.0 +de 05_nuclear 1 77 2030 0.0 0.0 0.0 +de 06_coal 1 77 2030 0.0 0.0 0.0 +de 07_gas 1 77 2030 0.0 0.0 0.0 +de 08_non-res 1 77 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 77 2030 0.0 0.0 0.0 +de 01_solar 1 78 2030 2000.0 1.0 0.0 +de 02_wind_on 1 78 2030 2000.0 1.0 0.0 +de 03_wind_off 1 78 2030 2000.0 1.0 0.0 +de 04_res 1 78 2030 1700.0 1.0 0.0 +de 05_nuclear 1 78 2030 0.0 0.0 0.0 +de 06_coal 1 78 2030 0.0 0.0 0.0 +de 07_gas 1 78 2030 0.0 0.0 0.0 +de 08_non-res 1 78 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 78 2030 0.0 0.0 0.0 +de 01_solar 1 79 2030 2000.0 1.0 0.0 +de 02_wind_on 1 79 2030 2000.0 1.0 0.0 +de 03_wind_off 1 79 2030 2000.0 1.0 0.0 +de 04_res 1 79 2030 1800.0 1.0 0.0 +de 05_nuclear 1 79 2030 0.0 0.0 0.0 +de 06_coal 1 79 2030 0.0 0.0 0.0 +de 07_gas 1 79 2030 0.0 0.0 0.0 +de 08_non-res 1 79 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 79 2030 0.0 0.0 0.0 +de 01_solar 1 80 2030 2000.0 1.0 0.0 +de 02_wind_on 1 80 2030 2000.0 1.0 0.0 +de 03_wind_off 1 80 2030 2000.0 1.0 0.0 +de 04_res 1 80 2030 1900.0 1.0 0.0 +de 05_nuclear 1 80 2030 0.0 0.0 0.0 +de 06_coal 1 80 2030 0.0 0.0 0.0 +de 07_gas 1 80 2030 0.0 0.0 0.0 +de 08_non-res 1 80 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 80 2030 0.0 0.0 0.0 +de 01_solar 1 81 2030 2000.0 1.0 0.0 +de 02_wind_on 1 81 2030 2000.0 1.0 0.0 +de 03_wind_off 1 81 2030 2000.0 1.0 0.0 +de 04_res 1 81 2030 2000.0 1.0 0.0 +de 05_nuclear 1 81 2030 0.0 0.0 0.0 +de 06_coal 1 81 2030 0.0 0.0 0.0 +de 07_gas 1 81 2030 0.0 0.0 0.0 +de 08_non-res 1 81 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 81 2030 0.0 0.0 0.0 +de 01_solar 1 82 2030 2000.0 1.0 0.0 +de 02_wind_on 1 82 2030 2000.0 1.0 0.0 +de 03_wind_off 1 82 2030 2000.0 1.0 0.0 +de 04_res 1 82 2030 2000.0 1.0 0.0 +de 05_nuclear 1 82 2030 100.0 1.0 0.0 +de 06_coal 1 82 2030 0.0 0.0 0.0 +de 07_gas 1 82 2030 0.0 0.0 0.0 +de 08_non-res 1 82 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 82 2030 0.0 0.0 0.0 +de 01_solar 1 83 2030 2000.0 1.0 0.0 +de 02_wind_on 1 83 2030 2000.0 1.0 0.0 +de 03_wind_off 1 83 2030 2000.0 1.0 0.0 +de 04_res 1 83 2030 2000.0 1.0 0.0 +de 05_nuclear 1 83 2030 200.0 1.0 0.0 +de 06_coal 1 83 2030 0.0 0.0 0.0 +de 07_gas 1 83 2030 0.0 0.0 0.0 +de 08_non-res 1 83 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 83 2030 0.0 0.0 0.0 +de 01_solar 1 84 2030 2000.0 1.0 0.0 +de 02_wind_on 1 84 2030 2000.0 1.0 0.0 +de 03_wind_off 1 84 2030 2000.0 1.0 0.0 +de 04_res 1 84 2030 2000.0 1.0 0.0 +de 05_nuclear 1 84 2030 300.0 1.0 0.0 +de 06_coal 1 84 2030 0.0 0.0 0.0 +de 07_gas 1 84 2030 0.0 0.0 0.0 +de 08_non-res 1 84 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 84 2030 0.0 0.0 0.0 +de 01_solar 1 85 2030 2000.0 1.0 0.0 +de 02_wind_on 1 85 2030 2000.0 1.0 0.0 +de 03_wind_off 1 85 2030 2000.0 1.0 0.0 +de 04_res 1 85 2030 2000.0 1.0 0.0 +de 05_nuclear 1 85 2030 400.0 1.0 0.0 +de 06_coal 1 85 2030 0.0 0.0 0.0 +de 07_gas 1 85 2030 0.0 0.0 0.0 +de 08_non-res 1 85 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 85 2030 0.0 0.0 0.0 +de 01_solar 1 86 2030 2000.0 1.0 0.0 +de 02_wind_on 1 86 2030 2000.0 1.0 0.0 +de 03_wind_off 1 86 2030 2000.0 1.0 0.0 +de 04_res 1 86 2030 2000.0 1.0 0.0 +de 05_nuclear 1 86 2030 500.0 1.0 0.0 +de 06_coal 1 86 2030 0.0 0.0 0.0 +de 07_gas 1 86 2030 0.0 0.0 0.0 +de 08_non-res 1 86 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 86 2030 0.0 0.0 0.0 +de 01_solar 1 87 2030 2000.0 1.0 0.0 +de 02_wind_on 1 87 2030 2000.0 1.0 0.0 +de 03_wind_off 1 87 2030 2000.0 1.0 0.0 +de 04_res 1 87 2030 2000.0 1.0 0.0 +de 05_nuclear 1 87 2030 600.0 1.0 0.0 +de 06_coal 1 87 2030 0.0 0.0 0.0 +de 07_gas 1 87 2030 0.0 0.0 0.0 +de 08_non-res 1 87 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 87 2030 0.0 0.0 0.0 +de 01_solar 1 88 2030 2000.0 1.0 0.0 +de 02_wind_on 1 88 2030 2000.0 1.0 0.0 +de 03_wind_off 1 88 2030 2000.0 1.0 0.0 +de 04_res 1 88 2030 2000.0 1.0 0.0 +de 05_nuclear 1 88 2030 700.0 1.0 0.0 +de 06_coal 1 88 2030 0.0 0.0 0.0 +de 07_gas 1 88 2030 0.0 0.0 0.0 +de 08_non-res 1 88 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 88 2030 0.0 0.0 0.0 +de 01_solar 1 89 2030 2000.0 1.0 0.0 +de 02_wind_on 1 89 2030 2000.0 1.0 0.0 +de 03_wind_off 1 89 2030 2000.0 1.0 0.0 +de 04_res 1 89 2030 2000.0 1.0 0.0 +de 05_nuclear 1 89 2030 800.0 1.0 0.0 +de 06_coal 1 89 2030 0.0 0.0 0.0 +de 07_gas 1 89 2030 0.0 0.0 0.0 +de 08_non-res 1 89 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 89 2030 0.0 0.0 0.0 +de 01_solar 1 90 2030 2000.0 1.0 0.0 +de 02_wind_on 1 90 2030 2000.0 1.0 0.0 +de 03_wind_off 1 90 2030 2000.0 1.0 0.0 +de 04_res 1 90 2030 2000.0 1.0 0.0 +de 05_nuclear 1 90 2030 900.0 1.0 0.0 +de 06_coal 1 90 2030 0.0 0.0 0.0 +de 07_gas 1 90 2030 0.0 0.0 0.0 +de 08_non-res 1 90 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 90 2030 0.0 0.0 0.0 +de 01_solar 1 91 2030 2000.0 1.0 0.0 +de 02_wind_on 1 91 2030 2000.0 1.0 0.0 +de 03_wind_off 1 91 2030 2000.0 1.0 0.0 +de 04_res 1 91 2030 2000.0 1.0 0.0 +de 05_nuclear 1 91 2030 1000.0 1.0 0.0 +de 06_coal 1 91 2030 0.0 0.0 0.0 +de 07_gas 1 91 2030 0.0 0.0 0.0 +de 08_non-res 1 91 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 91 2030 0.0 0.0 0.0 +de 01_solar 1 92 2030 2000.0 1.0 0.0 +de 02_wind_on 1 92 2030 2000.0 1.0 0.0 +de 03_wind_off 1 92 2030 2000.0 1.0 0.0 +de 04_res 1 92 2030 2000.0 1.0 0.0 +de 05_nuclear 1 92 2030 1100.0 1.0 0.0 +de 06_coal 1 92 2030 0.0 0.0 0.0 +de 07_gas 1 92 2030 0.0 0.0 0.0 +de 08_non-res 1 92 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 92 2030 0.0 0.0 0.0 +de 01_solar 1 93 2030 2000.0 1.0 0.0 +de 02_wind_on 1 93 2030 2000.0 1.0 0.0 +de 03_wind_off 1 93 2030 2000.0 1.0 0.0 +de 04_res 1 93 2030 2000.0 1.0 0.0 +de 05_nuclear 1 93 2030 1200.0 1.0 0.0 +de 06_coal 1 93 2030 0.0 0.0 0.0 +de 07_gas 1 93 2030 0.0 0.0 0.0 +de 08_non-res 1 93 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 93 2030 0.0 0.0 0.0 +de 01_solar 1 94 2030 2000.0 1.0 0.0 +de 02_wind_on 1 94 2030 2000.0 1.0 0.0 +de 03_wind_off 1 94 2030 2000.0 1.0 0.0 +de 04_res 1 94 2030 2000.0 1.0 0.0 +de 05_nuclear 1 94 2030 1300.0 1.0 0.0 +de 06_coal 1 94 2030 0.0 0.0 0.0 +de 07_gas 1 94 2030 0.0 0.0 0.0 +de 08_non-res 1 94 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 94 2030 0.0 0.0 0.0 +de 01_solar 1 95 2030 2000.0 1.0 0.0 +de 02_wind_on 1 95 2030 2000.0 1.0 0.0 +de 03_wind_off 1 95 2030 2000.0 1.0 0.0 +de 04_res 1 95 2030 2000.0 1.0 0.0 +de 05_nuclear 1 95 2030 1400.0 1.0 0.0 +de 06_coal 1 95 2030 0.0 0.0 0.0 +de 07_gas 1 95 2030 0.0 0.0 0.0 +de 08_non-res 1 95 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 95 2030 0.0 0.0 0.0 +de 01_solar 1 96 2030 2000.0 1.0 0.0 +de 02_wind_on 1 96 2030 2000.0 1.0 0.0 +de 03_wind_off 1 96 2030 2000.0 1.0 0.0 +de 04_res 1 96 2030 2000.0 1.0 0.0 +de 05_nuclear 1 96 2030 1500.0 1.0 0.0 +de 06_coal 1 96 2030 0.0 0.0 0.0 +de 07_gas 1 96 2030 0.0 0.0 0.0 +de 08_non-res 1 96 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 96 2030 0.0 0.0 0.0 +de 01_solar 1 97 2030 2000.0 1.0 0.0 +de 02_wind_on 1 97 2030 2000.0 1.0 0.0 +de 03_wind_off 1 97 2030 2000.0 1.0 0.0 +de 04_res 1 97 2030 2000.0 1.0 0.0 +de 05_nuclear 1 97 2030 1600.0 1.0 0.0 +de 06_coal 1 97 2030 0.0 0.0 0.0 +de 07_gas 1 97 2030 0.0 0.0 0.0 +de 08_non-res 1 97 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 97 2030 0.0 0.0 0.0 +de 01_solar 1 98 2030 2000.0 1.0 0.0 +de 02_wind_on 1 98 2030 2000.0 1.0 0.0 +de 03_wind_off 1 98 2030 2000.0 1.0 0.0 +de 04_res 1 98 2030 2000.0 1.0 0.0 +de 05_nuclear 1 98 2030 1700.0 1.0 0.0 +de 06_coal 1 98 2030 0.0 0.0 0.0 +de 07_gas 1 98 2030 0.0 0.0 0.0 +de 08_non-res 1 98 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 98 2030 0.0 0.0 0.0 +de 01_solar 1 99 2030 2000.0 1.0 0.0 +de 02_wind_on 1 99 2030 2000.0 1.0 0.0 +de 03_wind_off 1 99 2030 2000.0 1.0 0.0 +de 04_res 1 99 2030 2000.0 1.0 0.0 +de 05_nuclear 1 99 2030 1800.0 1.0 0.0 +de 06_coal 1 99 2030 0.0 0.0 0.0 +de 07_gas 1 99 2030 0.0 0.0 0.0 +de 08_non-res 1 99 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 99 2030 0.0 0.0 0.0 +de 01_solar 1 100 2030 2000.0 1.0 0.0 +de 02_wind_on 1 100 2030 2000.0 1.0 0.0 +de 03_wind_off 1 100 2030 2000.0 1.0 0.0 +de 04_res 1 100 2030 2000.0 1.0 0.0 +de 05_nuclear 1 100 2030 1900.0 1.0 0.0 +de 06_coal 1 100 2030 0.0 0.0 0.0 +de 07_gas 1 100 2030 0.0 0.0 0.0 +de 08_non-res 1 100 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 100 2030 0.0 0.0 0.0 +de 01_solar 1 101 2030 2000.0 1.0 0.0 +de 02_wind_on 1 101 2030 2000.0 1.0 0.0 +de 03_wind_off 1 101 2030 2000.0 1.0 0.0 +de 04_res 1 101 2030 2000.0 1.0 0.0 +de 05_nuclear 1 101 2030 2000.0 1.0 0.0 +de 06_coal 1 101 2030 0.0 0.0 0.0 +de 07_gas 1 101 2030 0.0 0.0 0.0 +de 08_non-res 1 101 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 101 2030 0.0 0.0 0.0 +de 01_solar 1 102 2030 2000.0 1.0 0.0 +de 02_wind_on 1 102 2030 2000.0 1.0 0.0 +de 03_wind_off 1 102 2030 2000.0 1.0 0.0 +de 04_res 1 102 2030 2000.0 1.0 0.0 +de 05_nuclear 1 102 2030 2000.0 1.0 0.0 +de 06_coal 1 102 2030 100.0 1.0 0.0 +de 07_gas 1 102 2030 0.0 0.0 0.0 +de 08_non-res 1 102 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 102 2030 0.0 0.0 0.0 +de 01_solar 1 103 2030 2000.0 1.0 0.0 +de 02_wind_on 1 103 2030 2000.0 1.0 0.0 +de 03_wind_off 1 103 2030 2000.0 1.0 0.0 +de 04_res 1 103 2030 2000.0 1.0 0.0 +de 05_nuclear 1 103 2030 2000.0 1.0 0.0 +de 06_coal 1 103 2030 200.0 1.0 0.0 +de 07_gas 1 103 2030 0.0 0.0 0.0 +de 08_non-res 1 103 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 103 2030 0.0 0.0 0.0 +de 01_solar 1 104 2030 2000.0 1.0 0.0 +de 02_wind_on 1 104 2030 2000.0 1.0 0.0 +de 03_wind_off 1 104 2030 2000.0 1.0 0.0 +de 04_res 1 104 2030 2000.0 1.0 0.0 +de 05_nuclear 1 104 2030 2000.0 1.0 0.0 +de 06_coal 1 104 2030 300.0 1.0 0.0 +de 07_gas 1 104 2030 0.0 0.0 0.0 +de 08_non-res 1 104 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 104 2030 0.0 0.0 0.0 +de 01_solar 1 105 2030 2000.0 1.0 0.0 +de 02_wind_on 1 105 2030 2000.0 1.0 0.0 +de 03_wind_off 1 105 2030 2000.0 1.0 0.0 +de 04_res 1 105 2030 2000.0 1.0 0.0 +de 05_nuclear 1 105 2030 2000.0 1.0 0.0 +de 06_coal 1 105 2030 400.0 1.0 0.0 +de 07_gas 1 105 2030 0.0 0.0 0.0 +de 08_non-res 1 105 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 105 2030 0.0 0.0 0.0 +de 01_solar 1 106 2030 2000.0 1.0 0.0 +de 02_wind_on 1 106 2030 2000.0 1.0 0.0 +de 03_wind_off 1 106 2030 2000.0 1.0 0.0 +de 04_res 1 106 2030 2000.0 1.0 0.0 +de 05_nuclear 1 106 2030 2000.0 1.0 0.0 +de 06_coal 1 106 2030 500.0 1.0 0.0 +de 07_gas 1 106 2030 0.0 0.0 0.0 +de 08_non-res 1 106 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 106 2030 0.0 0.0 0.0 +de 01_solar 1 107 2030 2000.0 1.0 0.0 +de 02_wind_on 1 107 2030 2000.0 1.0 0.0 +de 03_wind_off 1 107 2030 2000.0 1.0 0.0 +de 04_res 1 107 2030 2000.0 1.0 0.0 +de 05_nuclear 1 107 2030 2000.0 1.0 0.0 +de 06_coal 1 107 2030 600.0 1.0 0.0 +de 07_gas 1 107 2030 0.0 0.0 0.0 +de 08_non-res 1 107 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 107 2030 0.0 0.0 0.0 +de 01_solar 1 108 2030 2000.0 1.0 0.0 +de 02_wind_on 1 108 2030 2000.0 1.0 0.0 +de 03_wind_off 1 108 2030 2000.0 1.0 0.0 +de 04_res 1 108 2030 2000.0 1.0 0.0 +de 05_nuclear 1 108 2030 2000.0 1.0 0.0 +de 06_coal 1 108 2030 700.0 1.0 0.0 +de 07_gas 1 108 2030 0.0 0.0 0.0 +de 08_non-res 1 108 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 108 2030 0.0 0.0 0.0 +de 01_solar 1 109 2030 2000.0 1.0 0.0 +de 02_wind_on 1 109 2030 2000.0 1.0 0.0 +de 03_wind_off 1 109 2030 2000.0 1.0 0.0 +de 04_res 1 109 2030 2000.0 1.0 0.0 +de 05_nuclear 1 109 2030 2000.0 1.0 0.0 +de 06_coal 1 109 2030 800.0 1.0 0.0 +de 07_gas 1 109 2030 0.0 0.0 0.0 +de 08_non-res 1 109 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 109 2030 0.0 0.0 0.0 +de 01_solar 1 110 2030 2000.0 1.0 0.0 +de 02_wind_on 1 110 2030 2000.0 1.0 0.0 +de 03_wind_off 1 110 2030 2000.0 1.0 0.0 +de 04_res 1 110 2030 2000.0 1.0 0.0 +de 05_nuclear 1 110 2030 2000.0 1.0 0.0 +de 06_coal 1 110 2030 900.0 1.0 0.0 +de 07_gas 1 110 2030 0.0 0.0 0.0 +de 08_non-res 1 110 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 110 2030 0.0 0.0 0.0 +de 01_solar 1 111 2030 2000.0 1.0 0.0 +de 02_wind_on 1 111 2030 2000.0 1.0 0.0 +de 03_wind_off 1 111 2030 2000.0 1.0 0.0 +de 04_res 1 111 2030 2000.0 1.0 0.0 +de 05_nuclear 1 111 2030 2000.0 1.0 0.0 +de 06_coal 1 111 2030 1000.0 1.0 0.0 +de 07_gas 1 111 2030 0.0 0.0 0.0 +de 08_non-res 1 111 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 111 2030 0.0 0.0 0.0 +de 01_solar 1 112 2030 2000.0 1.0 0.0 +de 02_wind_on 1 112 2030 2000.0 1.0 0.0 +de 03_wind_off 1 112 2030 2000.0 1.0 0.0 +de 04_res 1 112 2030 2000.0 1.0 0.0 +de 05_nuclear 1 112 2030 2000.0 1.0 0.0 +de 06_coal 1 112 2030 1100.0 1.0 0.0 +de 07_gas 1 112 2030 0.0 0.0 0.0 +de 08_non-res 1 112 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 112 2030 0.0 0.0 0.0 +de 01_solar 1 113 2030 2000.0 1.0 0.0 +de 02_wind_on 1 113 2030 2000.0 1.0 0.0 +de 03_wind_off 1 113 2030 2000.0 1.0 0.0 +de 04_res 1 113 2030 2000.0 1.0 0.0 +de 05_nuclear 1 113 2030 2000.0 1.0 0.0 +de 06_coal 1 113 2030 1200.0 1.0 0.0 +de 07_gas 1 113 2030 0.0 0.0 0.0 +de 08_non-res 1 113 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 113 2030 0.0 0.0 0.0 +de 01_solar 1 114 2030 2000.0 1.0 0.0 +de 02_wind_on 1 114 2030 2000.0 1.0 0.0 +de 03_wind_off 1 114 2030 2000.0 1.0 0.0 +de 04_res 1 114 2030 2000.0 1.0 0.0 +de 05_nuclear 1 114 2030 2000.0 1.0 0.0 +de 06_coal 1 114 2030 1300.0 1.0 0.0 +de 07_gas 1 114 2030 0.0 0.0 0.0 +de 08_non-res 1 114 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 114 2030 0.0 0.0 0.0 +de 01_solar 1 115 2030 2000.0 1.0 0.0 +de 02_wind_on 1 115 2030 2000.0 1.0 0.0 +de 03_wind_off 1 115 2030 2000.0 1.0 0.0 +de 04_res 1 115 2030 2000.0 1.0 0.0 +de 05_nuclear 1 115 2030 2000.0 1.0 0.0 +de 06_coal 1 115 2030 1400.0 1.0 0.0 +de 07_gas 1 115 2030 0.0 0.0 0.0 +de 08_non-res 1 115 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 115 2030 0.0 0.0 0.0 +de 01_solar 1 116 2030 2000.0 1.0 0.0 +de 02_wind_on 1 116 2030 2000.0 1.0 0.0 +de 03_wind_off 1 116 2030 2000.0 1.0 0.0 +de 04_res 1 116 2030 2000.0 1.0 0.0 +de 05_nuclear 1 116 2030 2000.0 1.0 0.0 +de 06_coal 1 116 2030 1500.0 1.0 0.0 +de 07_gas 1 116 2030 0.0 0.0 0.0 +de 08_non-res 1 116 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 116 2030 0.0 0.0 0.0 +de 01_solar 1 117 2030 2000.0 1.0 0.0 +de 02_wind_on 1 117 2030 2000.0 1.0 0.0 +de 03_wind_off 1 117 2030 2000.0 1.0 0.0 +de 04_res 1 117 2030 2000.0 1.0 0.0 +de 05_nuclear 1 117 2030 2000.0 1.0 0.0 +de 06_coal 1 117 2030 1600.0 1.0 0.0 +de 07_gas 1 117 2030 0.0 0.0 0.0 +de 08_non-res 1 117 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 117 2030 0.0 0.0 0.0 +de 01_solar 1 118 2030 2000.0 1.0 0.0 +de 02_wind_on 1 118 2030 2000.0 1.0 0.0 +de 03_wind_off 1 118 2030 2000.0 1.0 0.0 +de 04_res 1 118 2030 2000.0 1.0 0.0 +de 05_nuclear 1 118 2030 2000.0 1.0 0.0 +de 06_coal 1 118 2030 1700.0 1.0 0.0 +de 07_gas 1 118 2030 0.0 0.0 0.0 +de 08_non-res 1 118 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 118 2030 0.0 0.0 0.0 +de 01_solar 1 119 2030 2000.0 1.0 0.0 +de 02_wind_on 1 119 2030 2000.0 1.0 0.0 +de 03_wind_off 1 119 2030 2000.0 1.0 0.0 +de 04_res 1 119 2030 2000.0 1.0 0.0 +de 05_nuclear 1 119 2030 2000.0 1.0 0.0 +de 06_coal 1 119 2030 1800.0 1.0 0.0 +de 07_gas 1 119 2030 0.0 0.0 0.0 +de 08_non-res 1 119 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 119 2030 0.0 0.0 0.0 +de 01_solar 1 120 2030 2000.0 1.0 0.0 +de 02_wind_on 1 120 2030 2000.0 1.0 0.0 +de 03_wind_off 1 120 2030 2000.0 1.0 0.0 +de 04_res 1 120 2030 2000.0 1.0 0.0 +de 05_nuclear 1 120 2030 2000.0 1.0 0.0 +de 06_coal 1 120 2030 1900.0 1.0 0.0 +de 07_gas 1 120 2030 0.0 0.0 0.0 +de 08_non-res 1 120 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 120 2030 0.0 0.0 0.0 +de 01_solar 1 121 2030 2000.0 1.0 0.0 +de 02_wind_on 1 121 2030 2000.0 1.0 0.0 +de 03_wind_off 1 121 2030 2000.0 1.0 0.0 +de 04_res 1 121 2030 2000.0 1.0 0.0 +de 05_nuclear 1 121 2030 2000.0 1.0 0.0 +de 06_coal 1 121 2030 2000.0 1.0 0.0 +de 07_gas 1 121 2030 0.0 0.0 0.0 +de 08_non-res 1 121 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 121 2030 0.0 0.0 0.0 +de 01_solar 1 122 2030 2000.0 1.0 0.0 +de 02_wind_on 1 122 2030 2000.0 1.0 0.0 +de 03_wind_off 1 122 2030 2000.0 1.0 0.0 +de 04_res 1 122 2030 2000.0 1.0 0.0 +de 05_nuclear 1 122 2030 2000.0 1.0 0.0 +de 06_coal 1 122 2030 2000.0 1.0 0.0 +de 07_gas 1 122 2030 100.0 1.0 0.0 +de 08_non-res 1 122 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 122 2030 0.0 0.0 0.0 +de 01_solar 1 123 2030 2000.0 1.0 0.0 +de 02_wind_on 1 123 2030 2000.0 1.0 0.0 +de 03_wind_off 1 123 2030 2000.0 1.0 0.0 +de 04_res 1 123 2030 2000.0 1.0 0.0 +de 05_nuclear 1 123 2030 2000.0 1.0 0.0 +de 06_coal 1 123 2030 2000.0 1.0 0.0 +de 07_gas 1 123 2030 200.0 1.0 0.0 +de 08_non-res 1 123 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 123 2030 0.0 0.0 0.0 +de 01_solar 1 124 2030 2000.0 1.0 0.0 +de 02_wind_on 1 124 2030 2000.0 1.0 0.0 +de 03_wind_off 1 124 2030 2000.0 1.0 0.0 +de 04_res 1 124 2030 2000.0 1.0 0.0 +de 05_nuclear 1 124 2030 2000.0 1.0 0.0 +de 06_coal 1 124 2030 2000.0 1.0 0.0 +de 07_gas 1 124 2030 300.0 1.0 0.0 +de 08_non-res 1 124 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 124 2030 0.0 0.0 0.0 +de 01_solar 1 125 2030 2000.0 1.0 0.0 +de 02_wind_on 1 125 2030 2000.0 1.0 0.0 +de 03_wind_off 1 125 2030 2000.0 1.0 0.0 +de 04_res 1 125 2030 2000.0 1.0 0.0 +de 05_nuclear 1 125 2030 2000.0 1.0 0.0 +de 06_coal 1 125 2030 2000.0 1.0 0.0 +de 07_gas 1 125 2030 400.0 1.0 0.0 +de 08_non-res 1 125 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 125 2030 0.0 0.0 0.0 +de 01_solar 1 126 2030 2000.0 1.0 0.0 +de 02_wind_on 1 126 2030 2000.0 1.0 0.0 +de 03_wind_off 1 126 2030 2000.0 1.0 0.0 +de 04_res 1 126 2030 2000.0 1.0 0.0 +de 05_nuclear 1 126 2030 2000.0 1.0 0.0 +de 06_coal 1 126 2030 2000.0 1.0 0.0 +de 07_gas 1 126 2030 500.0 1.0 0.0 +de 08_non-res 1 126 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 126 2030 0.0 0.0 0.0 +de 01_solar 1 127 2030 2000.0 1.0 0.0 +de 02_wind_on 1 127 2030 2000.0 1.0 0.0 +de 03_wind_off 1 127 2030 2000.0 1.0 0.0 +de 04_res 1 127 2030 2000.0 1.0 0.0 +de 05_nuclear 1 127 2030 2000.0 1.0 0.0 +de 06_coal 1 127 2030 2000.0 1.0 0.0 +de 07_gas 1 127 2030 600.0 1.0 0.0 +de 08_non-res 1 127 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 127 2030 0.0 0.0 0.0 +de 01_solar 1 128 2030 2000.0 1.0 0.0 +de 02_wind_on 1 128 2030 2000.0 1.0 0.0 +de 03_wind_off 1 128 2030 2000.0 1.0 0.0 +de 04_res 1 128 2030 2000.0 1.0 0.0 +de 05_nuclear 1 128 2030 2000.0 1.0 0.0 +de 06_coal 1 128 2030 2000.0 1.0 0.0 +de 07_gas 1 128 2030 700.0 1.0 0.0 +de 08_non-res 1 128 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 128 2030 0.0 0.0 0.0 +de 01_solar 1 129 2030 2000.0 1.0 0.0 +de 02_wind_on 1 129 2030 2000.0 1.0 0.0 +de 03_wind_off 1 129 2030 2000.0 1.0 0.0 +de 04_res 1 129 2030 2000.0 1.0 0.0 +de 05_nuclear 1 129 2030 2000.0 1.0 0.0 +de 06_coal 1 129 2030 2000.0 1.0 0.0 +de 07_gas 1 129 2030 800.0 1.0 0.0 +de 08_non-res 1 129 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 129 2030 0.0 0.0 0.0 +de 01_solar 1 130 2030 2000.0 1.0 0.0 +de 02_wind_on 1 130 2030 2000.0 1.0 0.0 +de 03_wind_off 1 130 2030 2000.0 1.0 0.0 +de 04_res 1 130 2030 2000.0 1.0 0.0 +de 05_nuclear 1 130 2030 2000.0 1.0 0.0 +de 06_coal 1 130 2030 2000.0 1.0 0.0 +de 07_gas 1 130 2030 900.0 1.0 0.0 +de 08_non-res 1 130 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 130 2030 0.0 0.0 0.0 +de 01_solar 1 131 2030 2000.0 1.0 0.0 +de 02_wind_on 1 131 2030 2000.0 1.0 0.0 +de 03_wind_off 1 131 2030 2000.0 1.0 0.0 +de 04_res 1 131 2030 2000.0 1.0 0.0 +de 05_nuclear 1 131 2030 2000.0 1.0 0.0 +de 06_coal 1 131 2030 2000.0 1.0 0.0 +de 07_gas 1 131 2030 1000.0 1.0 0.0 +de 08_non-res 1 131 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 131 2030 0.0 0.0 0.0 +de 01_solar 1 132 2030 2000.0 1.0 0.0 +de 02_wind_on 1 132 2030 2000.0 1.0 0.0 +de 03_wind_off 1 132 2030 2000.0 1.0 0.0 +de 04_res 1 132 2030 2000.0 1.0 0.0 +de 05_nuclear 1 132 2030 2000.0 1.0 0.0 +de 06_coal 1 132 2030 2000.0 1.0 0.0 +de 07_gas 1 132 2030 1100.0 1.0 0.0 +de 08_non-res 1 132 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 132 2030 0.0 0.0 0.0 +de 01_solar 1 133 2030 2000.0 1.0 0.0 +de 02_wind_on 1 133 2030 2000.0 1.0 0.0 +de 03_wind_off 1 133 2030 2000.0 1.0 0.0 +de 04_res 1 133 2030 2000.0 1.0 0.0 +de 05_nuclear 1 133 2030 2000.0 1.0 0.0 +de 06_coal 1 133 2030 2000.0 1.0 0.0 +de 07_gas 1 133 2030 1200.0 1.0 0.0 +de 08_non-res 1 133 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 133 2030 0.0 0.0 0.0 +de 01_solar 1 134 2030 2000.0 1.0 0.0 +de 02_wind_on 1 134 2030 2000.0 1.0 0.0 +de 03_wind_off 1 134 2030 2000.0 1.0 0.0 +de 04_res 1 134 2030 2000.0 1.0 0.0 +de 05_nuclear 1 134 2030 2000.0 1.0 0.0 +de 06_coal 1 134 2030 2000.0 1.0 0.0 +de 07_gas 1 134 2030 1300.0 1.0 0.0 +de 08_non-res 1 134 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 134 2030 0.0 0.0 0.0 +de 01_solar 1 135 2030 2000.0 1.0 0.0 +de 02_wind_on 1 135 2030 2000.0 1.0 0.0 +de 03_wind_off 1 135 2030 2000.0 1.0 0.0 +de 04_res 1 135 2030 2000.0 1.0 0.0 +de 05_nuclear 1 135 2030 2000.0 1.0 0.0 +de 06_coal 1 135 2030 2000.0 1.0 0.0 +de 07_gas 1 135 2030 1400.0 1.0 0.0 +de 08_non-res 1 135 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 135 2030 0.0 0.0 0.0 +de 01_solar 1 136 2030 2000.0 1.0 0.0 +de 02_wind_on 1 136 2030 2000.0 1.0 0.0 +de 03_wind_off 1 136 2030 2000.0 1.0 0.0 +de 04_res 1 136 2030 2000.0 1.0 0.0 +de 05_nuclear 1 136 2030 2000.0 1.0 0.0 +de 06_coal 1 136 2030 2000.0 1.0 0.0 +de 07_gas 1 136 2030 1500.0 1.0 0.0 +de 08_non-res 1 136 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 136 2030 0.0 0.0 0.0 +de 01_solar 1 137 2030 2000.0 1.0 0.0 +de 02_wind_on 1 137 2030 2000.0 1.0 0.0 +de 03_wind_off 1 137 2030 2000.0 1.0 0.0 +de 04_res 1 137 2030 2000.0 1.0 0.0 +de 05_nuclear 1 137 2030 2000.0 1.0 0.0 +de 06_coal 1 137 2030 2000.0 1.0 0.0 +de 07_gas 1 137 2030 1600.0 1.0 0.0 +de 08_non-res 1 137 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 137 2030 0.0 0.0 0.0 +de 01_solar 1 138 2030 2000.0 1.0 0.0 +de 02_wind_on 1 138 2030 2000.0 1.0 0.0 +de 03_wind_off 1 138 2030 2000.0 1.0 0.0 +de 04_res 1 138 2030 2000.0 1.0 0.0 +de 05_nuclear 1 138 2030 2000.0 1.0 0.0 +de 06_coal 1 138 2030 2000.0 1.0 0.0 +de 07_gas 1 138 2030 1700.0 1.0 0.0 +de 08_non-res 1 138 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 138 2030 0.0 0.0 0.0 +de 01_solar 1 139 2030 2000.0 1.0 0.0 +de 02_wind_on 1 139 2030 2000.0 1.0 0.0 +de 03_wind_off 1 139 2030 2000.0 1.0 0.0 +de 04_res 1 139 2030 2000.0 1.0 0.0 +de 05_nuclear 1 139 2030 2000.0 1.0 0.0 +de 06_coal 1 139 2030 2000.0 1.0 0.0 +de 07_gas 1 139 2030 1800.0 1.0 0.0 +de 08_non-res 1 139 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 139 2030 0.0 0.0 0.0 +de 01_solar 1 140 2030 2000.0 1.0 0.0 +de 02_wind_on 1 140 2030 2000.0 1.0 0.0 +de 03_wind_off 1 140 2030 2000.0 1.0 0.0 +de 04_res 1 140 2030 2000.0 1.0 0.0 +de 05_nuclear 1 140 2030 2000.0 1.0 0.0 +de 06_coal 1 140 2030 2000.0 1.0 0.0 +de 07_gas 1 140 2030 1900.0 1.0 0.0 +de 08_non-res 1 140 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 140 2030 0.0 0.0 0.0 +de 01_solar 1 141 2030 2000.0 1.0 0.0 +de 02_wind_on 1 141 2030 2000.0 1.0 0.0 +de 03_wind_off 1 141 2030 2000.0 1.0 0.0 +de 04_res 1 141 2030 2000.0 1.0 0.0 +de 05_nuclear 1 141 2030 2000.0 1.0 0.0 +de 06_coal 1 141 2030 2000.0 1.0 0.0 +de 07_gas 1 141 2030 2000.0 1.0 0.0 +de 08_non-res 1 141 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 141 2030 0.0 0.0 0.0 +de 01_solar 1 142 2030 2000.0 1.0 0.0 +de 02_wind_on 1 142 2030 2000.0 1.0 0.0 +de 03_wind_off 1 142 2030 2000.0 1.0 0.0 +de 04_res 1 142 2030 2000.0 1.0 0.0 +de 05_nuclear 1 142 2030 2000.0 1.0 0.0 +de 06_coal 1 142 2030 2000.0 1.0 0.0 +de 07_gas 1 142 2030 2000.0 1.0 0.0 +de 08_non-res 1 142 2030 100.0 1.0 0.0 +de 09_hydro_pump 1 142 2030 0.0 0.0 0.0 +de 01_solar 1 143 2030 2000.0 1.0 0.0 +de 02_wind_on 1 143 2030 2000.0 1.0 0.0 +de 03_wind_off 1 143 2030 2000.0 1.0 0.0 +de 04_res 1 143 2030 2000.0 1.0 0.0 +de 05_nuclear 1 143 2030 2000.0 1.0 0.0 +de 06_coal 1 143 2030 2000.0 1.0 0.0 +de 07_gas 1 143 2030 2000.0 1.0 0.0 +de 08_non-res 1 143 2030 200.0 1.0 0.0 +de 09_hydro_pump 1 143 2030 0.0 0.0 0.0 +de 01_solar 1 144 2030 2000.0 1.0 0.0 +de 02_wind_on 1 144 2030 2000.0 1.0 0.0 +de 03_wind_off 1 144 2030 2000.0 1.0 0.0 +de 04_res 1 144 2030 2000.0 1.0 0.0 +de 05_nuclear 1 144 2030 2000.0 1.0 0.0 +de 06_coal 1 144 2030 2000.0 1.0 0.0 +de 07_gas 1 144 2030 2000.0 1.0 0.0 +de 08_non-res 1 144 2030 300.0 1.0 0.0 +de 09_hydro_pump 1 144 2030 0.0 0.0 0.0 +de 01_solar 1 145 2030 2000.0 1.0 0.0 +de 02_wind_on 1 145 2030 2000.0 1.0 0.0 +de 03_wind_off 1 145 2030 2000.0 1.0 0.0 +de 04_res 1 145 2030 2000.0 1.0 0.0 +de 05_nuclear 1 145 2030 2000.0 1.0 0.0 +de 06_coal 1 145 2030 2000.0 1.0 0.0 +de 07_gas 1 145 2030 2000.0 1.0 0.0 +de 08_non-res 1 145 2030 400.0 1.0 0.0 +de 09_hydro_pump 1 145 2030 0.0 0.0 0.0 +de 01_solar 1 146 2030 2000.0 1.0 0.0 +de 02_wind_on 1 146 2030 2000.0 1.0 0.0 +de 03_wind_off 1 146 2030 2000.0 1.0 0.0 +de 04_res 1 146 2030 2000.0 1.0 0.0 +de 05_nuclear 1 146 2030 2000.0 1.0 0.0 +de 06_coal 1 146 2030 2000.0 1.0 0.0 +de 07_gas 1 146 2030 2000.0 1.0 0.0 +de 08_non-res 1 146 2030 500.0 1.0 0.0 +de 09_hydro_pump 1 146 2030 0.0 0.0 0.0 +de 01_solar 1 147 2030 2000.0 1.0 0.0 +de 02_wind_on 1 147 2030 2000.0 1.0 0.0 +de 03_wind_off 1 147 2030 2000.0 1.0 0.0 +de 04_res 1 147 2030 2000.0 1.0 0.0 +de 05_nuclear 1 147 2030 2000.0 1.0 0.0 +de 06_coal 1 147 2030 2000.0 1.0 0.0 +de 07_gas 1 147 2030 2000.0 1.0 0.0 +de 08_non-res 1 147 2030 600.0 1.0 0.0 +de 09_hydro_pump 1 147 2030 0.0 0.0 0.0 +de 01_solar 1 148 2030 2000.0 1.0 0.0 +de 02_wind_on 1 148 2030 2000.0 1.0 0.0 +de 03_wind_off 1 148 2030 2000.0 1.0 0.0 +de 04_res 1 148 2030 2000.0 1.0 0.0 +de 05_nuclear 1 148 2030 2000.0 1.0 0.0 +de 06_coal 1 148 2030 2000.0 1.0 0.0 +de 07_gas 1 148 2030 2000.0 1.0 0.0 +de 08_non-res 1 148 2030 700.0 1.0 0.0 +de 09_hydro_pump 1 148 2030 0.0 0.0 0.0 +de 01_solar 1 149 2030 2000.0 1.0 0.0 +de 02_wind_on 1 149 2030 2000.0 1.0 0.0 +de 03_wind_off 1 149 2030 2000.0 1.0 0.0 +de 04_res 1 149 2030 2000.0 1.0 0.0 +de 05_nuclear 1 149 2030 2000.0 1.0 0.0 +de 06_coal 1 149 2030 2000.0 1.0 0.0 +de 07_gas 1 149 2030 2000.0 1.0 0.0 +de 08_non-res 1 149 2030 800.0 1.0 0.0 +de 09_hydro_pump 1 149 2030 0.0 0.0 0.0 +de 01_solar 1 150 2030 2000.0 1.0 0.0 +de 02_wind_on 1 150 2030 2000.0 1.0 0.0 +de 03_wind_off 1 150 2030 2000.0 1.0 0.0 +de 04_res 1 150 2030 2000.0 1.0 0.0 +de 05_nuclear 1 150 2030 2000.0 1.0 0.0 +de 06_coal 1 150 2030 2000.0 1.0 0.0 +de 07_gas 1 150 2030 2000.0 1.0 0.0 +de 08_non-res 1 150 2030 900.0 1.0 0.0 +de 09_hydro_pump 1 150 2030 0.0 0.0 0.0 +de 01_solar 1 151 2030 2000.0 1.0 0.0 +de 02_wind_on 1 151 2030 2000.0 1.0 0.0 +de 03_wind_off 1 151 2030 2000.0 1.0 0.0 +de 04_res 1 151 2030 2000.0 1.0 0.0 +de 05_nuclear 1 151 2030 2000.0 1.0 0.0 +de 06_coal 1 151 2030 2000.0 1.0 0.0 +de 07_gas 1 151 2030 2000.0 1.0 0.0 +de 08_non-res 1 151 2030 1000.0 1.0 0.0 +de 09_hydro_pump 1 151 2030 0.0 0.0 0.0 +de 01_solar 1 152 2030 2000.0 1.0 0.0 +de 02_wind_on 1 152 2030 2000.0 1.0 0.0 +de 03_wind_off 1 152 2030 2000.0 1.0 0.0 +de 04_res 1 152 2030 2000.0 1.0 0.0 +de 05_nuclear 1 152 2030 2000.0 1.0 0.0 +de 06_coal 1 152 2030 2000.0 1.0 0.0 +de 07_gas 1 152 2030 2000.0 1.0 0.0 +de 08_non-res 1 152 2030 1100.0 1.0 0.0 +de 09_hydro_pump 1 152 2030 0.0 0.0 0.0 +de 01_solar 1 153 2030 2000.0 1.0 0.0 +de 02_wind_on 1 153 2030 2000.0 1.0 0.0 +de 03_wind_off 1 153 2030 2000.0 1.0 0.0 +de 04_res 1 153 2030 2000.0 1.0 0.0 +de 05_nuclear 1 153 2030 2000.0 1.0 0.0 +de 06_coal 1 153 2030 2000.0 1.0 0.0 +de 07_gas 1 153 2030 2000.0 1.0 0.0 +de 08_non-res 1 153 2030 1200.0 1.0 0.0 +de 09_hydro_pump 1 153 2030 0.0 0.0 0.0 +de 01_solar 1 154 2030 2000.0 1.0 0.0 +de 02_wind_on 1 154 2030 2000.0 1.0 0.0 +de 03_wind_off 1 154 2030 2000.0 1.0 0.0 +de 04_res 1 154 2030 2000.0 1.0 0.0 +de 05_nuclear 1 154 2030 2000.0 1.0 0.0 +de 06_coal 1 154 2030 2000.0 1.0 0.0 +de 07_gas 1 154 2030 2000.0 1.0 0.0 +de 08_non-res 1 154 2030 1300.0 1.0 0.0 +de 09_hydro_pump 1 154 2030 0.0 0.0 0.0 +de 01_solar 1 155 2030 2000.0 1.0 0.0 +de 02_wind_on 1 155 2030 2000.0 1.0 0.0 +de 03_wind_off 1 155 2030 2000.0 1.0 0.0 +de 04_res 1 155 2030 2000.0 1.0 0.0 +de 05_nuclear 1 155 2030 2000.0 1.0 0.0 +de 06_coal 1 155 2030 2000.0 1.0 0.0 +de 07_gas 1 155 2030 2000.0 1.0 0.0 +de 08_non-res 1 155 2030 1400.0 1.0 0.0 +de 09_hydro_pump 1 155 2030 0.0 0.0 0.0 +de 01_solar 1 156 2030 2000.0 1.0 0.0 +de 02_wind_on 1 156 2030 2000.0 1.0 0.0 +de 03_wind_off 1 156 2030 2000.0 1.0 0.0 +de 04_res 1 156 2030 2000.0 1.0 0.0 +de 05_nuclear 1 156 2030 2000.0 1.0 0.0 +de 06_coal 1 156 2030 2000.0 1.0 0.0 +de 07_gas 1 156 2030 2000.0 1.0 0.0 +de 08_non-res 1 156 2030 1500.0 1.0 0.0 +de 09_hydro_pump 1 156 2030 0.0 0.0 0.0 +de 01_solar 1 157 2030 2000.0 1.0 0.0 +de 02_wind_on 1 157 2030 2000.0 1.0 0.0 +de 03_wind_off 1 157 2030 2000.0 1.0 0.0 +de 04_res 1 157 2030 2000.0 1.0 0.0 +de 05_nuclear 1 157 2030 2000.0 1.0 0.0 +de 06_coal 1 157 2030 2000.0 1.0 0.0 +de 07_gas 1 157 2030 2000.0 1.0 0.0 +de 08_non-res 1 157 2030 1600.0 1.0 0.0 +de 09_hydro_pump 1 157 2030 0.0 0.0 0.0 +de 01_solar 1 158 2030 2000.0 1.0 0.0 +de 02_wind_on 1 158 2030 2000.0 1.0 0.0 +de 03_wind_off 1 158 2030 2000.0 1.0 0.0 +de 04_res 1 158 2030 2000.0 1.0 0.0 +de 05_nuclear 1 158 2030 2000.0 1.0 0.0 +de 06_coal 1 158 2030 2000.0 1.0 0.0 +de 07_gas 1 158 2030 2000.0 1.0 0.0 +de 08_non-res 1 158 2030 1700.0 1.0 0.0 +de 09_hydro_pump 1 158 2030 0.0 0.0 0.0 +de 01_solar 1 159 2030 2000.0 1.0 0.0 +de 02_wind_on 1 159 2030 2000.0 1.0 0.0 +de 03_wind_off 1 159 2030 2000.0 1.0 0.0 +de 04_res 1 159 2030 2000.0 1.0 0.0 +de 05_nuclear 1 159 2030 2000.0 1.0 0.0 +de 06_coal 1 159 2030 2000.0 1.0 0.0 +de 07_gas 1 159 2030 2000.0 1.0 0.0 +de 08_non-res 1 159 2030 1800.0 1.0 0.0 +de 09_hydro_pump 1 159 2030 0.0 0.0 0.0 +de 01_solar 1 160 2030 2000.0 1.0 0.0 +de 02_wind_on 1 160 2030 2000.0 1.0 0.0 +de 03_wind_off 1 160 2030 2000.0 1.0 0.0 +de 04_res 1 160 2030 2000.0 1.0 0.0 +de 05_nuclear 1 160 2030 2000.0 1.0 0.0 +de 06_coal 1 160 2030 2000.0 1.0 0.0 +de 07_gas 1 160 2030 2000.0 1.0 0.0 +de 08_non-res 1 160 2030 1900.0 1.0 0.0 +de 09_hydro_pump 1 160 2030 0.0 0.0 0.0 +de 01_solar 1 161 2030 2000.0 1.0 0.0 +de 02_wind_on 1 161 2030 2000.0 1.0 0.0 +de 03_wind_off 1 161 2030 2000.0 1.0 0.0 +de 04_res 1 161 2030 2000.0 1.0 0.0 +de 05_nuclear 1 161 2030 2000.0 1.0 0.0 +de 06_coal 1 161 2030 2000.0 1.0 0.0 +de 07_gas 1 161 2030 2000.0 1.0 0.0 +de 08_non-res 1 161 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 161 2030 0.0 0.0 0.0 +de 01_solar 1 162 2030 2000.0 1.0 0.0 +de 02_wind_on 1 162 2030 2000.0 1.0 0.0 +de 03_wind_off 1 162 2030 2000.0 1.0 0.0 +de 04_res 1 162 2030 2000.0 1.0 0.0 +de 05_nuclear 1 162 2030 2000.0 1.0 0.0 +de 06_coal 1 162 2030 2000.0 1.0 0.0 +de 07_gas 1 162 2030 2000.0 1.0 0.0 +de 08_non-res 1 162 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 162 2030 100.0 1.0 0.0 +de 01_solar 1 163 2030 2000.0 1.0 0.0 +de 02_wind_on 1 163 2030 2000.0 1.0 0.0 +de 03_wind_off 1 163 2030 2000.0 1.0 0.0 +de 04_res 1 163 2030 2000.0 1.0 0.0 +de 05_nuclear 1 163 2030 2000.0 1.0 0.0 +de 06_coal 1 163 2030 2000.0 1.0 0.0 +de 07_gas 1 163 2030 2000.0 1.0 0.0 +de 08_non-res 1 163 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 163 2030 200.0 1.0 0.0 +de 01_solar 1 164 2030 2000.0 1.0 0.0 +de 02_wind_on 1 164 2030 2000.0 1.0 0.0 +de 03_wind_off 1 164 2030 2000.0 1.0 0.0 +de 04_res 1 164 2030 2000.0 1.0 0.0 +de 05_nuclear 1 164 2030 2000.0 1.0 0.0 +de 06_coal 1 164 2030 2000.0 1.0 0.0 +de 07_gas 1 164 2030 2000.0 1.0 0.0 +de 08_non-res 1 164 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 164 2030 300.0 1.0 0.0 +de 01_solar 1 165 2030 2000.0 1.0 0.0 +de 02_wind_on 1 165 2030 2000.0 1.0 0.0 +de 03_wind_off 1 165 2030 2000.0 1.0 0.0 +de 04_res 1 165 2030 2000.0 1.0 0.0 +de 05_nuclear 1 165 2030 2000.0 1.0 0.0 +de 06_coal 1 165 2030 2000.0 1.0 0.0 +de 07_gas 1 165 2030 2000.0 1.0 0.0 +de 08_non-res 1 165 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 165 2030 400.0 1.0 0.0 +de 01_solar 1 166 2030 2000.0 1.0 0.0 +de 02_wind_on 1 166 2030 2000.0 1.0 0.0 +de 03_wind_off 1 166 2030 2000.0 1.0 0.0 +de 04_res 1 166 2030 2000.0 1.0 0.0 +de 05_nuclear 1 166 2030 2000.0 1.0 0.0 +de 06_coal 1 166 2030 2000.0 1.0 0.0 +de 07_gas 1 166 2030 2000.0 1.0 0.0 +de 08_non-res 1 166 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 166 2030 500.0 1.0 0.0 +de 01_solar 1 167 2030 2000.0 1.0 0.0 +de 02_wind_on 1 167 2030 2000.0 1.0 0.0 +de 03_wind_off 1 167 2030 2000.0 1.0 0.0 +de 04_res 1 167 2030 2000.0 1.0 0.0 +de 05_nuclear 1 167 2030 2000.0 1.0 0.0 +de 06_coal 1 167 2030 2000.0 1.0 0.0 +de 07_gas 1 167 2030 2000.0 1.0 0.0 +de 08_non-res 1 167 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 167 2030 600.0 1.0 0.0 +de 01_solar 1 168 2030 2000.0 1.0 0.0 +de 02_wind_on 1 168 2030 2000.0 1.0 0.0 +de 03_wind_off 1 168 2030 2000.0 1.0 0.0 +de 04_res 1 168 2030 2000.0 1.0 0.0 +de 05_nuclear 1 168 2030 2000.0 1.0 0.0 +de 06_coal 1 168 2030 2000.0 1.0 0.0 +de 07_gas 1 168 2030 2000.0 1.0 0.0 +de 08_non-res 1 168 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 168 2030 700.0 1.0 0.0 +de 01_solar 1 169 2030 0.0 0.0 0.0 +de 02_wind_on 1 169 2030 0.0 0.0 0.0 +de 03_wind_off 1 169 2030 0.0 0.0 0.0 +de 04_res 1 169 2030 0.0 0.0 0.0 +de 05_nuclear 1 169 2030 0.0 0.0 0.0 +de 06_coal 1 169 2030 0.0 0.0 0.0 +de 07_gas 1 169 2030 0.0 0.0 0.0 +de 08_non-res 1 169 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 169 2030 0.0 0.0 0.0 +de 01_solar 1 170 2030 100.0 1.0 0.0 +de 02_wind_on 1 170 2030 0.0 0.0 0.0 +de 03_wind_off 1 170 2030 0.0 0.0 0.0 +de 04_res 1 170 2030 0.0 0.0 0.0 +de 05_nuclear 1 170 2030 0.0 0.0 0.0 +de 06_coal 1 170 2030 0.0 0.0 0.0 +de 07_gas 1 170 2030 0.0 0.0 0.0 +de 08_non-res 1 170 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 170 2030 0.0 0.0 0.0 +de 01_solar 1 171 2030 200.0 1.0 0.0 +de 02_wind_on 1 171 2030 0.0 0.0 0.0 +de 03_wind_off 1 171 2030 0.0 0.0 0.0 +de 04_res 1 171 2030 0.0 0.0 0.0 +de 05_nuclear 1 171 2030 0.0 0.0 0.0 +de 06_coal 1 171 2030 0.0 0.0 0.0 +de 07_gas 1 171 2030 0.0 0.0 0.0 +de 08_non-res 1 171 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 171 2030 0.0 0.0 0.0 +de 01_solar 1 172 2030 300.0 1.0 0.0 +de 02_wind_on 1 172 2030 0.0 0.0 0.0 +de 03_wind_off 1 172 2030 0.0 0.0 0.0 +de 04_res 1 172 2030 0.0 0.0 0.0 +de 05_nuclear 1 172 2030 0.0 0.0 0.0 +de 06_coal 1 172 2030 0.0 0.0 0.0 +de 07_gas 1 172 2030 0.0 0.0 0.0 +de 08_non-res 1 172 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 172 2030 0.0 0.0 0.0 +de 01_solar 1 173 2030 400.0 1.0 0.0 +de 02_wind_on 1 173 2030 0.0 0.0 0.0 +de 03_wind_off 1 173 2030 0.0 0.0 0.0 +de 04_res 1 173 2030 0.0 0.0 0.0 +de 05_nuclear 1 173 2030 0.0 0.0 0.0 +de 06_coal 1 173 2030 0.0 0.0 0.0 +de 07_gas 1 173 2030 0.0 0.0 0.0 +de 08_non-res 1 173 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 173 2030 0.0 0.0 0.0 +de 01_solar 1 174 2030 500.0 1.0 0.0 +de 02_wind_on 1 174 2030 0.0 0.0 0.0 +de 03_wind_off 1 174 2030 0.0 0.0 0.0 +de 04_res 1 174 2030 0.0 0.0 0.0 +de 05_nuclear 1 174 2030 0.0 0.0 0.0 +de 06_coal 1 174 2030 0.0 0.0 0.0 +de 07_gas 1 174 2030 0.0 0.0 0.0 +de 08_non-res 1 174 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 174 2030 0.0 0.0 0.0 +de 01_solar 1 175 2030 600.0 1.0 0.0 +de 02_wind_on 1 175 2030 0.0 0.0 0.0 +de 03_wind_off 1 175 2030 0.0 0.0 0.0 +de 04_res 1 175 2030 0.0 0.0 0.0 +de 05_nuclear 1 175 2030 0.0 0.0 0.0 +de 06_coal 1 175 2030 0.0 0.0 0.0 +de 07_gas 1 175 2030 0.0 0.0 0.0 +de 08_non-res 1 175 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 175 2030 0.0 0.0 0.0 +de 01_solar 1 176 2030 700.0 1.0 0.0 +de 02_wind_on 1 176 2030 0.0 0.0 0.0 +de 03_wind_off 1 176 2030 0.0 0.0 0.0 +de 04_res 1 176 2030 0.0 0.0 0.0 +de 05_nuclear 1 176 2030 0.0 0.0 0.0 +de 06_coal 1 176 2030 0.0 0.0 0.0 +de 07_gas 1 176 2030 0.0 0.0 0.0 +de 08_non-res 1 176 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 176 2030 0.0 0.0 0.0 +de 01_solar 1 177 2030 800.0 1.0 0.0 +de 02_wind_on 1 177 2030 0.0 0.0 0.0 +de 03_wind_off 1 177 2030 0.0 0.0 0.0 +de 04_res 1 177 2030 0.0 0.0 0.0 +de 05_nuclear 1 177 2030 0.0 0.0 0.0 +de 06_coal 1 177 2030 0.0 0.0 0.0 +de 07_gas 1 177 2030 0.0 0.0 0.0 +de 08_non-res 1 177 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 177 2030 0.0 0.0 0.0 +de 01_solar 1 178 2030 900.0 1.0 0.0 +de 02_wind_on 1 178 2030 0.0 0.0 0.0 +de 03_wind_off 1 178 2030 0.0 0.0 0.0 +de 04_res 1 178 2030 0.0 0.0 0.0 +de 05_nuclear 1 178 2030 0.0 0.0 0.0 +de 06_coal 1 178 2030 0.0 0.0 0.0 +de 07_gas 1 178 2030 0.0 0.0 0.0 +de 08_non-res 1 178 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 178 2030 0.0 0.0 0.0 +de 01_solar 1 179 2030 1000.0 1.0 0.0 +de 02_wind_on 1 179 2030 0.0 0.0 0.0 +de 03_wind_off 1 179 2030 0.0 0.0 0.0 +de 04_res 1 179 2030 0.0 0.0 0.0 +de 05_nuclear 1 179 2030 0.0 0.0 0.0 +de 06_coal 1 179 2030 0.0 0.0 0.0 +de 07_gas 1 179 2030 0.0 0.0 0.0 +de 08_non-res 1 179 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 179 2030 0.0 0.0 0.0 +de 01_solar 1 180 2030 1100.0 1.0 0.0 +de 02_wind_on 1 180 2030 0.0 0.0 0.0 +de 03_wind_off 1 180 2030 0.0 0.0 0.0 +de 04_res 1 180 2030 0.0 0.0 0.0 +de 05_nuclear 1 180 2030 0.0 0.0 0.0 +de 06_coal 1 180 2030 0.0 0.0 0.0 +de 07_gas 1 180 2030 0.0 0.0 0.0 +de 08_non-res 1 180 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 180 2030 0.0 0.0 0.0 +de 01_solar 1 181 2030 1200.0 1.0 0.0 +de 02_wind_on 1 181 2030 0.0 0.0 0.0 +de 03_wind_off 1 181 2030 0.0 0.0 0.0 +de 04_res 1 181 2030 0.0 0.0 0.0 +de 05_nuclear 1 181 2030 0.0 0.0 0.0 +de 06_coal 1 181 2030 0.0 0.0 0.0 +de 07_gas 1 181 2030 0.0 0.0 0.0 +de 08_non-res 1 181 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 181 2030 0.0 0.0 0.0 +de 01_solar 1 182 2030 1300.0 1.0 0.0 +de 02_wind_on 1 182 2030 0.0 0.0 0.0 +de 03_wind_off 1 182 2030 0.0 0.0 0.0 +de 04_res 1 182 2030 0.0 0.0 0.0 +de 05_nuclear 1 182 2030 0.0 0.0 0.0 +de 06_coal 1 182 2030 0.0 0.0 0.0 +de 07_gas 1 182 2030 0.0 0.0 0.0 +de 08_non-res 1 182 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 182 2030 0.0 0.0 0.0 +de 01_solar 1 183 2030 1400.0 1.0 0.0 +de 02_wind_on 1 183 2030 0.0 0.0 0.0 +de 03_wind_off 1 183 2030 0.0 0.0 0.0 +de 04_res 1 183 2030 0.0 0.0 0.0 +de 05_nuclear 1 183 2030 0.0 0.0 0.0 +de 06_coal 1 183 2030 0.0 0.0 0.0 +de 07_gas 1 183 2030 0.0 0.0 0.0 +de 08_non-res 1 183 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 183 2030 0.0 0.0 0.0 +de 01_solar 1 184 2030 1500.0 1.0 0.0 +de 02_wind_on 1 184 2030 0.0 0.0 0.0 +de 03_wind_off 1 184 2030 0.0 0.0 0.0 +de 04_res 1 184 2030 0.0 0.0 0.0 +de 05_nuclear 1 184 2030 0.0 0.0 0.0 +de 06_coal 1 184 2030 0.0 0.0 0.0 +de 07_gas 1 184 2030 0.0 0.0 0.0 +de 08_non-res 1 184 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 184 2030 0.0 0.0 0.0 +de 01_solar 1 185 2030 1600.0 1.0 0.0 +de 02_wind_on 1 185 2030 0.0 0.0 0.0 +de 03_wind_off 1 185 2030 0.0 0.0 0.0 +de 04_res 1 185 2030 0.0 0.0 0.0 +de 05_nuclear 1 185 2030 0.0 0.0 0.0 +de 06_coal 1 185 2030 0.0 0.0 0.0 +de 07_gas 1 185 2030 0.0 0.0 0.0 +de 08_non-res 1 185 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 185 2030 0.0 0.0 0.0 +de 01_solar 1 186 2030 1700.0 1.0 0.0 +de 02_wind_on 1 186 2030 0.0 0.0 0.0 +de 03_wind_off 1 186 2030 0.0 0.0 0.0 +de 04_res 1 186 2030 0.0 0.0 0.0 +de 05_nuclear 1 186 2030 0.0 0.0 0.0 +de 06_coal 1 186 2030 0.0 0.0 0.0 +de 07_gas 1 186 2030 0.0 0.0 0.0 +de 08_non-res 1 186 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 186 2030 0.0 0.0 0.0 +de 01_solar 1 187 2030 1800.0 1.0 0.0 +de 02_wind_on 1 187 2030 0.0 0.0 0.0 +de 03_wind_off 1 187 2030 0.0 0.0 0.0 +de 04_res 1 187 2030 0.0 0.0 0.0 +de 05_nuclear 1 187 2030 0.0 0.0 0.0 +de 06_coal 1 187 2030 0.0 0.0 0.0 +de 07_gas 1 187 2030 0.0 0.0 0.0 +de 08_non-res 1 187 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 187 2030 0.0 0.0 0.0 +de 01_solar 1 188 2030 1900.0 1.0 0.0 +de 02_wind_on 1 188 2030 0.0 0.0 0.0 +de 03_wind_off 1 188 2030 0.0 0.0 0.0 +de 04_res 1 188 2030 0.0 0.0 0.0 +de 05_nuclear 1 188 2030 0.0 0.0 0.0 +de 06_coal 1 188 2030 0.0 0.0 0.0 +de 07_gas 1 188 2030 0.0 0.0 0.0 +de 08_non-res 1 188 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 188 2030 0.0 0.0 0.0 +de 01_solar 1 189 2030 2000.0 1.0 0.0 +de 02_wind_on 1 189 2030 0.0 0.0 0.0 +de 03_wind_off 1 189 2030 0.0 0.0 0.0 +de 04_res 1 189 2030 0.0 0.0 0.0 +de 05_nuclear 1 189 2030 0.0 0.0 0.0 +de 06_coal 1 189 2030 0.0 0.0 0.0 +de 07_gas 1 189 2030 0.0 0.0 0.0 +de 08_non-res 1 189 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 189 2030 0.0 0.0 0.0 +de 01_solar 1 190 2030 2000.0 1.0 0.0 +de 02_wind_on 1 190 2030 100.0 1.0 0.0 +de 03_wind_off 1 190 2030 0.0 0.0 0.0 +de 04_res 1 190 2030 0.0 0.0 0.0 +de 05_nuclear 1 190 2030 0.0 0.0 0.0 +de 06_coal 1 190 2030 0.0 0.0 0.0 +de 07_gas 1 190 2030 0.0 0.0 0.0 +de 08_non-res 1 190 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 190 2030 0.0 0.0 0.0 +de 01_solar 1 191 2030 2000.0 1.0 0.0 +de 02_wind_on 1 191 2030 200.0 1.0 0.0 +de 03_wind_off 1 191 2030 0.0 0.0 0.0 +de 04_res 1 191 2030 0.0 0.0 0.0 +de 05_nuclear 1 191 2030 0.0 0.0 0.0 +de 06_coal 1 191 2030 0.0 0.0 0.0 +de 07_gas 1 191 2030 0.0 0.0 0.0 +de 08_non-res 1 191 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 191 2030 0.0 0.0 0.0 +de 01_solar 1 192 2030 2000.0 1.0 0.0 +de 02_wind_on 1 192 2030 300.0 1.0 0.0 +de 03_wind_off 1 192 2030 0.0 0.0 0.0 +de 04_res 1 192 2030 0.0 0.0 0.0 +de 05_nuclear 1 192 2030 0.0 0.0 0.0 +de 06_coal 1 192 2030 0.0 0.0 0.0 +de 07_gas 1 192 2030 0.0 0.0 0.0 +de 08_non-res 1 192 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 192 2030 0.0 0.0 0.0 +de 01_solar 1 193 2030 2000.0 1.0 0.0 +de 02_wind_on 1 193 2030 400.0 1.0 0.0 +de 03_wind_off 1 193 2030 0.0 0.0 0.0 +de 04_res 1 193 2030 0.0 0.0 0.0 +de 05_nuclear 1 193 2030 0.0 0.0 0.0 +de 06_coal 1 193 2030 0.0 0.0 0.0 +de 07_gas 1 193 2030 0.0 0.0 0.0 +de 08_non-res 1 193 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 193 2030 0.0 0.0 0.0 +de 01_solar 1 194 2030 2000.0 1.0 0.0 +de 02_wind_on 1 194 2030 500.0 1.0 0.0 +de 03_wind_off 1 194 2030 0.0 0.0 0.0 +de 04_res 1 194 2030 0.0 0.0 0.0 +de 05_nuclear 1 194 2030 0.0 0.0 0.0 +de 06_coal 1 194 2030 0.0 0.0 0.0 +de 07_gas 1 194 2030 0.0 0.0 0.0 +de 08_non-res 1 194 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 194 2030 0.0 0.0 0.0 +de 01_solar 1 195 2030 2000.0 1.0 0.0 +de 02_wind_on 1 195 2030 600.0 1.0 0.0 +de 03_wind_off 1 195 2030 0.0 0.0 0.0 +de 04_res 1 195 2030 0.0 0.0 0.0 +de 05_nuclear 1 195 2030 0.0 0.0 0.0 +de 06_coal 1 195 2030 0.0 0.0 0.0 +de 07_gas 1 195 2030 0.0 0.0 0.0 +de 08_non-res 1 195 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 195 2030 0.0 0.0 0.0 +de 01_solar 1 196 2030 2000.0 1.0 0.0 +de 02_wind_on 1 196 2030 700.0 1.0 0.0 +de 03_wind_off 1 196 2030 0.0 0.0 0.0 +de 04_res 1 196 2030 0.0 0.0 0.0 +de 05_nuclear 1 196 2030 0.0 0.0 0.0 +de 06_coal 1 196 2030 0.0 0.0 0.0 +de 07_gas 1 196 2030 0.0 0.0 0.0 +de 08_non-res 1 196 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 196 2030 0.0 0.0 0.0 +de 01_solar 1 197 2030 2000.0 1.0 0.0 +de 02_wind_on 1 197 2030 800.0 1.0 0.0 +de 03_wind_off 1 197 2030 0.0 0.0 0.0 +de 04_res 1 197 2030 0.0 0.0 0.0 +de 05_nuclear 1 197 2030 0.0 0.0 0.0 +de 06_coal 1 197 2030 0.0 0.0 0.0 +de 07_gas 1 197 2030 0.0 0.0 0.0 +de 08_non-res 1 197 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 197 2030 0.0 0.0 0.0 +de 01_solar 1 198 2030 2000.0 1.0 0.0 +de 02_wind_on 1 198 2030 900.0 1.0 0.0 +de 03_wind_off 1 198 2030 0.0 0.0 0.0 +de 04_res 1 198 2030 0.0 0.0 0.0 +de 05_nuclear 1 198 2030 0.0 0.0 0.0 +de 06_coal 1 198 2030 0.0 0.0 0.0 +de 07_gas 1 198 2030 0.0 0.0 0.0 +de 08_non-res 1 198 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 198 2030 0.0 0.0 0.0 +de 01_solar 1 199 2030 2000.0 1.0 0.0 +de 02_wind_on 1 199 2030 1000.0 1.0 0.0 +de 03_wind_off 1 199 2030 0.0 0.0 0.0 +de 04_res 1 199 2030 0.0 0.0 0.0 +de 05_nuclear 1 199 2030 0.0 0.0 0.0 +de 06_coal 1 199 2030 0.0 0.0 0.0 +de 07_gas 1 199 2030 0.0 0.0 0.0 +de 08_non-res 1 199 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 199 2030 0.0 0.0 0.0 +de 01_solar 1 200 2030 2000.0 1.0 0.0 +de 02_wind_on 1 200 2030 1100.0 1.0 0.0 +de 03_wind_off 1 200 2030 0.0 0.0 0.0 +de 04_res 1 200 2030 0.0 0.0 0.0 +de 05_nuclear 1 200 2030 0.0 0.0 0.0 +de 06_coal 1 200 2030 0.0 0.0 0.0 +de 07_gas 1 200 2030 0.0 0.0 0.0 +de 08_non-res 1 200 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 200 2030 0.0 0.0 0.0 +de 01_solar 1 201 2030 2000.0 1.0 0.0 +de 02_wind_on 1 201 2030 1200.0 1.0 0.0 +de 03_wind_off 1 201 2030 0.0 0.0 0.0 +de 04_res 1 201 2030 0.0 0.0 0.0 +de 05_nuclear 1 201 2030 0.0 0.0 0.0 +de 06_coal 1 201 2030 0.0 0.0 0.0 +de 07_gas 1 201 2030 0.0 0.0 0.0 +de 08_non-res 1 201 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 201 2030 0.0 0.0 0.0 +de 01_solar 1 202 2030 2000.0 1.0 0.0 +de 02_wind_on 1 202 2030 1300.0 1.0 0.0 +de 03_wind_off 1 202 2030 0.0 0.0 0.0 +de 04_res 1 202 2030 0.0 0.0 0.0 +de 05_nuclear 1 202 2030 0.0 0.0 0.0 +de 06_coal 1 202 2030 0.0 0.0 0.0 +de 07_gas 1 202 2030 0.0 0.0 0.0 +de 08_non-res 1 202 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 202 2030 0.0 0.0 0.0 +de 01_solar 1 203 2030 2000.0 1.0 0.0 +de 02_wind_on 1 203 2030 1400.0 1.0 0.0 +de 03_wind_off 1 203 2030 0.0 0.0 0.0 +de 04_res 1 203 2030 0.0 0.0 0.0 +de 05_nuclear 1 203 2030 0.0 0.0 0.0 +de 06_coal 1 203 2030 0.0 0.0 0.0 +de 07_gas 1 203 2030 0.0 0.0 0.0 +de 08_non-res 1 203 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 203 2030 0.0 0.0 0.0 +de 01_solar 1 204 2030 2000.0 1.0 0.0 +de 02_wind_on 1 204 2030 1500.0 1.0 0.0 +de 03_wind_off 1 204 2030 0.0 0.0 0.0 +de 04_res 1 204 2030 0.0 0.0 0.0 +de 05_nuclear 1 204 2030 0.0 0.0 0.0 +de 06_coal 1 204 2030 0.0 0.0 0.0 +de 07_gas 1 204 2030 0.0 0.0 0.0 +de 08_non-res 1 204 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 204 2030 0.0 0.0 0.0 +de 01_solar 1 205 2030 2000.0 1.0 0.0 +de 02_wind_on 1 205 2030 1600.0 1.0 0.0 +de 03_wind_off 1 205 2030 0.0 0.0 0.0 +de 04_res 1 205 2030 0.0 0.0 0.0 +de 05_nuclear 1 205 2030 0.0 0.0 0.0 +de 06_coal 1 205 2030 0.0 0.0 0.0 +de 07_gas 1 205 2030 0.0 0.0 0.0 +de 08_non-res 1 205 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 205 2030 0.0 0.0 0.0 +de 01_solar 1 206 2030 2000.0 1.0 0.0 +de 02_wind_on 1 206 2030 1700.0 1.0 0.0 +de 03_wind_off 1 206 2030 0.0 0.0 0.0 +de 04_res 1 206 2030 0.0 0.0 0.0 +de 05_nuclear 1 206 2030 0.0 0.0 0.0 +de 06_coal 1 206 2030 0.0 0.0 0.0 +de 07_gas 1 206 2030 0.0 0.0 0.0 +de 08_non-res 1 206 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 206 2030 0.0 0.0 0.0 +de 01_solar 1 207 2030 2000.0 1.0 0.0 +de 02_wind_on 1 207 2030 1800.0 1.0 0.0 +de 03_wind_off 1 207 2030 0.0 0.0 0.0 +de 04_res 1 207 2030 0.0 0.0 0.0 +de 05_nuclear 1 207 2030 0.0 0.0 0.0 +de 06_coal 1 207 2030 0.0 0.0 0.0 +de 07_gas 1 207 2030 0.0 0.0 0.0 +de 08_non-res 1 207 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 207 2030 0.0 0.0 0.0 +de 01_solar 1 208 2030 2000.0 1.0 0.0 +de 02_wind_on 1 208 2030 1900.0 1.0 0.0 +de 03_wind_off 1 208 2030 0.0 0.0 0.0 +de 04_res 1 208 2030 0.0 0.0 0.0 +de 05_nuclear 1 208 2030 0.0 0.0 0.0 +de 06_coal 1 208 2030 0.0 0.0 0.0 +de 07_gas 1 208 2030 0.0 0.0 0.0 +de 08_non-res 1 208 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 208 2030 0.0 0.0 0.0 +de 01_solar 1 209 2030 2000.0 1.0 0.0 +de 02_wind_on 1 209 2030 2000.0 1.0 0.0 +de 03_wind_off 1 209 2030 0.0 0.0 0.0 +de 04_res 1 209 2030 0.0 0.0 0.0 +de 05_nuclear 1 209 2030 0.0 0.0 0.0 +de 06_coal 1 209 2030 0.0 0.0 0.0 +de 07_gas 1 209 2030 0.0 0.0 0.0 +de 08_non-res 1 209 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 209 2030 0.0 0.0 0.0 +de 01_solar 1 210 2030 2000.0 1.0 0.0 +de 02_wind_on 1 210 2030 2000.0 1.0 0.0 +de 03_wind_off 1 210 2030 100.0 1.0 0.0 +de 04_res 1 210 2030 0.0 0.0 0.0 +de 05_nuclear 1 210 2030 0.0 0.0 0.0 +de 06_coal 1 210 2030 0.0 0.0 0.0 +de 07_gas 1 210 2030 0.0 0.0 0.0 +de 08_non-res 1 210 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 210 2030 0.0 0.0 0.0 +de 01_solar 1 211 2030 2000.0 1.0 0.0 +de 02_wind_on 1 211 2030 2000.0 1.0 0.0 +de 03_wind_off 1 211 2030 200.0 1.0 0.0 +de 04_res 1 211 2030 0.0 0.0 0.0 +de 05_nuclear 1 211 2030 0.0 0.0 0.0 +de 06_coal 1 211 2030 0.0 0.0 0.0 +de 07_gas 1 211 2030 0.0 0.0 0.0 +de 08_non-res 1 211 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 211 2030 0.0 0.0 0.0 +de 01_solar 1 212 2030 2000.0 1.0 0.0 +de 02_wind_on 1 212 2030 2000.0 1.0 0.0 +de 03_wind_off 1 212 2030 300.0 1.0 0.0 +de 04_res 1 212 2030 0.0 0.0 0.0 +de 05_nuclear 1 212 2030 0.0 0.0 0.0 +de 06_coal 1 212 2030 0.0 0.0 0.0 +de 07_gas 1 212 2030 0.0 0.0 0.0 +de 08_non-res 1 212 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 212 2030 0.0 0.0 0.0 +de 01_solar 1 213 2030 2000.0 1.0 0.0 +de 02_wind_on 1 213 2030 2000.0 1.0 0.0 +de 03_wind_off 1 213 2030 400.0 1.0 0.0 +de 04_res 1 213 2030 0.0 0.0 0.0 +de 05_nuclear 1 213 2030 0.0 0.0 0.0 +de 06_coal 1 213 2030 0.0 0.0 0.0 +de 07_gas 1 213 2030 0.0 0.0 0.0 +de 08_non-res 1 213 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 213 2030 0.0 0.0 0.0 +de 01_solar 1 214 2030 2000.0 1.0 0.0 +de 02_wind_on 1 214 2030 2000.0 1.0 0.0 +de 03_wind_off 1 214 2030 500.0 1.0 0.0 +de 04_res 1 214 2030 0.0 0.0 0.0 +de 05_nuclear 1 214 2030 0.0 0.0 0.0 +de 06_coal 1 214 2030 0.0 0.0 0.0 +de 07_gas 1 214 2030 0.0 0.0 0.0 +de 08_non-res 1 214 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 214 2030 0.0 0.0 0.0 +de 01_solar 1 215 2030 2000.0 1.0 0.0 +de 02_wind_on 1 215 2030 2000.0 1.0 0.0 +de 03_wind_off 1 215 2030 600.0 1.0 0.0 +de 04_res 1 215 2030 0.0 0.0 0.0 +de 05_nuclear 1 215 2030 0.0 0.0 0.0 +de 06_coal 1 215 2030 0.0 0.0 0.0 +de 07_gas 1 215 2030 0.0 0.0 0.0 +de 08_non-res 1 215 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 215 2030 0.0 0.0 0.0 +de 01_solar 1 216 2030 2000.0 1.0 0.0 +de 02_wind_on 1 216 2030 2000.0 1.0 0.0 +de 03_wind_off 1 216 2030 700.0 1.0 0.0 +de 04_res 1 216 2030 0.0 0.0 0.0 +de 05_nuclear 1 216 2030 0.0 0.0 0.0 +de 06_coal 1 216 2030 0.0 0.0 0.0 +de 07_gas 1 216 2030 0.0 0.0 0.0 +de 08_non-res 1 216 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 216 2030 0.0 0.0 0.0 +de 01_solar 1 217 2030 2000.0 1.0 0.0 +de 02_wind_on 1 217 2030 2000.0 1.0 0.0 +de 03_wind_off 1 217 2030 800.0 1.0 0.0 +de 04_res 1 217 2030 0.0 0.0 0.0 +de 05_nuclear 1 217 2030 0.0 0.0 0.0 +de 06_coal 1 217 2030 0.0 0.0 0.0 +de 07_gas 1 217 2030 0.0 0.0 0.0 +de 08_non-res 1 217 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 217 2030 0.0 0.0 0.0 +de 01_solar 1 218 2030 2000.0 1.0 0.0 +de 02_wind_on 1 218 2030 2000.0 1.0 0.0 +de 03_wind_off 1 218 2030 900.0 1.0 0.0 +de 04_res 1 218 2030 0.0 0.0 0.0 +de 05_nuclear 1 218 2030 0.0 0.0 0.0 +de 06_coal 1 218 2030 0.0 0.0 0.0 +de 07_gas 1 218 2030 0.0 0.0 0.0 +de 08_non-res 1 218 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 218 2030 0.0 0.0 0.0 +de 01_solar 1 219 2030 2000.0 1.0 0.0 +de 02_wind_on 1 219 2030 2000.0 1.0 0.0 +de 03_wind_off 1 219 2030 1000.0 1.0 0.0 +de 04_res 1 219 2030 0.0 0.0 0.0 +de 05_nuclear 1 219 2030 0.0 0.0 0.0 +de 06_coal 1 219 2030 0.0 0.0 0.0 +de 07_gas 1 219 2030 0.0 0.0 0.0 +de 08_non-res 1 219 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 219 2030 0.0 0.0 0.0 +de 01_solar 1 220 2030 2000.0 1.0 0.0 +de 02_wind_on 1 220 2030 2000.0 1.0 0.0 +de 03_wind_off 1 220 2030 1100.0 1.0 0.0 +de 04_res 1 220 2030 0.0 0.0 0.0 +de 05_nuclear 1 220 2030 0.0 0.0 0.0 +de 06_coal 1 220 2030 0.0 0.0 0.0 +de 07_gas 1 220 2030 0.0 0.0 0.0 +de 08_non-res 1 220 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 220 2030 0.0 0.0 0.0 +de 01_solar 1 221 2030 2000.0 1.0 0.0 +de 02_wind_on 1 221 2030 2000.0 1.0 0.0 +de 03_wind_off 1 221 2030 1200.0 1.0 0.0 +de 04_res 1 221 2030 0.0 0.0 0.0 +de 05_nuclear 1 221 2030 0.0 0.0 0.0 +de 06_coal 1 221 2030 0.0 0.0 0.0 +de 07_gas 1 221 2030 0.0 0.0 0.0 +de 08_non-res 1 221 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 221 2030 0.0 0.0 0.0 +de 01_solar 1 222 2030 2000.0 1.0 0.0 +de 02_wind_on 1 222 2030 2000.0 1.0 0.0 +de 03_wind_off 1 222 2030 1300.0 1.0 0.0 +de 04_res 1 222 2030 0.0 0.0 0.0 +de 05_nuclear 1 222 2030 0.0 0.0 0.0 +de 06_coal 1 222 2030 0.0 0.0 0.0 +de 07_gas 1 222 2030 0.0 0.0 0.0 +de 08_non-res 1 222 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 222 2030 0.0 0.0 0.0 +de 01_solar 1 223 2030 2000.0 1.0 0.0 +de 02_wind_on 1 223 2030 2000.0 1.0 0.0 +de 03_wind_off 1 223 2030 1400.0 1.0 0.0 +de 04_res 1 223 2030 0.0 0.0 0.0 +de 05_nuclear 1 223 2030 0.0 0.0 0.0 +de 06_coal 1 223 2030 0.0 0.0 0.0 +de 07_gas 1 223 2030 0.0 0.0 0.0 +de 08_non-res 1 223 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 223 2030 0.0 0.0 0.0 +de 01_solar 1 224 2030 2000.0 1.0 0.0 +de 02_wind_on 1 224 2030 2000.0 1.0 0.0 +de 03_wind_off 1 224 2030 1500.0 1.0 0.0 +de 04_res 1 224 2030 0.0 0.0 0.0 +de 05_nuclear 1 224 2030 0.0 0.0 0.0 +de 06_coal 1 224 2030 0.0 0.0 0.0 +de 07_gas 1 224 2030 0.0 0.0 0.0 +de 08_non-res 1 224 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 224 2030 0.0 0.0 0.0 +de 01_solar 1 225 2030 2000.0 1.0 0.0 +de 02_wind_on 1 225 2030 2000.0 1.0 0.0 +de 03_wind_off 1 225 2030 1600.0 1.0 0.0 +de 04_res 1 225 2030 0.0 0.0 0.0 +de 05_nuclear 1 225 2030 0.0 0.0 0.0 +de 06_coal 1 225 2030 0.0 0.0 0.0 +de 07_gas 1 225 2030 0.0 0.0 0.0 +de 08_non-res 1 225 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 225 2030 0.0 0.0 0.0 +de 01_solar 1 226 2030 2000.0 1.0 0.0 +de 02_wind_on 1 226 2030 2000.0 1.0 0.0 +de 03_wind_off 1 226 2030 1700.0 1.0 0.0 +de 04_res 1 226 2030 0.0 0.0 0.0 +de 05_nuclear 1 226 2030 0.0 0.0 0.0 +de 06_coal 1 226 2030 0.0 0.0 0.0 +de 07_gas 1 226 2030 0.0 0.0 0.0 +de 08_non-res 1 226 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 226 2030 0.0 0.0 0.0 +de 01_solar 1 227 2030 2000.0 1.0 0.0 +de 02_wind_on 1 227 2030 2000.0 1.0 0.0 +de 03_wind_off 1 227 2030 1800.0 1.0 0.0 +de 04_res 1 227 2030 0.0 0.0 0.0 +de 05_nuclear 1 227 2030 0.0 0.0 0.0 +de 06_coal 1 227 2030 0.0 0.0 0.0 +de 07_gas 1 227 2030 0.0 0.0 0.0 +de 08_non-res 1 227 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 227 2030 0.0 0.0 0.0 +de 01_solar 1 228 2030 2000.0 1.0 0.0 +de 02_wind_on 1 228 2030 2000.0 1.0 0.0 +de 03_wind_off 1 228 2030 1900.0 1.0 0.0 +de 04_res 1 228 2030 0.0 0.0 0.0 +de 05_nuclear 1 228 2030 0.0 0.0 0.0 +de 06_coal 1 228 2030 0.0 0.0 0.0 +de 07_gas 1 228 2030 0.0 0.0 0.0 +de 08_non-res 1 228 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 228 2030 0.0 0.0 0.0 +de 01_solar 1 229 2030 2000.0 1.0 0.0 +de 02_wind_on 1 229 2030 2000.0 1.0 0.0 +de 03_wind_off 1 229 2030 2000.0 1.0 0.0 +de 04_res 1 229 2030 0.0 0.0 0.0 +de 05_nuclear 1 229 2030 0.0 0.0 0.0 +de 06_coal 1 229 2030 0.0 0.0 0.0 +de 07_gas 1 229 2030 0.0 0.0 0.0 +de 08_non-res 1 229 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 229 2030 0.0 0.0 0.0 +de 01_solar 1 230 2030 2000.0 1.0 0.0 +de 02_wind_on 1 230 2030 2000.0 1.0 0.0 +de 03_wind_off 1 230 2030 2000.0 1.0 0.0 +de 04_res 1 230 2030 100.0 1.0 0.0 +de 05_nuclear 1 230 2030 0.0 0.0 0.0 +de 06_coal 1 230 2030 0.0 0.0 0.0 +de 07_gas 1 230 2030 0.0 0.0 0.0 +de 08_non-res 1 230 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 230 2030 0.0 0.0 0.0 +de 01_solar 1 231 2030 2000.0 1.0 0.0 +de 02_wind_on 1 231 2030 2000.0 1.0 0.0 +de 03_wind_off 1 231 2030 2000.0 1.0 0.0 +de 04_res 1 231 2030 200.0 1.0 0.0 +de 05_nuclear 1 231 2030 0.0 0.0 0.0 +de 06_coal 1 231 2030 0.0 0.0 0.0 +de 07_gas 1 231 2030 0.0 0.0 0.0 +de 08_non-res 1 231 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 231 2030 0.0 0.0 0.0 +de 01_solar 1 232 2030 2000.0 1.0 0.0 +de 02_wind_on 1 232 2030 2000.0 1.0 0.0 +de 03_wind_off 1 232 2030 2000.0 1.0 0.0 +de 04_res 1 232 2030 300.0 1.0 0.0 +de 05_nuclear 1 232 2030 0.0 0.0 0.0 +de 06_coal 1 232 2030 0.0 0.0 0.0 +de 07_gas 1 232 2030 0.0 0.0 0.0 +de 08_non-res 1 232 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 232 2030 0.0 0.0 0.0 +de 01_solar 1 233 2030 2000.0 1.0 0.0 +de 02_wind_on 1 233 2030 2000.0 1.0 0.0 +de 03_wind_off 1 233 2030 2000.0 1.0 0.0 +de 04_res 1 233 2030 400.0 1.0 0.0 +de 05_nuclear 1 233 2030 0.0 0.0 0.0 +de 06_coal 1 233 2030 0.0 0.0 0.0 +de 07_gas 1 233 2030 0.0 0.0 0.0 +de 08_non-res 1 233 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 233 2030 0.0 0.0 0.0 +de 01_solar 1 234 2030 2000.0 1.0 0.0 +de 02_wind_on 1 234 2030 2000.0 1.0 0.0 +de 03_wind_off 1 234 2030 2000.0 1.0 0.0 +de 04_res 1 234 2030 500.0 1.0 0.0 +de 05_nuclear 1 234 2030 0.0 0.0 0.0 +de 06_coal 1 234 2030 0.0 0.0 0.0 +de 07_gas 1 234 2030 0.0 0.0 0.0 +de 08_non-res 1 234 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 234 2030 0.0 0.0 0.0 +de 01_solar 1 235 2030 2000.0 1.0 0.0 +de 02_wind_on 1 235 2030 2000.0 1.0 0.0 +de 03_wind_off 1 235 2030 2000.0 1.0 0.0 +de 04_res 1 235 2030 600.0 1.0 0.0 +de 05_nuclear 1 235 2030 0.0 0.0 0.0 +de 06_coal 1 235 2030 0.0 0.0 0.0 +de 07_gas 1 235 2030 0.0 0.0 0.0 +de 08_non-res 1 235 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 235 2030 0.0 0.0 0.0 +de 01_solar 1 236 2030 2000.0 1.0 0.0 +de 02_wind_on 1 236 2030 2000.0 1.0 0.0 +de 03_wind_off 1 236 2030 2000.0 1.0 0.0 +de 04_res 1 236 2030 700.0 1.0 0.0 +de 05_nuclear 1 236 2030 0.0 0.0 0.0 +de 06_coal 1 236 2030 0.0 0.0 0.0 +de 07_gas 1 236 2030 0.0 0.0 0.0 +de 08_non-res 1 236 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 236 2030 0.0 0.0 0.0 +de 01_solar 1 237 2030 2000.0 1.0 0.0 +de 02_wind_on 1 237 2030 2000.0 1.0 0.0 +de 03_wind_off 1 237 2030 2000.0 1.0 0.0 +de 04_res 1 237 2030 800.0 1.0 0.0 +de 05_nuclear 1 237 2030 0.0 0.0 0.0 +de 06_coal 1 237 2030 0.0 0.0 0.0 +de 07_gas 1 237 2030 0.0 0.0 0.0 +de 08_non-res 1 237 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 237 2030 0.0 0.0 0.0 +de 01_solar 1 238 2030 2000.0 1.0 0.0 +de 02_wind_on 1 238 2030 2000.0 1.0 0.0 +de 03_wind_off 1 238 2030 2000.0 1.0 0.0 +de 04_res 1 238 2030 900.0 1.0 0.0 +de 05_nuclear 1 238 2030 0.0 0.0 0.0 +de 06_coal 1 238 2030 0.0 0.0 0.0 +de 07_gas 1 238 2030 0.0 0.0 0.0 +de 08_non-res 1 238 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 238 2030 0.0 0.0 0.0 +de 01_solar 1 239 2030 2000.0 1.0 0.0 +de 02_wind_on 1 239 2030 2000.0 1.0 0.0 +de 03_wind_off 1 239 2030 2000.0 1.0 0.0 +de 04_res 1 239 2030 1000.0 1.0 0.0 +de 05_nuclear 1 239 2030 0.0 0.0 0.0 +de 06_coal 1 239 2030 0.0 0.0 0.0 +de 07_gas 1 239 2030 0.0 0.0 0.0 +de 08_non-res 1 239 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 239 2030 0.0 0.0 0.0 +de 01_solar 1 240 2030 2000.0 1.0 0.0 +de 02_wind_on 1 240 2030 2000.0 1.0 0.0 +de 03_wind_off 1 240 2030 2000.0 1.0 0.0 +de 04_res 1 240 2030 1100.0 1.0 0.0 +de 05_nuclear 1 240 2030 0.0 0.0 0.0 +de 06_coal 1 240 2030 0.0 0.0 0.0 +de 07_gas 1 240 2030 0.0 0.0 0.0 +de 08_non-res 1 240 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 240 2030 0.0 0.0 0.0 +de 01_solar 1 241 2030 2000.0 1.0 0.0 +de 02_wind_on 1 241 2030 2000.0 1.0 0.0 +de 03_wind_off 1 241 2030 2000.0 1.0 0.0 +de 04_res 1 241 2030 1200.0 1.0 0.0 +de 05_nuclear 1 241 2030 0.0 0.0 0.0 +de 06_coal 1 241 2030 0.0 0.0 0.0 +de 07_gas 1 241 2030 0.0 0.0 0.0 +de 08_non-res 1 241 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 241 2030 0.0 0.0 0.0 +de 01_solar 1 242 2030 2000.0 1.0 0.0 +de 02_wind_on 1 242 2030 2000.0 1.0 0.0 +de 03_wind_off 1 242 2030 2000.0 1.0 0.0 +de 04_res 1 242 2030 1300.0 1.0 0.0 +de 05_nuclear 1 242 2030 0.0 0.0 0.0 +de 06_coal 1 242 2030 0.0 0.0 0.0 +de 07_gas 1 242 2030 0.0 0.0 0.0 +de 08_non-res 1 242 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 242 2030 0.0 0.0 0.0 +de 01_solar 1 243 2030 2000.0 1.0 0.0 +de 02_wind_on 1 243 2030 2000.0 1.0 0.0 +de 03_wind_off 1 243 2030 2000.0 1.0 0.0 +de 04_res 1 243 2030 1400.0 1.0 0.0 +de 05_nuclear 1 243 2030 0.0 0.0 0.0 +de 06_coal 1 243 2030 0.0 0.0 0.0 +de 07_gas 1 243 2030 0.0 0.0 0.0 +de 08_non-res 1 243 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 243 2030 0.0 0.0 0.0 +de 01_solar 1 244 2030 2000.0 1.0 0.0 +de 02_wind_on 1 244 2030 2000.0 1.0 0.0 +de 03_wind_off 1 244 2030 2000.0 1.0 0.0 +de 04_res 1 244 2030 1500.0 1.0 0.0 +de 05_nuclear 1 244 2030 0.0 0.0 0.0 +de 06_coal 1 244 2030 0.0 0.0 0.0 +de 07_gas 1 244 2030 0.0 0.0 0.0 +de 08_non-res 1 244 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 244 2030 0.0 0.0 0.0 +de 01_solar 1 245 2030 2000.0 1.0 0.0 +de 02_wind_on 1 245 2030 2000.0 1.0 0.0 +de 03_wind_off 1 245 2030 2000.0 1.0 0.0 +de 04_res 1 245 2030 1600.0 1.0 0.0 +de 05_nuclear 1 245 2030 0.0 0.0 0.0 +de 06_coal 1 245 2030 0.0 0.0 0.0 +de 07_gas 1 245 2030 0.0 0.0 0.0 +de 08_non-res 1 245 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 245 2030 0.0 0.0 0.0 +de 01_solar 1 246 2030 2000.0 1.0 0.0 +de 02_wind_on 1 246 2030 2000.0 1.0 0.0 +de 03_wind_off 1 246 2030 2000.0 1.0 0.0 +de 04_res 1 246 2030 1700.0 1.0 0.0 +de 05_nuclear 1 246 2030 0.0 0.0 0.0 +de 06_coal 1 246 2030 0.0 0.0 0.0 +de 07_gas 1 246 2030 0.0 0.0 0.0 +de 08_non-res 1 246 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 246 2030 0.0 0.0 0.0 +de 01_solar 1 247 2030 2000.0 1.0 0.0 +de 02_wind_on 1 247 2030 2000.0 1.0 0.0 +de 03_wind_off 1 247 2030 2000.0 1.0 0.0 +de 04_res 1 247 2030 1800.0 1.0 0.0 +de 05_nuclear 1 247 2030 0.0 0.0 0.0 +de 06_coal 1 247 2030 0.0 0.0 0.0 +de 07_gas 1 247 2030 0.0 0.0 0.0 +de 08_non-res 1 247 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 247 2030 0.0 0.0 0.0 +de 01_solar 1 248 2030 2000.0 1.0 0.0 +de 02_wind_on 1 248 2030 2000.0 1.0 0.0 +de 03_wind_off 1 248 2030 2000.0 1.0 0.0 +de 04_res 1 248 2030 1900.0 1.0 0.0 +de 05_nuclear 1 248 2030 0.0 0.0 0.0 +de 06_coal 1 248 2030 0.0 0.0 0.0 +de 07_gas 1 248 2030 0.0 0.0 0.0 +de 08_non-res 1 248 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 248 2030 0.0 0.0 0.0 +de 01_solar 1 249 2030 2000.0 1.0 0.0 +de 02_wind_on 1 249 2030 2000.0 1.0 0.0 +de 03_wind_off 1 249 2030 2000.0 1.0 0.0 +de 04_res 1 249 2030 2000.0 1.0 0.0 +de 05_nuclear 1 249 2030 0.0 0.0 0.0 +de 06_coal 1 249 2030 0.0 0.0 0.0 +de 07_gas 1 249 2030 0.0 0.0 0.0 +de 08_non-res 1 249 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 249 2030 0.0 0.0 0.0 +de 01_solar 1 250 2030 2000.0 1.0 0.0 +de 02_wind_on 1 250 2030 2000.0 1.0 0.0 +de 03_wind_off 1 250 2030 2000.0 1.0 0.0 +de 04_res 1 250 2030 2000.0 1.0 0.0 +de 05_nuclear 1 250 2030 100.0 1.0 0.0 +de 06_coal 1 250 2030 0.0 0.0 0.0 +de 07_gas 1 250 2030 0.0 0.0 0.0 +de 08_non-res 1 250 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 250 2030 0.0 0.0 0.0 +de 01_solar 1 251 2030 2000.0 1.0 0.0 +de 02_wind_on 1 251 2030 2000.0 1.0 0.0 +de 03_wind_off 1 251 2030 2000.0 1.0 0.0 +de 04_res 1 251 2030 2000.0 1.0 0.0 +de 05_nuclear 1 251 2030 200.0 1.0 0.0 +de 06_coal 1 251 2030 0.0 0.0 0.0 +de 07_gas 1 251 2030 0.0 0.0 0.0 +de 08_non-res 1 251 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 251 2030 0.0 0.0 0.0 +de 01_solar 1 252 2030 2000.0 1.0 0.0 +de 02_wind_on 1 252 2030 2000.0 1.0 0.0 +de 03_wind_off 1 252 2030 2000.0 1.0 0.0 +de 04_res 1 252 2030 2000.0 1.0 0.0 +de 05_nuclear 1 252 2030 300.0 1.0 0.0 +de 06_coal 1 252 2030 0.0 0.0 0.0 +de 07_gas 1 252 2030 0.0 0.0 0.0 +de 08_non-res 1 252 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 252 2030 0.0 0.0 0.0 +de 01_solar 1 253 2030 2000.0 1.0 0.0 +de 02_wind_on 1 253 2030 2000.0 1.0 0.0 +de 03_wind_off 1 253 2030 2000.0 1.0 0.0 +de 04_res 1 253 2030 2000.0 1.0 0.0 +de 05_nuclear 1 253 2030 400.0 1.0 0.0 +de 06_coal 1 253 2030 0.0 0.0 0.0 +de 07_gas 1 253 2030 0.0 0.0 0.0 +de 08_non-res 1 253 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 253 2030 0.0 0.0 0.0 +de 01_solar 1 254 2030 2000.0 1.0 0.0 +de 02_wind_on 1 254 2030 2000.0 1.0 0.0 +de 03_wind_off 1 254 2030 2000.0 1.0 0.0 +de 04_res 1 254 2030 2000.0 1.0 0.0 +de 05_nuclear 1 254 2030 500.0 1.0 0.0 +de 06_coal 1 254 2030 0.0 0.0 0.0 +de 07_gas 1 254 2030 0.0 0.0 0.0 +de 08_non-res 1 254 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 254 2030 0.0 0.0 0.0 +de 01_solar 1 255 2030 2000.0 1.0 0.0 +de 02_wind_on 1 255 2030 2000.0 1.0 0.0 +de 03_wind_off 1 255 2030 2000.0 1.0 0.0 +de 04_res 1 255 2030 2000.0 1.0 0.0 +de 05_nuclear 1 255 2030 600.0 1.0 0.0 +de 06_coal 1 255 2030 0.0 0.0 0.0 +de 07_gas 1 255 2030 0.0 0.0 0.0 +de 08_non-res 1 255 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 255 2030 0.0 0.0 0.0 +de 01_solar 1 256 2030 2000.0 1.0 0.0 +de 02_wind_on 1 256 2030 2000.0 1.0 0.0 +de 03_wind_off 1 256 2030 2000.0 1.0 0.0 +de 04_res 1 256 2030 2000.0 1.0 0.0 +de 05_nuclear 1 256 2030 700.0 1.0 0.0 +de 06_coal 1 256 2030 0.0 0.0 0.0 +de 07_gas 1 256 2030 0.0 0.0 0.0 +de 08_non-res 1 256 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 256 2030 0.0 0.0 0.0 +de 01_solar 1 257 2030 2000.0 1.0 0.0 +de 02_wind_on 1 257 2030 2000.0 1.0 0.0 +de 03_wind_off 1 257 2030 2000.0 1.0 0.0 +de 04_res 1 257 2030 2000.0 1.0 0.0 +de 05_nuclear 1 257 2030 800.0 1.0 0.0 +de 06_coal 1 257 2030 0.0 0.0 0.0 +de 07_gas 1 257 2030 0.0 0.0 0.0 +de 08_non-res 1 257 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 257 2030 0.0 0.0 0.0 +de 01_solar 1 258 2030 2000.0 1.0 0.0 +de 02_wind_on 1 258 2030 2000.0 1.0 0.0 +de 03_wind_off 1 258 2030 2000.0 1.0 0.0 +de 04_res 1 258 2030 2000.0 1.0 0.0 +de 05_nuclear 1 258 2030 900.0 1.0 0.0 +de 06_coal 1 258 2030 0.0 0.0 0.0 +de 07_gas 1 258 2030 0.0 0.0 0.0 +de 08_non-res 1 258 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 258 2030 0.0 0.0 0.0 +de 01_solar 1 259 2030 2000.0 1.0 0.0 +de 02_wind_on 1 259 2030 2000.0 1.0 0.0 +de 03_wind_off 1 259 2030 2000.0 1.0 0.0 +de 04_res 1 259 2030 2000.0 1.0 0.0 +de 05_nuclear 1 259 2030 1000.0 1.0 0.0 +de 06_coal 1 259 2030 0.0 0.0 0.0 +de 07_gas 1 259 2030 0.0 0.0 0.0 +de 08_non-res 1 259 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 259 2030 0.0 0.0 0.0 +de 01_solar 1 260 2030 2000.0 1.0 0.0 +de 02_wind_on 1 260 2030 2000.0 1.0 0.0 +de 03_wind_off 1 260 2030 2000.0 1.0 0.0 +de 04_res 1 260 2030 2000.0 1.0 0.0 +de 05_nuclear 1 260 2030 1100.0 1.0 0.0 +de 06_coal 1 260 2030 0.0 0.0 0.0 +de 07_gas 1 260 2030 0.0 0.0 0.0 +de 08_non-res 1 260 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 260 2030 0.0 0.0 0.0 +de 01_solar 1 261 2030 2000.0 1.0 0.0 +de 02_wind_on 1 261 2030 2000.0 1.0 0.0 +de 03_wind_off 1 261 2030 2000.0 1.0 0.0 +de 04_res 1 261 2030 2000.0 1.0 0.0 +de 05_nuclear 1 261 2030 1200.0 1.0 0.0 +de 06_coal 1 261 2030 0.0 0.0 0.0 +de 07_gas 1 261 2030 0.0 0.0 0.0 +de 08_non-res 1 261 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 261 2030 0.0 0.0 0.0 +de 01_solar 1 262 2030 2000.0 1.0 0.0 +de 02_wind_on 1 262 2030 2000.0 1.0 0.0 +de 03_wind_off 1 262 2030 2000.0 1.0 0.0 +de 04_res 1 262 2030 2000.0 1.0 0.0 +de 05_nuclear 1 262 2030 1300.0 1.0 0.0 +de 06_coal 1 262 2030 0.0 0.0 0.0 +de 07_gas 1 262 2030 0.0 0.0 0.0 +de 08_non-res 1 262 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 262 2030 0.0 0.0 0.0 +de 01_solar 1 263 2030 2000.0 1.0 0.0 +de 02_wind_on 1 263 2030 2000.0 1.0 0.0 +de 03_wind_off 1 263 2030 2000.0 1.0 0.0 +de 04_res 1 263 2030 2000.0 1.0 0.0 +de 05_nuclear 1 263 2030 1400.0 1.0 0.0 +de 06_coal 1 263 2030 0.0 0.0 0.0 +de 07_gas 1 263 2030 0.0 0.0 0.0 +de 08_non-res 1 263 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 263 2030 0.0 0.0 0.0 +de 01_solar 1 264 2030 2000.0 1.0 0.0 +de 02_wind_on 1 264 2030 2000.0 1.0 0.0 +de 03_wind_off 1 264 2030 2000.0 1.0 0.0 +de 04_res 1 264 2030 2000.0 1.0 0.0 +de 05_nuclear 1 264 2030 1500.0 1.0 0.0 +de 06_coal 1 264 2030 0.0 0.0 0.0 +de 07_gas 1 264 2030 0.0 0.0 0.0 +de 08_non-res 1 264 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 264 2030 0.0 0.0 0.0 +de 01_solar 1 265 2030 2000.0 1.0 0.0 +de 02_wind_on 1 265 2030 2000.0 1.0 0.0 +de 03_wind_off 1 265 2030 2000.0 1.0 0.0 +de 04_res 1 265 2030 2000.0 1.0 0.0 +de 05_nuclear 1 265 2030 1600.0 1.0 0.0 +de 06_coal 1 265 2030 0.0 0.0 0.0 +de 07_gas 1 265 2030 0.0 0.0 0.0 +de 08_non-res 1 265 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 265 2030 0.0 0.0 0.0 +de 01_solar 1 266 2030 2000.0 1.0 0.0 +de 02_wind_on 1 266 2030 2000.0 1.0 0.0 +de 03_wind_off 1 266 2030 2000.0 1.0 0.0 +de 04_res 1 266 2030 2000.0 1.0 0.0 +de 05_nuclear 1 266 2030 1700.0 1.0 0.0 +de 06_coal 1 266 2030 0.0 0.0 0.0 +de 07_gas 1 266 2030 0.0 0.0 0.0 +de 08_non-res 1 266 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 266 2030 0.0 0.0 0.0 +de 01_solar 1 267 2030 2000.0 1.0 0.0 +de 02_wind_on 1 267 2030 2000.0 1.0 0.0 +de 03_wind_off 1 267 2030 2000.0 1.0 0.0 +de 04_res 1 267 2030 2000.0 1.0 0.0 +de 05_nuclear 1 267 2030 1800.0 1.0 0.0 +de 06_coal 1 267 2030 0.0 0.0 0.0 +de 07_gas 1 267 2030 0.0 0.0 0.0 +de 08_non-res 1 267 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 267 2030 0.0 0.0 0.0 +de 01_solar 1 268 2030 2000.0 1.0 0.0 +de 02_wind_on 1 268 2030 2000.0 1.0 0.0 +de 03_wind_off 1 268 2030 2000.0 1.0 0.0 +de 04_res 1 268 2030 2000.0 1.0 0.0 +de 05_nuclear 1 268 2030 1900.0 1.0 0.0 +de 06_coal 1 268 2030 0.0 0.0 0.0 +de 07_gas 1 268 2030 0.0 0.0 0.0 +de 08_non-res 1 268 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 268 2030 0.0 0.0 0.0 +de 01_solar 1 269 2030 2000.0 1.0 0.0 +de 02_wind_on 1 269 2030 2000.0 1.0 0.0 +de 03_wind_off 1 269 2030 2000.0 1.0 0.0 +de 04_res 1 269 2030 2000.0 1.0 0.0 +de 05_nuclear 1 269 2030 2000.0 1.0 0.0 +de 06_coal 1 269 2030 0.0 0.0 0.0 +de 07_gas 1 269 2030 0.0 0.0 0.0 +de 08_non-res 1 269 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 269 2030 0.0 0.0 0.0 +de 01_solar 1 270 2030 2000.0 1.0 0.0 +de 02_wind_on 1 270 2030 2000.0 1.0 0.0 +de 03_wind_off 1 270 2030 2000.0 1.0 0.0 +de 04_res 1 270 2030 2000.0 1.0 0.0 +de 05_nuclear 1 270 2030 2000.0 1.0 0.0 +de 06_coal 1 270 2030 100.0 1.0 0.0 +de 07_gas 1 270 2030 0.0 0.0 0.0 +de 08_non-res 1 270 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 270 2030 0.0 0.0 0.0 +de 01_solar 1 271 2030 2000.0 1.0 0.0 +de 02_wind_on 1 271 2030 2000.0 1.0 0.0 +de 03_wind_off 1 271 2030 2000.0 1.0 0.0 +de 04_res 1 271 2030 2000.0 1.0 0.0 +de 05_nuclear 1 271 2030 2000.0 1.0 0.0 +de 06_coal 1 271 2030 200.0 1.0 0.0 +de 07_gas 1 271 2030 0.0 0.0 0.0 +de 08_non-res 1 271 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 271 2030 0.0 0.0 0.0 +de 01_solar 1 272 2030 2000.0 1.0 0.0 +de 02_wind_on 1 272 2030 2000.0 1.0 0.0 +de 03_wind_off 1 272 2030 2000.0 1.0 0.0 +de 04_res 1 272 2030 2000.0 1.0 0.0 +de 05_nuclear 1 272 2030 2000.0 1.0 0.0 +de 06_coal 1 272 2030 300.0 1.0 0.0 +de 07_gas 1 272 2030 0.0 0.0 0.0 +de 08_non-res 1 272 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 272 2030 0.0 0.0 0.0 +de 01_solar 1 273 2030 2000.0 1.0 0.0 +de 02_wind_on 1 273 2030 2000.0 1.0 0.0 +de 03_wind_off 1 273 2030 2000.0 1.0 0.0 +de 04_res 1 273 2030 2000.0 1.0 0.0 +de 05_nuclear 1 273 2030 2000.0 1.0 0.0 +de 06_coal 1 273 2030 400.0 1.0 0.0 +de 07_gas 1 273 2030 0.0 0.0 0.0 +de 08_non-res 1 273 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 273 2030 0.0 0.0 0.0 +de 01_solar 1 274 2030 2000.0 1.0 0.0 +de 02_wind_on 1 274 2030 2000.0 1.0 0.0 +de 03_wind_off 1 274 2030 2000.0 1.0 0.0 +de 04_res 1 274 2030 2000.0 1.0 0.0 +de 05_nuclear 1 274 2030 2000.0 1.0 0.0 +de 06_coal 1 274 2030 500.0 1.0 0.0 +de 07_gas 1 274 2030 0.0 0.0 0.0 +de 08_non-res 1 274 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 274 2030 0.0 0.0 0.0 +de 01_solar 1 275 2030 2000.0 1.0 0.0 +de 02_wind_on 1 275 2030 2000.0 1.0 0.0 +de 03_wind_off 1 275 2030 2000.0 1.0 0.0 +de 04_res 1 275 2030 2000.0 1.0 0.0 +de 05_nuclear 1 275 2030 2000.0 1.0 0.0 +de 06_coal 1 275 2030 600.0 1.0 0.0 +de 07_gas 1 275 2030 0.0 0.0 0.0 +de 08_non-res 1 275 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 275 2030 0.0 0.0 0.0 +de 01_solar 1 276 2030 2000.0 1.0 0.0 +de 02_wind_on 1 276 2030 2000.0 1.0 0.0 +de 03_wind_off 1 276 2030 2000.0 1.0 0.0 +de 04_res 1 276 2030 2000.0 1.0 0.0 +de 05_nuclear 1 276 2030 2000.0 1.0 0.0 +de 06_coal 1 276 2030 700.0 1.0 0.0 +de 07_gas 1 276 2030 0.0 0.0 0.0 +de 08_non-res 1 276 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 276 2030 0.0 0.0 0.0 +de 01_solar 1 277 2030 2000.0 1.0 0.0 +de 02_wind_on 1 277 2030 2000.0 1.0 0.0 +de 03_wind_off 1 277 2030 2000.0 1.0 0.0 +de 04_res 1 277 2030 2000.0 1.0 0.0 +de 05_nuclear 1 277 2030 2000.0 1.0 0.0 +de 06_coal 1 277 2030 800.0 1.0 0.0 +de 07_gas 1 277 2030 0.0 0.0 0.0 +de 08_non-res 1 277 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 277 2030 0.0 0.0 0.0 +de 01_solar 1 278 2030 2000.0 1.0 0.0 +de 02_wind_on 1 278 2030 2000.0 1.0 0.0 +de 03_wind_off 1 278 2030 2000.0 1.0 0.0 +de 04_res 1 278 2030 2000.0 1.0 0.0 +de 05_nuclear 1 278 2030 2000.0 1.0 0.0 +de 06_coal 1 278 2030 900.0 1.0 0.0 +de 07_gas 1 278 2030 0.0 0.0 0.0 +de 08_non-res 1 278 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 278 2030 0.0 0.0 0.0 +de 01_solar 1 279 2030 2000.0 1.0 0.0 +de 02_wind_on 1 279 2030 2000.0 1.0 0.0 +de 03_wind_off 1 279 2030 2000.0 1.0 0.0 +de 04_res 1 279 2030 2000.0 1.0 0.0 +de 05_nuclear 1 279 2030 2000.0 1.0 0.0 +de 06_coal 1 279 2030 1000.0 1.0 0.0 +de 07_gas 1 279 2030 0.0 0.0 0.0 +de 08_non-res 1 279 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 279 2030 0.0 0.0 0.0 +de 01_solar 1 280 2030 2000.0 1.0 0.0 +de 02_wind_on 1 280 2030 2000.0 1.0 0.0 +de 03_wind_off 1 280 2030 2000.0 1.0 0.0 +de 04_res 1 280 2030 2000.0 1.0 0.0 +de 05_nuclear 1 280 2030 2000.0 1.0 0.0 +de 06_coal 1 280 2030 1100.0 1.0 0.0 +de 07_gas 1 280 2030 0.0 0.0 0.0 +de 08_non-res 1 280 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 280 2030 0.0 0.0 0.0 +de 01_solar 1 281 2030 2000.0 1.0 0.0 +de 02_wind_on 1 281 2030 2000.0 1.0 0.0 +de 03_wind_off 1 281 2030 2000.0 1.0 0.0 +de 04_res 1 281 2030 2000.0 1.0 0.0 +de 05_nuclear 1 281 2030 2000.0 1.0 0.0 +de 06_coal 1 281 2030 1200.0 1.0 0.0 +de 07_gas 1 281 2030 0.0 0.0 0.0 +de 08_non-res 1 281 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 281 2030 0.0 0.0 0.0 +de 01_solar 1 282 2030 2000.0 1.0 0.0 +de 02_wind_on 1 282 2030 2000.0 1.0 0.0 +de 03_wind_off 1 282 2030 2000.0 1.0 0.0 +de 04_res 1 282 2030 2000.0 1.0 0.0 +de 05_nuclear 1 282 2030 2000.0 1.0 0.0 +de 06_coal 1 282 2030 1300.0 1.0 0.0 +de 07_gas 1 282 2030 0.0 0.0 0.0 +de 08_non-res 1 282 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 282 2030 0.0 0.0 0.0 +de 01_solar 1 283 2030 2000.0 1.0 0.0 +de 02_wind_on 1 283 2030 2000.0 1.0 0.0 +de 03_wind_off 1 283 2030 2000.0 1.0 0.0 +de 04_res 1 283 2030 2000.0 1.0 0.0 +de 05_nuclear 1 283 2030 2000.0 1.0 0.0 +de 06_coal 1 283 2030 1400.0 1.0 0.0 +de 07_gas 1 283 2030 0.0 0.0 0.0 +de 08_non-res 1 283 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 283 2030 0.0 0.0 0.0 +de 01_solar 1 284 2030 2000.0 1.0 0.0 +de 02_wind_on 1 284 2030 2000.0 1.0 0.0 +de 03_wind_off 1 284 2030 2000.0 1.0 0.0 +de 04_res 1 284 2030 2000.0 1.0 0.0 +de 05_nuclear 1 284 2030 2000.0 1.0 0.0 +de 06_coal 1 284 2030 1500.0 1.0 0.0 +de 07_gas 1 284 2030 0.0 0.0 0.0 +de 08_non-res 1 284 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 284 2030 0.0 0.0 0.0 +de 01_solar 1 285 2030 2000.0 1.0 0.0 +de 02_wind_on 1 285 2030 2000.0 1.0 0.0 +de 03_wind_off 1 285 2030 2000.0 1.0 0.0 +de 04_res 1 285 2030 2000.0 1.0 0.0 +de 05_nuclear 1 285 2030 2000.0 1.0 0.0 +de 06_coal 1 285 2030 1600.0 1.0 0.0 +de 07_gas 1 285 2030 0.0 0.0 0.0 +de 08_non-res 1 285 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 285 2030 0.0 0.0 0.0 +de 01_solar 1 286 2030 2000.0 1.0 0.0 +de 02_wind_on 1 286 2030 2000.0 1.0 0.0 +de 03_wind_off 1 286 2030 2000.0 1.0 0.0 +de 04_res 1 286 2030 2000.0 1.0 0.0 +de 05_nuclear 1 286 2030 2000.0 1.0 0.0 +de 06_coal 1 286 2030 1700.0 1.0 0.0 +de 07_gas 1 286 2030 0.0 0.0 0.0 +de 08_non-res 1 286 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 286 2030 0.0 0.0 0.0 +de 01_solar 1 287 2030 2000.0 1.0 0.0 +de 02_wind_on 1 287 2030 2000.0 1.0 0.0 +de 03_wind_off 1 287 2030 2000.0 1.0 0.0 +de 04_res 1 287 2030 2000.0 1.0 0.0 +de 05_nuclear 1 287 2030 2000.0 1.0 0.0 +de 06_coal 1 287 2030 1800.0 1.0 0.0 +de 07_gas 1 287 2030 0.0 0.0 0.0 +de 08_non-res 1 287 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 287 2030 0.0 0.0 0.0 +de 01_solar 1 288 2030 2000.0 1.0 0.0 +de 02_wind_on 1 288 2030 2000.0 1.0 0.0 +de 03_wind_off 1 288 2030 2000.0 1.0 0.0 +de 04_res 1 288 2030 2000.0 1.0 0.0 +de 05_nuclear 1 288 2030 2000.0 1.0 0.0 +de 06_coal 1 288 2030 1900.0 1.0 0.0 +de 07_gas 1 288 2030 0.0 0.0 0.0 +de 08_non-res 1 288 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 288 2030 0.0 0.0 0.0 +de 01_solar 1 289 2030 2000.0 1.0 0.0 +de 02_wind_on 1 289 2030 2000.0 1.0 0.0 +de 03_wind_off 1 289 2030 2000.0 1.0 0.0 +de 04_res 1 289 2030 2000.0 1.0 0.0 +de 05_nuclear 1 289 2030 2000.0 1.0 0.0 +de 06_coal 1 289 2030 2000.0 1.0 0.0 +de 07_gas 1 289 2030 0.0 0.0 0.0 +de 08_non-res 1 289 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 289 2030 0.0 0.0 0.0 +de 01_solar 1 290 2030 2000.0 1.0 0.0 +de 02_wind_on 1 290 2030 2000.0 1.0 0.0 +de 03_wind_off 1 290 2030 2000.0 1.0 0.0 +de 04_res 1 290 2030 2000.0 1.0 0.0 +de 05_nuclear 1 290 2030 2000.0 1.0 0.0 +de 06_coal 1 290 2030 2000.0 1.0 0.0 +de 07_gas 1 290 2030 100.0 1.0 0.0 +de 08_non-res 1 290 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 290 2030 0.0 0.0 0.0 +de 01_solar 1 291 2030 2000.0 1.0 0.0 +de 02_wind_on 1 291 2030 2000.0 1.0 0.0 +de 03_wind_off 1 291 2030 2000.0 1.0 0.0 +de 04_res 1 291 2030 2000.0 1.0 0.0 +de 05_nuclear 1 291 2030 2000.0 1.0 0.0 +de 06_coal 1 291 2030 2000.0 1.0 0.0 +de 07_gas 1 291 2030 200.0 1.0 0.0 +de 08_non-res 1 291 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 291 2030 0.0 0.0 0.0 +de 01_solar 1 292 2030 2000.0 1.0 0.0 +de 02_wind_on 1 292 2030 2000.0 1.0 0.0 +de 03_wind_off 1 292 2030 2000.0 1.0 0.0 +de 04_res 1 292 2030 2000.0 1.0 0.0 +de 05_nuclear 1 292 2030 2000.0 1.0 0.0 +de 06_coal 1 292 2030 2000.0 1.0 0.0 +de 07_gas 1 292 2030 300.0 1.0 0.0 +de 08_non-res 1 292 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 292 2030 0.0 0.0 0.0 +de 01_solar 1 293 2030 2000.0 1.0 0.0 +de 02_wind_on 1 293 2030 2000.0 1.0 0.0 +de 03_wind_off 1 293 2030 2000.0 1.0 0.0 +de 04_res 1 293 2030 2000.0 1.0 0.0 +de 05_nuclear 1 293 2030 2000.0 1.0 0.0 +de 06_coal 1 293 2030 2000.0 1.0 0.0 +de 07_gas 1 293 2030 400.0 1.0 0.0 +de 08_non-res 1 293 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 293 2030 0.0 0.0 0.0 +de 01_solar 1 294 2030 2000.0 1.0 0.0 +de 02_wind_on 1 294 2030 2000.0 1.0 0.0 +de 03_wind_off 1 294 2030 2000.0 1.0 0.0 +de 04_res 1 294 2030 2000.0 1.0 0.0 +de 05_nuclear 1 294 2030 2000.0 1.0 0.0 +de 06_coal 1 294 2030 2000.0 1.0 0.0 +de 07_gas 1 294 2030 500.0 1.0 0.0 +de 08_non-res 1 294 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 294 2030 0.0 0.0 0.0 +de 01_solar 1 295 2030 2000.0 1.0 0.0 +de 02_wind_on 1 295 2030 2000.0 1.0 0.0 +de 03_wind_off 1 295 2030 2000.0 1.0 0.0 +de 04_res 1 295 2030 2000.0 1.0 0.0 +de 05_nuclear 1 295 2030 2000.0 1.0 0.0 +de 06_coal 1 295 2030 2000.0 1.0 0.0 +de 07_gas 1 295 2030 600.0 1.0 0.0 +de 08_non-res 1 295 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 295 2030 0.0 0.0 0.0 +de 01_solar 1 296 2030 2000.0 1.0 0.0 +de 02_wind_on 1 296 2030 2000.0 1.0 0.0 +de 03_wind_off 1 296 2030 2000.0 1.0 0.0 +de 04_res 1 296 2030 2000.0 1.0 0.0 +de 05_nuclear 1 296 2030 2000.0 1.0 0.0 +de 06_coal 1 296 2030 2000.0 1.0 0.0 +de 07_gas 1 296 2030 700.0 1.0 0.0 +de 08_non-res 1 296 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 296 2030 0.0 0.0 0.0 +de 01_solar 1 297 2030 2000.0 1.0 0.0 +de 02_wind_on 1 297 2030 2000.0 1.0 0.0 +de 03_wind_off 1 297 2030 2000.0 1.0 0.0 +de 04_res 1 297 2030 2000.0 1.0 0.0 +de 05_nuclear 1 297 2030 2000.0 1.0 0.0 +de 06_coal 1 297 2030 2000.0 1.0 0.0 +de 07_gas 1 297 2030 800.0 1.0 0.0 +de 08_non-res 1 297 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 297 2030 0.0 0.0 0.0 +de 01_solar 1 298 2030 2000.0 1.0 0.0 +de 02_wind_on 1 298 2030 2000.0 1.0 0.0 +de 03_wind_off 1 298 2030 2000.0 1.0 0.0 +de 04_res 1 298 2030 2000.0 1.0 0.0 +de 05_nuclear 1 298 2030 2000.0 1.0 0.0 +de 06_coal 1 298 2030 2000.0 1.0 0.0 +de 07_gas 1 298 2030 900.0 1.0 0.0 +de 08_non-res 1 298 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 298 2030 0.0 0.0 0.0 +de 01_solar 1 299 2030 2000.0 1.0 0.0 +de 02_wind_on 1 299 2030 2000.0 1.0 0.0 +de 03_wind_off 1 299 2030 2000.0 1.0 0.0 +de 04_res 1 299 2030 2000.0 1.0 0.0 +de 05_nuclear 1 299 2030 2000.0 1.0 0.0 +de 06_coal 1 299 2030 2000.0 1.0 0.0 +de 07_gas 1 299 2030 1000.0 1.0 0.0 +de 08_non-res 1 299 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 299 2030 0.0 0.0 0.0 +de 01_solar 1 300 2030 2000.0 1.0 0.0 +de 02_wind_on 1 300 2030 2000.0 1.0 0.0 +de 03_wind_off 1 300 2030 2000.0 1.0 0.0 +de 04_res 1 300 2030 2000.0 1.0 0.0 +de 05_nuclear 1 300 2030 2000.0 1.0 0.0 +de 06_coal 1 300 2030 2000.0 1.0 0.0 +de 07_gas 1 300 2030 1100.0 1.0 0.0 +de 08_non-res 1 300 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 300 2030 0.0 0.0 0.0 +de 01_solar 1 301 2030 2000.0 1.0 0.0 +de 02_wind_on 1 301 2030 2000.0 1.0 0.0 +de 03_wind_off 1 301 2030 2000.0 1.0 0.0 +de 04_res 1 301 2030 2000.0 1.0 0.0 +de 05_nuclear 1 301 2030 2000.0 1.0 0.0 +de 06_coal 1 301 2030 2000.0 1.0 0.0 +de 07_gas 1 301 2030 1200.0 1.0 0.0 +de 08_non-res 1 301 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 301 2030 0.0 0.0 0.0 +de 01_solar 1 302 2030 2000.0 1.0 0.0 +de 02_wind_on 1 302 2030 2000.0 1.0 0.0 +de 03_wind_off 1 302 2030 2000.0 1.0 0.0 +de 04_res 1 302 2030 2000.0 1.0 0.0 +de 05_nuclear 1 302 2030 2000.0 1.0 0.0 +de 06_coal 1 302 2030 2000.0 1.0 0.0 +de 07_gas 1 302 2030 1300.0 1.0 0.0 +de 08_non-res 1 302 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 302 2030 0.0 0.0 0.0 +de 01_solar 1 303 2030 2000.0 1.0 0.0 +de 02_wind_on 1 303 2030 2000.0 1.0 0.0 +de 03_wind_off 1 303 2030 2000.0 1.0 0.0 +de 04_res 1 303 2030 2000.0 1.0 0.0 +de 05_nuclear 1 303 2030 2000.0 1.0 0.0 +de 06_coal 1 303 2030 2000.0 1.0 0.0 +de 07_gas 1 303 2030 1400.0 1.0 0.0 +de 08_non-res 1 303 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 303 2030 0.0 0.0 0.0 +de 01_solar 1 304 2030 2000.0 1.0 0.0 +de 02_wind_on 1 304 2030 2000.0 1.0 0.0 +de 03_wind_off 1 304 2030 2000.0 1.0 0.0 +de 04_res 1 304 2030 2000.0 1.0 0.0 +de 05_nuclear 1 304 2030 2000.0 1.0 0.0 +de 06_coal 1 304 2030 2000.0 1.0 0.0 +de 07_gas 1 304 2030 1500.0 1.0 0.0 +de 08_non-res 1 304 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 304 2030 0.0 0.0 0.0 +de 01_solar 1 305 2030 2000.0 1.0 0.0 +de 02_wind_on 1 305 2030 2000.0 1.0 0.0 +de 03_wind_off 1 305 2030 2000.0 1.0 0.0 +de 04_res 1 305 2030 2000.0 1.0 0.0 +de 05_nuclear 1 305 2030 2000.0 1.0 0.0 +de 06_coal 1 305 2030 2000.0 1.0 0.0 +de 07_gas 1 305 2030 1600.0 1.0 0.0 +de 08_non-res 1 305 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 305 2030 0.0 0.0 0.0 +de 01_solar 1 306 2030 2000.0 1.0 0.0 +de 02_wind_on 1 306 2030 2000.0 1.0 0.0 +de 03_wind_off 1 306 2030 2000.0 1.0 0.0 +de 04_res 1 306 2030 2000.0 1.0 0.0 +de 05_nuclear 1 306 2030 2000.0 1.0 0.0 +de 06_coal 1 306 2030 2000.0 1.0 0.0 +de 07_gas 1 306 2030 1700.0 1.0 0.0 +de 08_non-res 1 306 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 306 2030 0.0 0.0 0.0 +de 01_solar 1 307 2030 2000.0 1.0 0.0 +de 02_wind_on 1 307 2030 2000.0 1.0 0.0 +de 03_wind_off 1 307 2030 2000.0 1.0 0.0 +de 04_res 1 307 2030 2000.0 1.0 0.0 +de 05_nuclear 1 307 2030 2000.0 1.0 0.0 +de 06_coal 1 307 2030 2000.0 1.0 0.0 +de 07_gas 1 307 2030 1800.0 1.0 0.0 +de 08_non-res 1 307 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 307 2030 0.0 0.0 0.0 +de 01_solar 1 308 2030 2000.0 1.0 0.0 +de 02_wind_on 1 308 2030 2000.0 1.0 0.0 +de 03_wind_off 1 308 2030 2000.0 1.0 0.0 +de 04_res 1 308 2030 2000.0 1.0 0.0 +de 05_nuclear 1 308 2030 2000.0 1.0 0.0 +de 06_coal 1 308 2030 2000.0 1.0 0.0 +de 07_gas 1 308 2030 1900.0 1.0 0.0 +de 08_non-res 1 308 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 308 2030 0.0 0.0 0.0 +de 01_solar 1 309 2030 2000.0 1.0 0.0 +de 02_wind_on 1 309 2030 2000.0 1.0 0.0 +de 03_wind_off 1 309 2030 2000.0 1.0 0.0 +de 04_res 1 309 2030 2000.0 1.0 0.0 +de 05_nuclear 1 309 2030 2000.0 1.0 0.0 +de 06_coal 1 309 2030 2000.0 1.0 0.0 +de 07_gas 1 309 2030 2000.0 1.0 0.0 +de 08_non-res 1 309 2030 0.0 0.0 0.0 +de 09_hydro_pump 1 309 2030 0.0 0.0 0.0 +de 01_solar 1 310 2030 2000.0 1.0 0.0 +de 02_wind_on 1 310 2030 2000.0 1.0 0.0 +de 03_wind_off 1 310 2030 2000.0 1.0 0.0 +de 04_res 1 310 2030 2000.0 1.0 0.0 +de 05_nuclear 1 310 2030 2000.0 1.0 0.0 +de 06_coal 1 310 2030 2000.0 1.0 0.0 +de 07_gas 1 310 2030 2000.0 1.0 0.0 +de 08_non-res 1 310 2030 100.0 1.0 0.0 +de 09_hydro_pump 1 310 2030 0.0 0.0 0.0 +de 01_solar 1 311 2030 2000.0 1.0 0.0 +de 02_wind_on 1 311 2030 2000.0 1.0 0.0 +de 03_wind_off 1 311 2030 2000.0 1.0 0.0 +de 04_res 1 311 2030 2000.0 1.0 0.0 +de 05_nuclear 1 311 2030 2000.0 1.0 0.0 +de 06_coal 1 311 2030 2000.0 1.0 0.0 +de 07_gas 1 311 2030 2000.0 1.0 0.0 +de 08_non-res 1 311 2030 200.0 1.0 0.0 +de 09_hydro_pump 1 311 2030 0.0 0.0 0.0 +de 01_solar 1 312 2030 2000.0 1.0 0.0 +de 02_wind_on 1 312 2030 2000.0 1.0 0.0 +de 03_wind_off 1 312 2030 2000.0 1.0 0.0 +de 04_res 1 312 2030 2000.0 1.0 0.0 +de 05_nuclear 1 312 2030 2000.0 1.0 0.0 +de 06_coal 1 312 2030 2000.0 1.0 0.0 +de 07_gas 1 312 2030 2000.0 1.0 0.0 +de 08_non-res 1 312 2030 300.0 1.0 0.0 +de 09_hydro_pump 1 312 2030 0.0 0.0 0.0 +de 01_solar 1 313 2030 2000.0 1.0 0.0 +de 02_wind_on 1 313 2030 2000.0 1.0 0.0 +de 03_wind_off 1 313 2030 2000.0 1.0 0.0 +de 04_res 1 313 2030 2000.0 1.0 0.0 +de 05_nuclear 1 313 2030 2000.0 1.0 0.0 +de 06_coal 1 313 2030 2000.0 1.0 0.0 +de 07_gas 1 313 2030 2000.0 1.0 0.0 +de 08_non-res 1 313 2030 400.0 1.0 0.0 +de 09_hydro_pump 1 313 2030 0.0 0.0 0.0 +de 01_solar 1 314 2030 2000.0 1.0 0.0 +de 02_wind_on 1 314 2030 2000.0 1.0 0.0 +de 03_wind_off 1 314 2030 2000.0 1.0 0.0 +de 04_res 1 314 2030 2000.0 1.0 0.0 +de 05_nuclear 1 314 2030 2000.0 1.0 0.0 +de 06_coal 1 314 2030 2000.0 1.0 0.0 +de 07_gas 1 314 2030 2000.0 1.0 0.0 +de 08_non-res 1 314 2030 500.0 1.0 0.0 +de 09_hydro_pump 1 314 2030 0.0 0.0 0.0 +de 01_solar 1 315 2030 2000.0 1.0 0.0 +de 02_wind_on 1 315 2030 2000.0 1.0 0.0 +de 03_wind_off 1 315 2030 2000.0 1.0 0.0 +de 04_res 1 315 2030 2000.0 1.0 0.0 +de 05_nuclear 1 315 2030 2000.0 1.0 0.0 +de 06_coal 1 315 2030 2000.0 1.0 0.0 +de 07_gas 1 315 2030 2000.0 1.0 0.0 +de 08_non-res 1 315 2030 600.0 1.0 0.0 +de 09_hydro_pump 1 315 2030 0.0 0.0 0.0 +de 01_solar 1 316 2030 2000.0 1.0 0.0 +de 02_wind_on 1 316 2030 2000.0 1.0 0.0 +de 03_wind_off 1 316 2030 2000.0 1.0 0.0 +de 04_res 1 316 2030 2000.0 1.0 0.0 +de 05_nuclear 1 316 2030 2000.0 1.0 0.0 +de 06_coal 1 316 2030 2000.0 1.0 0.0 +de 07_gas 1 316 2030 2000.0 1.0 0.0 +de 08_non-res 1 316 2030 700.0 1.0 0.0 +de 09_hydro_pump 1 316 2030 0.0 0.0 0.0 +de 01_solar 1 317 2030 2000.0 1.0 0.0 +de 02_wind_on 1 317 2030 2000.0 1.0 0.0 +de 03_wind_off 1 317 2030 2000.0 1.0 0.0 +de 04_res 1 317 2030 2000.0 1.0 0.0 +de 05_nuclear 1 317 2030 2000.0 1.0 0.0 +de 06_coal 1 317 2030 2000.0 1.0 0.0 +de 07_gas 1 317 2030 2000.0 1.0 0.0 +de 08_non-res 1 317 2030 800.0 1.0 0.0 +de 09_hydro_pump 1 317 2030 0.0 0.0 0.0 +de 01_solar 1 318 2030 2000.0 1.0 0.0 +de 02_wind_on 1 318 2030 2000.0 1.0 0.0 +de 03_wind_off 1 318 2030 2000.0 1.0 0.0 +de 04_res 1 318 2030 2000.0 1.0 0.0 +de 05_nuclear 1 318 2030 2000.0 1.0 0.0 +de 06_coal 1 318 2030 2000.0 1.0 0.0 +de 07_gas 1 318 2030 2000.0 1.0 0.0 +de 08_non-res 1 318 2030 900.0 1.0 0.0 +de 09_hydro_pump 1 318 2030 0.0 0.0 0.0 +de 01_solar 1 319 2030 2000.0 1.0 0.0 +de 02_wind_on 1 319 2030 2000.0 1.0 0.0 +de 03_wind_off 1 319 2030 2000.0 1.0 0.0 +de 04_res 1 319 2030 2000.0 1.0 0.0 +de 05_nuclear 1 319 2030 2000.0 1.0 0.0 +de 06_coal 1 319 2030 2000.0 1.0 0.0 +de 07_gas 1 319 2030 2000.0 1.0 0.0 +de 08_non-res 1 319 2030 1000.0 1.0 0.0 +de 09_hydro_pump 1 319 2030 0.0 0.0 0.0 +de 01_solar 1 320 2030 2000.0 1.0 0.0 +de 02_wind_on 1 320 2030 2000.0 1.0 0.0 +de 03_wind_off 1 320 2030 2000.0 1.0 0.0 +de 04_res 1 320 2030 2000.0 1.0 0.0 +de 05_nuclear 1 320 2030 2000.0 1.0 0.0 +de 06_coal 1 320 2030 2000.0 1.0 0.0 +de 07_gas 1 320 2030 2000.0 1.0 0.0 +de 08_non-res 1 320 2030 1100.0 1.0 0.0 +de 09_hydro_pump 1 320 2030 0.0 0.0 0.0 +de 01_solar 1 321 2030 2000.0 1.0 0.0 +de 02_wind_on 1 321 2030 2000.0 1.0 0.0 +de 03_wind_off 1 321 2030 2000.0 1.0 0.0 +de 04_res 1 321 2030 2000.0 1.0 0.0 +de 05_nuclear 1 321 2030 2000.0 1.0 0.0 +de 06_coal 1 321 2030 2000.0 1.0 0.0 +de 07_gas 1 321 2030 2000.0 1.0 0.0 +de 08_non-res 1 321 2030 1200.0 1.0 0.0 +de 09_hydro_pump 1 321 2030 0.0 0.0 0.0 +de 01_solar 1 322 2030 2000.0 1.0 0.0 +de 02_wind_on 1 322 2030 2000.0 1.0 0.0 +de 03_wind_off 1 322 2030 2000.0 1.0 0.0 +de 04_res 1 322 2030 2000.0 1.0 0.0 +de 05_nuclear 1 322 2030 2000.0 1.0 0.0 +de 06_coal 1 322 2030 2000.0 1.0 0.0 +de 07_gas 1 322 2030 2000.0 1.0 0.0 +de 08_non-res 1 322 2030 1300.0 1.0 0.0 +de 09_hydro_pump 1 322 2030 0.0 0.0 0.0 +de 01_solar 1 323 2030 2000.0 1.0 0.0 +de 02_wind_on 1 323 2030 2000.0 1.0 0.0 +de 03_wind_off 1 323 2030 2000.0 1.0 0.0 +de 04_res 1 323 2030 2000.0 1.0 0.0 +de 05_nuclear 1 323 2030 2000.0 1.0 0.0 +de 06_coal 1 323 2030 2000.0 1.0 0.0 +de 07_gas 1 323 2030 2000.0 1.0 0.0 +de 08_non-res 1 323 2030 1400.0 1.0 0.0 +de 09_hydro_pump 1 323 2030 0.0 0.0 0.0 +de 01_solar 1 324 2030 2000.0 1.0 0.0 +de 02_wind_on 1 324 2030 2000.0 1.0 0.0 +de 03_wind_off 1 324 2030 2000.0 1.0 0.0 +de 04_res 1 324 2030 2000.0 1.0 0.0 +de 05_nuclear 1 324 2030 2000.0 1.0 0.0 +de 06_coal 1 324 2030 2000.0 1.0 0.0 +de 07_gas 1 324 2030 2000.0 1.0 0.0 +de 08_non-res 1 324 2030 1500.0 1.0 0.0 +de 09_hydro_pump 1 324 2030 0.0 0.0 0.0 +de 01_solar 1 325 2030 2000.0 1.0 0.0 +de 02_wind_on 1 325 2030 2000.0 1.0 0.0 +de 03_wind_off 1 325 2030 2000.0 1.0 0.0 +de 04_res 1 325 2030 2000.0 1.0 0.0 +de 05_nuclear 1 325 2030 2000.0 1.0 0.0 +de 06_coal 1 325 2030 2000.0 1.0 0.0 +de 07_gas 1 325 2030 2000.0 1.0 0.0 +de 08_non-res 1 325 2030 1600.0 1.0 0.0 +de 09_hydro_pump 1 325 2030 0.0 0.0 0.0 +de 01_solar 1 326 2030 2000.0 1.0 0.0 +de 02_wind_on 1 326 2030 2000.0 1.0 0.0 +de 03_wind_off 1 326 2030 2000.0 1.0 0.0 +de 04_res 1 326 2030 2000.0 1.0 0.0 +de 05_nuclear 1 326 2030 2000.0 1.0 0.0 +de 06_coal 1 326 2030 2000.0 1.0 0.0 +de 07_gas 1 326 2030 2000.0 1.0 0.0 +de 08_non-res 1 326 2030 1700.0 1.0 0.0 +de 09_hydro_pump 1 326 2030 0.0 0.0 0.0 +de 01_solar 1 327 2030 2000.0 1.0 0.0 +de 02_wind_on 1 327 2030 2000.0 1.0 0.0 +de 03_wind_off 1 327 2030 2000.0 1.0 0.0 +de 04_res 1 327 2030 2000.0 1.0 0.0 +de 05_nuclear 1 327 2030 2000.0 1.0 0.0 +de 06_coal 1 327 2030 2000.0 1.0 0.0 +de 07_gas 1 327 2030 2000.0 1.0 0.0 +de 08_non-res 1 327 2030 1800.0 1.0 0.0 +de 09_hydro_pump 1 327 2030 0.0 0.0 0.0 +de 01_solar 1 328 2030 2000.0 1.0 0.0 +de 02_wind_on 1 328 2030 2000.0 1.0 0.0 +de 03_wind_off 1 328 2030 2000.0 1.0 0.0 +de 04_res 1 328 2030 2000.0 1.0 0.0 +de 05_nuclear 1 328 2030 2000.0 1.0 0.0 +de 06_coal 1 328 2030 2000.0 1.0 0.0 +de 07_gas 1 328 2030 2000.0 1.0 0.0 +de 08_non-res 1 328 2030 1900.0 1.0 0.0 +de 09_hydro_pump 1 328 2030 0.0 0.0 0.0 +de 01_solar 1 329 2030 2000.0 1.0 0.0 +de 02_wind_on 1 329 2030 2000.0 1.0 0.0 +de 03_wind_off 1 329 2030 2000.0 1.0 0.0 +de 04_res 1 329 2030 2000.0 1.0 0.0 +de 05_nuclear 1 329 2030 2000.0 1.0 0.0 +de 06_coal 1 329 2030 2000.0 1.0 0.0 +de 07_gas 1 329 2030 2000.0 1.0 0.0 +de 08_non-res 1 329 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 329 2030 0.0 0.0 0.0 +de 01_solar 1 330 2030 2000.0 1.0 0.0 +de 02_wind_on 1 330 2030 2000.0 1.0 0.0 +de 03_wind_off 1 330 2030 2000.0 1.0 0.0 +de 04_res 1 330 2030 2000.0 1.0 0.0 +de 05_nuclear 1 330 2030 2000.0 1.0 0.0 +de 06_coal 1 330 2030 2000.0 1.0 0.0 +de 07_gas 1 330 2030 2000.0 1.0 0.0 +de 08_non-res 1 330 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 330 2030 100.0 1.0 0.0 +de 01_solar 1 331 2030 2000.0 1.0 0.0 +de 02_wind_on 1 331 2030 2000.0 1.0 0.0 +de 03_wind_off 1 331 2030 2000.0 1.0 0.0 +de 04_res 1 331 2030 2000.0 1.0 0.0 +de 05_nuclear 1 331 2030 2000.0 1.0 0.0 +de 06_coal 1 331 2030 2000.0 1.0 0.0 +de 07_gas 1 331 2030 2000.0 1.0 0.0 +de 08_non-res 1 331 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 331 2030 200.0 1.0 0.0 +de 01_solar 1 332 2030 2000.0 1.0 0.0 +de 02_wind_on 1 332 2030 2000.0 1.0 0.0 +de 03_wind_off 1 332 2030 2000.0 1.0 0.0 +de 04_res 1 332 2030 2000.0 1.0 0.0 +de 05_nuclear 1 332 2030 2000.0 1.0 0.0 +de 06_coal 1 332 2030 2000.0 1.0 0.0 +de 07_gas 1 332 2030 2000.0 1.0 0.0 +de 08_non-res 1 332 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 332 2030 300.0 1.0 0.0 +de 01_solar 1 333 2030 2000.0 1.0 0.0 +de 02_wind_on 1 333 2030 2000.0 1.0 0.0 +de 03_wind_off 1 333 2030 2000.0 1.0 0.0 +de 04_res 1 333 2030 2000.0 1.0 0.0 +de 05_nuclear 1 333 2030 2000.0 1.0 0.0 +de 06_coal 1 333 2030 2000.0 1.0 0.0 +de 07_gas 1 333 2030 2000.0 1.0 0.0 +de 08_non-res 1 333 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 333 2030 400.0 1.0 0.0 +de 01_solar 1 334 2030 2000.0 1.0 0.0 +de 02_wind_on 1 334 2030 2000.0 1.0 0.0 +de 03_wind_off 1 334 2030 2000.0 1.0 0.0 +de 04_res 1 334 2030 2000.0 1.0 0.0 +de 05_nuclear 1 334 2030 2000.0 1.0 0.0 +de 06_coal 1 334 2030 2000.0 1.0 0.0 +de 07_gas 1 334 2030 2000.0 1.0 0.0 +de 08_non-res 1 334 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 334 2030 500.0 1.0 0.0 +de 01_solar 1 335 2030 2000.0 1.0 0.0 +de 02_wind_on 1 335 2030 2000.0 1.0 0.0 +de 03_wind_off 1 335 2030 2000.0 1.0 0.0 +de 04_res 1 335 2030 2000.0 1.0 0.0 +de 05_nuclear 1 335 2030 2000.0 1.0 0.0 +de 06_coal 1 335 2030 2000.0 1.0 0.0 +de 07_gas 1 335 2030 2000.0 1.0 0.0 +de 08_non-res 1 335 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 335 2030 600.0 1.0 0.0 +de 01_solar 1 336 2030 2000.0 1.0 0.0 +de 02_wind_on 1 336 2030 2000.0 1.0 0.0 +de 03_wind_off 1 336 2030 2000.0 1.0 0.0 +de 04_res 1 336 2030 2000.0 1.0 0.0 +de 05_nuclear 1 336 2030 2000.0 1.0 0.0 +de 06_coal 1 336 2030 2000.0 1.0 0.0 +de 07_gas 1 336 2030 2000.0 1.0 0.0 +de 08_non-res 1 336 2030 2000.0 1.0 0.0 +de 09_hydro_pump 1 336 2030 700.0 1.0 0.0 +fr 01_solar 1 1 2030 0.0 0.0 0.0 +fr 02_wind_on 1 1 2030 0.0 0.0 0.0 +fr 03_wind_off 1 1 2030 0.0 0.0 0.0 +fr 04_res 1 1 2030 0.0 0.0 0.0 +fr 05_nuclear 1 1 2030 0.0 0.0 0.0 +fr 06_coal 1 1 2030 0.0 0.0 0.0 +fr 07_gas 1 1 2030 0.0 0.0 0.0 +fr 08_non-res 1 1 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 1 2030 0.0 0.0 0.0 +fr 01_solar 1 2 2030 100.0 1.0 0.0 +fr 02_wind_on 1 2 2030 0.0 0.0 0.0 +fr 03_wind_off 1 2 2030 0.0 0.0 0.0 +fr 04_res 1 2 2030 0.0 0.0 0.0 +fr 05_nuclear 1 2 2030 0.0 0.0 0.0 +fr 06_coal 1 2 2030 0.0 0.0 0.0 +fr 07_gas 1 2 2030 0.0 0.0 0.0 +fr 08_non-res 1 2 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 2 2030 0.0 0.0 0.0 +fr 01_solar 1 3 2030 200.0 1.0 0.0 +fr 02_wind_on 1 3 2030 0.0 0.0 0.0 +fr 03_wind_off 1 3 2030 0.0 0.0 0.0 +fr 04_res 1 3 2030 0.0 0.0 0.0 +fr 05_nuclear 1 3 2030 0.0 0.0 0.0 +fr 06_coal 1 3 2030 0.0 0.0 0.0 +fr 07_gas 1 3 2030 0.0 0.0 0.0 +fr 08_non-res 1 3 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 3 2030 0.0 0.0 0.0 +fr 01_solar 1 4 2030 300.0 1.0 0.0 +fr 02_wind_on 1 4 2030 0.0 0.0 0.0 +fr 03_wind_off 1 4 2030 0.0 0.0 0.0 +fr 04_res 1 4 2030 0.0 0.0 0.0 +fr 05_nuclear 1 4 2030 0.0 0.0 0.0 +fr 06_coal 1 4 2030 0.0 0.0 0.0 +fr 07_gas 1 4 2030 0.0 0.0 0.0 +fr 08_non-res 1 4 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 4 2030 0.0 0.0 0.0 +fr 01_solar 1 5 2030 400.0 1.0 0.0 +fr 02_wind_on 1 5 2030 0.0 0.0 0.0 +fr 03_wind_off 1 5 2030 0.0 0.0 0.0 +fr 04_res 1 5 2030 0.0 0.0 0.0 +fr 05_nuclear 1 5 2030 0.0 0.0 0.0 +fr 06_coal 1 5 2030 0.0 0.0 0.0 +fr 07_gas 1 5 2030 0.0 0.0 0.0 +fr 08_non-res 1 5 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 5 2030 0.0 0.0 0.0 +fr 01_solar 1 6 2030 500.0 1.0 0.0 +fr 02_wind_on 1 6 2030 0.0 0.0 0.0 +fr 03_wind_off 1 6 2030 0.0 0.0 0.0 +fr 04_res 1 6 2030 0.0 0.0 0.0 +fr 05_nuclear 1 6 2030 0.0 0.0 0.0 +fr 06_coal 1 6 2030 0.0 0.0 0.0 +fr 07_gas 1 6 2030 0.0 0.0 0.0 +fr 08_non-res 1 6 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 6 2030 0.0 0.0 0.0 +fr 01_solar 1 7 2030 600.0 1.0 0.0 +fr 02_wind_on 1 7 2030 0.0 0.0 0.0 +fr 03_wind_off 1 7 2030 0.0 0.0 0.0 +fr 04_res 1 7 2030 0.0 0.0 0.0 +fr 05_nuclear 1 7 2030 0.0 0.0 0.0 +fr 06_coal 1 7 2030 0.0 0.0 0.0 +fr 07_gas 1 7 2030 0.0 0.0 0.0 +fr 08_non-res 1 7 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 7 2030 0.0 0.0 0.0 +fr 01_solar 1 8 2030 700.0 1.0 0.0 +fr 02_wind_on 1 8 2030 0.0 0.0 0.0 +fr 03_wind_off 1 8 2030 0.0 0.0 0.0 +fr 04_res 1 8 2030 0.0 0.0 0.0 +fr 05_nuclear 1 8 2030 0.0 0.0 0.0 +fr 06_coal 1 8 2030 0.0 0.0 0.0 +fr 07_gas 1 8 2030 0.0 0.0 0.0 +fr 08_non-res 1 8 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 8 2030 0.0 0.0 0.0 +fr 01_solar 1 9 2030 800.0 1.0 0.0 +fr 02_wind_on 1 9 2030 0.0 0.0 0.0 +fr 03_wind_off 1 9 2030 0.0 0.0 0.0 +fr 04_res 1 9 2030 0.0 0.0 0.0 +fr 05_nuclear 1 9 2030 0.0 0.0 0.0 +fr 06_coal 1 9 2030 0.0 0.0 0.0 +fr 07_gas 1 9 2030 0.0 0.0 0.0 +fr 08_non-res 1 9 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 9 2030 0.0 0.0 0.0 +fr 01_solar 1 10 2030 900.0 1.0 0.0 +fr 02_wind_on 1 10 2030 0.0 0.0 0.0 +fr 03_wind_off 1 10 2030 0.0 0.0 0.0 +fr 04_res 1 10 2030 0.0 0.0 0.0 +fr 05_nuclear 1 10 2030 0.0 0.0 0.0 +fr 06_coal 1 10 2030 0.0 0.0 0.0 +fr 07_gas 1 10 2030 0.0 0.0 0.0 +fr 08_non-res 1 10 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 10 2030 0.0 0.0 0.0 +fr 01_solar 1 11 2030 1000.0 1.0 0.0 +fr 02_wind_on 1 11 2030 0.0 0.0 0.0 +fr 03_wind_off 1 11 2030 0.0 0.0 0.0 +fr 04_res 1 11 2030 0.0 0.0 0.0 +fr 05_nuclear 1 11 2030 0.0 0.0 0.0 +fr 06_coal 1 11 2030 0.0 0.0 0.0 +fr 07_gas 1 11 2030 0.0 0.0 0.0 +fr 08_non-res 1 11 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 11 2030 0.0 0.0 0.0 +fr 01_solar 1 12 2030 1100.0 1.0 0.0 +fr 02_wind_on 1 12 2030 0.0 0.0 0.0 +fr 03_wind_off 1 12 2030 0.0 0.0 0.0 +fr 04_res 1 12 2030 0.0 0.0 0.0 +fr 05_nuclear 1 12 2030 0.0 0.0 0.0 +fr 06_coal 1 12 2030 0.0 0.0 0.0 +fr 07_gas 1 12 2030 0.0 0.0 0.0 +fr 08_non-res 1 12 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 12 2030 0.0 0.0 0.0 +fr 01_solar 1 13 2030 1200.0 1.0 0.0 +fr 02_wind_on 1 13 2030 0.0 0.0 0.0 +fr 03_wind_off 1 13 2030 0.0 0.0 0.0 +fr 04_res 1 13 2030 0.0 0.0 0.0 +fr 05_nuclear 1 13 2030 0.0 0.0 0.0 +fr 06_coal 1 13 2030 0.0 0.0 0.0 +fr 07_gas 1 13 2030 0.0 0.0 0.0 +fr 08_non-res 1 13 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 13 2030 0.0 0.0 0.0 +fr 01_solar 1 14 2030 1300.0 1.0 0.0 +fr 02_wind_on 1 14 2030 0.0 0.0 0.0 +fr 03_wind_off 1 14 2030 0.0 0.0 0.0 +fr 04_res 1 14 2030 0.0 0.0 0.0 +fr 05_nuclear 1 14 2030 0.0 0.0 0.0 +fr 06_coal 1 14 2030 0.0 0.0 0.0 +fr 07_gas 1 14 2030 0.0 0.0 0.0 +fr 08_non-res 1 14 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 14 2030 0.0 0.0 0.0 +fr 01_solar 1 15 2030 1400.0 1.0 0.0 +fr 02_wind_on 1 15 2030 0.0 0.0 0.0 +fr 03_wind_off 1 15 2030 0.0 0.0 0.0 +fr 04_res 1 15 2030 0.0 0.0 0.0 +fr 05_nuclear 1 15 2030 0.0 0.0 0.0 +fr 06_coal 1 15 2030 0.0 0.0 0.0 +fr 07_gas 1 15 2030 0.0 0.0 0.0 +fr 08_non-res 1 15 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 15 2030 0.0 0.0 0.0 +fr 01_solar 1 16 2030 1500.0 1.0 0.0 +fr 02_wind_on 1 16 2030 0.0 0.0 0.0 +fr 03_wind_off 1 16 2030 0.0 0.0 0.0 +fr 04_res 1 16 2030 0.0 0.0 0.0 +fr 05_nuclear 1 16 2030 0.0 0.0 0.0 +fr 06_coal 1 16 2030 0.0 0.0 0.0 +fr 07_gas 1 16 2030 0.0 0.0 0.0 +fr 08_non-res 1 16 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 16 2030 0.0 0.0 0.0 +fr 01_solar 1 17 2030 1600.0 1.0 0.0 +fr 02_wind_on 1 17 2030 0.0 0.0 0.0 +fr 03_wind_off 1 17 2030 0.0 0.0 0.0 +fr 04_res 1 17 2030 0.0 0.0 0.0 +fr 05_nuclear 1 17 2030 0.0 0.0 0.0 +fr 06_coal 1 17 2030 0.0 0.0 0.0 +fr 07_gas 1 17 2030 0.0 0.0 0.0 +fr 08_non-res 1 17 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 17 2030 0.0 0.0 0.0 +fr 01_solar 1 18 2030 1700.0 1.0 0.0 +fr 02_wind_on 1 18 2030 0.0 0.0 0.0 +fr 03_wind_off 1 18 2030 0.0 0.0 0.0 +fr 04_res 1 18 2030 0.0 0.0 0.0 +fr 05_nuclear 1 18 2030 0.0 0.0 0.0 +fr 06_coal 1 18 2030 0.0 0.0 0.0 +fr 07_gas 1 18 2030 0.0 0.0 0.0 +fr 08_non-res 1 18 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 18 2030 0.0 0.0 0.0 +fr 01_solar 1 19 2030 1800.0 1.0 0.0 +fr 02_wind_on 1 19 2030 0.0 0.0 0.0 +fr 03_wind_off 1 19 2030 0.0 0.0 0.0 +fr 04_res 1 19 2030 0.0 0.0 0.0 +fr 05_nuclear 1 19 2030 0.0 0.0 0.0 +fr 06_coal 1 19 2030 0.0 0.0 0.0 +fr 07_gas 1 19 2030 0.0 0.0 0.0 +fr 08_non-res 1 19 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 19 2030 0.0 0.0 0.0 +fr 01_solar 1 20 2030 1900.0 1.0 0.0 +fr 02_wind_on 1 20 2030 0.0 0.0 0.0 +fr 03_wind_off 1 20 2030 0.0 0.0 0.0 +fr 04_res 1 20 2030 0.0 0.0 0.0 +fr 05_nuclear 1 20 2030 0.0 0.0 0.0 +fr 06_coal 1 20 2030 0.0 0.0 0.0 +fr 07_gas 1 20 2030 0.0 0.0 0.0 +fr 08_non-res 1 20 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 20 2030 0.0 0.0 0.0 +fr 01_solar 1 21 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 21 2030 0.0 0.0 0.0 +fr 03_wind_off 1 21 2030 0.0 0.0 0.0 +fr 04_res 1 21 2030 0.0 0.0 0.0 +fr 05_nuclear 1 21 2030 0.0 0.0 0.0 +fr 06_coal 1 21 2030 0.0 0.0 0.0 +fr 07_gas 1 21 2030 0.0 0.0 0.0 +fr 08_non-res 1 21 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 21 2030 0.0 0.0 0.0 +fr 01_solar 1 22 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 22 2030 100.0 1.0 0.0 +fr 03_wind_off 1 22 2030 0.0 0.0 0.0 +fr 04_res 1 22 2030 0.0 0.0 0.0 +fr 05_nuclear 1 22 2030 0.0 0.0 0.0 +fr 06_coal 1 22 2030 0.0 0.0 0.0 +fr 07_gas 1 22 2030 0.0 0.0 0.0 +fr 08_non-res 1 22 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 22 2030 0.0 0.0 0.0 +fr 01_solar 1 23 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 23 2030 200.0 1.0 0.0 +fr 03_wind_off 1 23 2030 0.0 0.0 0.0 +fr 04_res 1 23 2030 0.0 0.0 0.0 +fr 05_nuclear 1 23 2030 0.0 0.0 0.0 +fr 06_coal 1 23 2030 0.0 0.0 0.0 +fr 07_gas 1 23 2030 0.0 0.0 0.0 +fr 08_non-res 1 23 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 23 2030 0.0 0.0 0.0 +fr 01_solar 1 24 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 24 2030 300.0 1.0 0.0 +fr 03_wind_off 1 24 2030 0.0 0.0 0.0 +fr 04_res 1 24 2030 0.0 0.0 0.0 +fr 05_nuclear 1 24 2030 0.0 0.0 0.0 +fr 06_coal 1 24 2030 0.0 0.0 0.0 +fr 07_gas 1 24 2030 0.0 0.0 0.0 +fr 08_non-res 1 24 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 24 2030 0.0 0.0 0.0 +fr 01_solar 1 25 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 25 2030 400.0 1.0 0.0 +fr 03_wind_off 1 25 2030 0.0 0.0 0.0 +fr 04_res 1 25 2030 0.0 0.0 0.0 +fr 05_nuclear 1 25 2030 0.0 0.0 0.0 +fr 06_coal 1 25 2030 0.0 0.0 0.0 +fr 07_gas 1 25 2030 0.0 0.0 0.0 +fr 08_non-res 1 25 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 25 2030 0.0 0.0 0.0 +fr 01_solar 1 26 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 26 2030 500.0 1.0 0.0 +fr 03_wind_off 1 26 2030 0.0 0.0 0.0 +fr 04_res 1 26 2030 0.0 0.0 0.0 +fr 05_nuclear 1 26 2030 0.0 0.0 0.0 +fr 06_coal 1 26 2030 0.0 0.0 0.0 +fr 07_gas 1 26 2030 0.0 0.0 0.0 +fr 08_non-res 1 26 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 26 2030 0.0 0.0 0.0 +fr 01_solar 1 27 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 27 2030 600.0 1.0 0.0 +fr 03_wind_off 1 27 2030 0.0 0.0 0.0 +fr 04_res 1 27 2030 0.0 0.0 0.0 +fr 05_nuclear 1 27 2030 0.0 0.0 0.0 +fr 06_coal 1 27 2030 0.0 0.0 0.0 +fr 07_gas 1 27 2030 0.0 0.0 0.0 +fr 08_non-res 1 27 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 27 2030 0.0 0.0 0.0 +fr 01_solar 1 28 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 28 2030 700.0 1.0 0.0 +fr 03_wind_off 1 28 2030 0.0 0.0 0.0 +fr 04_res 1 28 2030 0.0 0.0 0.0 +fr 05_nuclear 1 28 2030 0.0 0.0 0.0 +fr 06_coal 1 28 2030 0.0 0.0 0.0 +fr 07_gas 1 28 2030 0.0 0.0 0.0 +fr 08_non-res 1 28 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 28 2030 0.0 0.0 0.0 +fr 01_solar 1 29 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 29 2030 800.0 1.0 0.0 +fr 03_wind_off 1 29 2030 0.0 0.0 0.0 +fr 04_res 1 29 2030 0.0 0.0 0.0 +fr 05_nuclear 1 29 2030 0.0 0.0 0.0 +fr 06_coal 1 29 2030 0.0 0.0 0.0 +fr 07_gas 1 29 2030 0.0 0.0 0.0 +fr 08_non-res 1 29 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 29 2030 0.0 0.0 0.0 +fr 01_solar 1 30 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 30 2030 900.0 1.0 0.0 +fr 03_wind_off 1 30 2030 0.0 0.0 0.0 +fr 04_res 1 30 2030 0.0 0.0 0.0 +fr 05_nuclear 1 30 2030 0.0 0.0 0.0 +fr 06_coal 1 30 2030 0.0 0.0 0.0 +fr 07_gas 1 30 2030 0.0 0.0 0.0 +fr 08_non-res 1 30 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 30 2030 0.0 0.0 0.0 +fr 01_solar 1 31 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 31 2030 1000.0 1.0 0.0 +fr 03_wind_off 1 31 2030 0.0 0.0 0.0 +fr 04_res 1 31 2030 0.0 0.0 0.0 +fr 05_nuclear 1 31 2030 0.0 0.0 0.0 +fr 06_coal 1 31 2030 0.0 0.0 0.0 +fr 07_gas 1 31 2030 0.0 0.0 0.0 +fr 08_non-res 1 31 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 31 2030 0.0 0.0 0.0 +fr 01_solar 1 32 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 32 2030 1100.0 1.0 0.0 +fr 03_wind_off 1 32 2030 0.0 0.0 0.0 +fr 04_res 1 32 2030 0.0 0.0 0.0 +fr 05_nuclear 1 32 2030 0.0 0.0 0.0 +fr 06_coal 1 32 2030 0.0 0.0 0.0 +fr 07_gas 1 32 2030 0.0 0.0 0.0 +fr 08_non-res 1 32 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 32 2030 0.0 0.0 0.0 +fr 01_solar 1 33 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 33 2030 1200.0 1.0 0.0 +fr 03_wind_off 1 33 2030 0.0 0.0 0.0 +fr 04_res 1 33 2030 0.0 0.0 0.0 +fr 05_nuclear 1 33 2030 0.0 0.0 0.0 +fr 06_coal 1 33 2030 0.0 0.0 0.0 +fr 07_gas 1 33 2030 0.0 0.0 0.0 +fr 08_non-res 1 33 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 33 2030 0.0 0.0 0.0 +fr 01_solar 1 34 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 34 2030 1300.0 1.0 0.0 +fr 03_wind_off 1 34 2030 0.0 0.0 0.0 +fr 04_res 1 34 2030 0.0 0.0 0.0 +fr 05_nuclear 1 34 2030 0.0 0.0 0.0 +fr 06_coal 1 34 2030 0.0 0.0 0.0 +fr 07_gas 1 34 2030 0.0 0.0 0.0 +fr 08_non-res 1 34 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 34 2030 0.0 0.0 0.0 +fr 01_solar 1 35 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 35 2030 1400.0 1.0 0.0 +fr 03_wind_off 1 35 2030 0.0 0.0 0.0 +fr 04_res 1 35 2030 0.0 0.0 0.0 +fr 05_nuclear 1 35 2030 0.0 0.0 0.0 +fr 06_coal 1 35 2030 0.0 0.0 0.0 +fr 07_gas 1 35 2030 0.0 0.0 0.0 +fr 08_non-res 1 35 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 35 2030 0.0 0.0 0.0 +fr 01_solar 1 36 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 36 2030 1500.0 1.0 0.0 +fr 03_wind_off 1 36 2030 0.0 0.0 0.0 +fr 04_res 1 36 2030 0.0 0.0 0.0 +fr 05_nuclear 1 36 2030 0.0 0.0 0.0 +fr 06_coal 1 36 2030 0.0 0.0 0.0 +fr 07_gas 1 36 2030 0.0 0.0 0.0 +fr 08_non-res 1 36 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 36 2030 0.0 0.0 0.0 +fr 01_solar 1 37 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 37 2030 1600.0 1.0 0.0 +fr 03_wind_off 1 37 2030 0.0 0.0 0.0 +fr 04_res 1 37 2030 0.0 0.0 0.0 +fr 05_nuclear 1 37 2030 0.0 0.0 0.0 +fr 06_coal 1 37 2030 0.0 0.0 0.0 +fr 07_gas 1 37 2030 0.0 0.0 0.0 +fr 08_non-res 1 37 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 37 2030 0.0 0.0 0.0 +fr 01_solar 1 38 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 38 2030 1700.0 1.0 0.0 +fr 03_wind_off 1 38 2030 0.0 0.0 0.0 +fr 04_res 1 38 2030 0.0 0.0 0.0 +fr 05_nuclear 1 38 2030 0.0 0.0 0.0 +fr 06_coal 1 38 2030 0.0 0.0 0.0 +fr 07_gas 1 38 2030 0.0 0.0 0.0 +fr 08_non-res 1 38 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 38 2030 0.0 0.0 0.0 +fr 01_solar 1 39 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 39 2030 1800.0 1.0 0.0 +fr 03_wind_off 1 39 2030 0.0 0.0 0.0 +fr 04_res 1 39 2030 0.0 0.0 0.0 +fr 05_nuclear 1 39 2030 0.0 0.0 0.0 +fr 06_coal 1 39 2030 0.0 0.0 0.0 +fr 07_gas 1 39 2030 0.0 0.0 0.0 +fr 08_non-res 1 39 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 39 2030 0.0 0.0 0.0 +fr 01_solar 1 40 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 40 2030 1900.0 1.0 0.0 +fr 03_wind_off 1 40 2030 0.0 0.0 0.0 +fr 04_res 1 40 2030 0.0 0.0 0.0 +fr 05_nuclear 1 40 2030 0.0 0.0 0.0 +fr 06_coal 1 40 2030 0.0 0.0 0.0 +fr 07_gas 1 40 2030 0.0 0.0 0.0 +fr 08_non-res 1 40 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 40 2030 0.0 0.0 0.0 +fr 01_solar 1 41 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 41 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 41 2030 0.0 0.0 0.0 +fr 04_res 1 41 2030 0.0 0.0 0.0 +fr 05_nuclear 1 41 2030 0.0 0.0 0.0 +fr 06_coal 1 41 2030 0.0 0.0 0.0 +fr 07_gas 1 41 2030 0.0 0.0 0.0 +fr 08_non-res 1 41 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 41 2030 0.0 0.0 0.0 +fr 01_solar 1 42 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 42 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 42 2030 100.0 1.0 0.0 +fr 04_res 1 42 2030 0.0 0.0 0.0 +fr 05_nuclear 1 42 2030 0.0 0.0 0.0 +fr 06_coal 1 42 2030 0.0 0.0 0.0 +fr 07_gas 1 42 2030 0.0 0.0 0.0 +fr 08_non-res 1 42 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 42 2030 0.0 0.0 0.0 +fr 01_solar 1 43 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 43 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 43 2030 200.0 1.0 0.0 +fr 04_res 1 43 2030 0.0 0.0 0.0 +fr 05_nuclear 1 43 2030 0.0 0.0 0.0 +fr 06_coal 1 43 2030 0.0 0.0 0.0 +fr 07_gas 1 43 2030 0.0 0.0 0.0 +fr 08_non-res 1 43 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 43 2030 0.0 0.0 0.0 +fr 01_solar 1 44 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 44 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 44 2030 300.0 1.0 0.0 +fr 04_res 1 44 2030 0.0 0.0 0.0 +fr 05_nuclear 1 44 2030 0.0 0.0 0.0 +fr 06_coal 1 44 2030 0.0 0.0 0.0 +fr 07_gas 1 44 2030 0.0 0.0 0.0 +fr 08_non-res 1 44 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 44 2030 0.0 0.0 0.0 +fr 01_solar 1 45 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 45 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 45 2030 400.0 1.0 0.0 +fr 04_res 1 45 2030 0.0 0.0 0.0 +fr 05_nuclear 1 45 2030 0.0 0.0 0.0 +fr 06_coal 1 45 2030 0.0 0.0 0.0 +fr 07_gas 1 45 2030 0.0 0.0 0.0 +fr 08_non-res 1 45 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 45 2030 0.0 0.0 0.0 +fr 01_solar 1 46 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 46 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 46 2030 500.0 1.0 0.0 +fr 04_res 1 46 2030 0.0 0.0 0.0 +fr 05_nuclear 1 46 2030 0.0 0.0 0.0 +fr 06_coal 1 46 2030 0.0 0.0 0.0 +fr 07_gas 1 46 2030 0.0 0.0 0.0 +fr 08_non-res 1 46 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 46 2030 0.0 0.0 0.0 +fr 01_solar 1 47 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 47 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 47 2030 600.0 1.0 0.0 +fr 04_res 1 47 2030 0.0 0.0 0.0 +fr 05_nuclear 1 47 2030 0.0 0.0 0.0 +fr 06_coal 1 47 2030 0.0 0.0 0.0 +fr 07_gas 1 47 2030 0.0 0.0 0.0 +fr 08_non-res 1 47 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 47 2030 0.0 0.0 0.0 +fr 01_solar 1 48 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 48 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 48 2030 700.0 1.0 0.0 +fr 04_res 1 48 2030 0.0 0.0 0.0 +fr 05_nuclear 1 48 2030 0.0 0.0 0.0 +fr 06_coal 1 48 2030 0.0 0.0 0.0 +fr 07_gas 1 48 2030 0.0 0.0 0.0 +fr 08_non-res 1 48 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 48 2030 0.0 0.0 0.0 +fr 01_solar 1 49 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 49 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 49 2030 800.0 1.0 0.0 +fr 04_res 1 49 2030 0.0 0.0 0.0 +fr 05_nuclear 1 49 2030 0.0 0.0 0.0 +fr 06_coal 1 49 2030 0.0 0.0 0.0 +fr 07_gas 1 49 2030 0.0 0.0 0.0 +fr 08_non-res 1 49 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 49 2030 0.0 0.0 0.0 +fr 01_solar 1 50 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 50 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 50 2030 900.0 1.0 0.0 +fr 04_res 1 50 2030 0.0 0.0 0.0 +fr 05_nuclear 1 50 2030 0.0 0.0 0.0 +fr 06_coal 1 50 2030 0.0 0.0 0.0 +fr 07_gas 1 50 2030 0.0 0.0 0.0 +fr 08_non-res 1 50 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 50 2030 0.0 0.0 0.0 +fr 01_solar 1 51 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 51 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 51 2030 1000.0 1.0 0.0 +fr 04_res 1 51 2030 0.0 0.0 0.0 +fr 05_nuclear 1 51 2030 0.0 0.0 0.0 +fr 06_coal 1 51 2030 0.0 0.0 0.0 +fr 07_gas 1 51 2030 0.0 0.0 0.0 +fr 08_non-res 1 51 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 51 2030 0.0 0.0 0.0 +fr 01_solar 1 52 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 52 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 52 2030 1100.0 1.0 0.0 +fr 04_res 1 52 2030 0.0 0.0 0.0 +fr 05_nuclear 1 52 2030 0.0 0.0 0.0 +fr 06_coal 1 52 2030 0.0 0.0 0.0 +fr 07_gas 1 52 2030 0.0 0.0 0.0 +fr 08_non-res 1 52 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 52 2030 0.0 0.0 0.0 +fr 01_solar 1 53 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 53 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 53 2030 1200.0 1.0 0.0 +fr 04_res 1 53 2030 0.0 0.0 0.0 +fr 05_nuclear 1 53 2030 0.0 0.0 0.0 +fr 06_coal 1 53 2030 0.0 0.0 0.0 +fr 07_gas 1 53 2030 0.0 0.0 0.0 +fr 08_non-res 1 53 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 53 2030 0.0 0.0 0.0 +fr 01_solar 1 54 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 54 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 54 2030 1300.0 1.0 0.0 +fr 04_res 1 54 2030 0.0 0.0 0.0 +fr 05_nuclear 1 54 2030 0.0 0.0 0.0 +fr 06_coal 1 54 2030 0.0 0.0 0.0 +fr 07_gas 1 54 2030 0.0 0.0 0.0 +fr 08_non-res 1 54 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 54 2030 0.0 0.0 0.0 +fr 01_solar 1 55 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 55 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 55 2030 1400.0 1.0 0.0 +fr 04_res 1 55 2030 0.0 0.0 0.0 +fr 05_nuclear 1 55 2030 0.0 0.0 0.0 +fr 06_coal 1 55 2030 0.0 0.0 0.0 +fr 07_gas 1 55 2030 0.0 0.0 0.0 +fr 08_non-res 1 55 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 55 2030 0.0 0.0 0.0 +fr 01_solar 1 56 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 56 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 56 2030 1500.0 1.0 0.0 +fr 04_res 1 56 2030 0.0 0.0 0.0 +fr 05_nuclear 1 56 2030 0.0 0.0 0.0 +fr 06_coal 1 56 2030 0.0 0.0 0.0 +fr 07_gas 1 56 2030 0.0 0.0 0.0 +fr 08_non-res 1 56 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 56 2030 0.0 0.0 0.0 +fr 01_solar 1 57 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 57 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 57 2030 1600.0 1.0 0.0 +fr 04_res 1 57 2030 0.0 0.0 0.0 +fr 05_nuclear 1 57 2030 0.0 0.0 0.0 +fr 06_coal 1 57 2030 0.0 0.0 0.0 +fr 07_gas 1 57 2030 0.0 0.0 0.0 +fr 08_non-res 1 57 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 57 2030 0.0 0.0 0.0 +fr 01_solar 1 58 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 58 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 58 2030 1700.0 1.0 0.0 +fr 04_res 1 58 2030 0.0 0.0 0.0 +fr 05_nuclear 1 58 2030 0.0 0.0 0.0 +fr 06_coal 1 58 2030 0.0 0.0 0.0 +fr 07_gas 1 58 2030 0.0 0.0 0.0 +fr 08_non-res 1 58 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 58 2030 0.0 0.0 0.0 +fr 01_solar 1 59 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 59 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 59 2030 1800.0 1.0 0.0 +fr 04_res 1 59 2030 0.0 0.0 0.0 +fr 05_nuclear 1 59 2030 0.0 0.0 0.0 +fr 06_coal 1 59 2030 0.0 0.0 0.0 +fr 07_gas 1 59 2030 0.0 0.0 0.0 +fr 08_non-res 1 59 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 59 2030 0.0 0.0 0.0 +fr 01_solar 1 60 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 60 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 60 2030 1900.0 1.0 0.0 +fr 04_res 1 60 2030 0.0 0.0 0.0 +fr 05_nuclear 1 60 2030 0.0 0.0 0.0 +fr 06_coal 1 60 2030 0.0 0.0 0.0 +fr 07_gas 1 60 2030 0.0 0.0 0.0 +fr 08_non-res 1 60 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 60 2030 0.0 0.0 0.0 +fr 01_solar 1 61 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 61 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 61 2030 2000.0 1.0 0.0 +fr 04_res 1 61 2030 0.0 0.0 0.0 +fr 05_nuclear 1 61 2030 0.0 0.0 0.0 +fr 06_coal 1 61 2030 0.0 0.0 0.0 +fr 07_gas 1 61 2030 0.0 0.0 0.0 +fr 08_non-res 1 61 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 61 2030 0.0 0.0 0.0 +fr 01_solar 1 62 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 62 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 62 2030 2000.0 1.0 0.0 +fr 04_res 1 62 2030 100.0 1.0 0.0 +fr 05_nuclear 1 62 2030 0.0 0.0 0.0 +fr 06_coal 1 62 2030 0.0 0.0 0.0 +fr 07_gas 1 62 2030 0.0 0.0 0.0 +fr 08_non-res 1 62 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 62 2030 0.0 0.0 0.0 +fr 01_solar 1 63 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 63 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 63 2030 2000.0 1.0 0.0 +fr 04_res 1 63 2030 200.0 1.0 0.0 +fr 05_nuclear 1 63 2030 0.0 0.0 0.0 +fr 06_coal 1 63 2030 0.0 0.0 0.0 +fr 07_gas 1 63 2030 0.0 0.0 0.0 +fr 08_non-res 1 63 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 63 2030 0.0 0.0 0.0 +fr 01_solar 1 64 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 64 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 64 2030 2000.0 1.0 0.0 +fr 04_res 1 64 2030 300.0 1.0 0.0 +fr 05_nuclear 1 64 2030 0.0 0.0 0.0 +fr 06_coal 1 64 2030 0.0 0.0 0.0 +fr 07_gas 1 64 2030 0.0 0.0 0.0 +fr 08_non-res 1 64 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 64 2030 0.0 0.0 0.0 +fr 01_solar 1 65 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 65 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 65 2030 2000.0 1.0 0.0 +fr 04_res 1 65 2030 400.0 1.0 0.0 +fr 05_nuclear 1 65 2030 0.0 0.0 0.0 +fr 06_coal 1 65 2030 0.0 0.0 0.0 +fr 07_gas 1 65 2030 0.0 0.0 0.0 +fr 08_non-res 1 65 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 65 2030 0.0 0.0 0.0 +fr 01_solar 1 66 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 66 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 66 2030 2000.0 1.0 0.0 +fr 04_res 1 66 2030 500.0 1.0 0.0 +fr 05_nuclear 1 66 2030 0.0 0.0 0.0 +fr 06_coal 1 66 2030 0.0 0.0 0.0 +fr 07_gas 1 66 2030 0.0 0.0 0.0 +fr 08_non-res 1 66 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 66 2030 0.0 0.0 0.0 +fr 01_solar 1 67 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 67 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 67 2030 2000.0 1.0 0.0 +fr 04_res 1 67 2030 600.0 1.0 0.0 +fr 05_nuclear 1 67 2030 0.0 0.0 0.0 +fr 06_coal 1 67 2030 0.0 0.0 0.0 +fr 07_gas 1 67 2030 0.0 0.0 0.0 +fr 08_non-res 1 67 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 67 2030 0.0 0.0 0.0 +fr 01_solar 1 68 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 68 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 68 2030 2000.0 1.0 0.0 +fr 04_res 1 68 2030 700.0 1.0 0.0 +fr 05_nuclear 1 68 2030 0.0 0.0 0.0 +fr 06_coal 1 68 2030 0.0 0.0 0.0 +fr 07_gas 1 68 2030 0.0 0.0 0.0 +fr 08_non-res 1 68 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 68 2030 0.0 0.0 0.0 +fr 01_solar 1 69 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 69 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 69 2030 2000.0 1.0 0.0 +fr 04_res 1 69 2030 800.0 1.0 0.0 +fr 05_nuclear 1 69 2030 0.0 0.0 0.0 +fr 06_coal 1 69 2030 0.0 0.0 0.0 +fr 07_gas 1 69 2030 0.0 0.0 0.0 +fr 08_non-res 1 69 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 69 2030 0.0 0.0 0.0 +fr 01_solar 1 70 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 70 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 70 2030 2000.0 1.0 0.0 +fr 04_res 1 70 2030 900.0 1.0 0.0 +fr 05_nuclear 1 70 2030 0.0 0.0 0.0 +fr 06_coal 1 70 2030 0.0 0.0 0.0 +fr 07_gas 1 70 2030 0.0 0.0 0.0 +fr 08_non-res 1 70 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 70 2030 0.0 0.0 0.0 +fr 01_solar 1 71 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 71 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 71 2030 2000.0 1.0 0.0 +fr 04_res 1 71 2030 1000.0 1.0 0.0 +fr 05_nuclear 1 71 2030 0.0 0.0 0.0 +fr 06_coal 1 71 2030 0.0 0.0 0.0 +fr 07_gas 1 71 2030 0.0 0.0 0.0 +fr 08_non-res 1 71 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 71 2030 0.0 0.0 0.0 +fr 01_solar 1 72 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 72 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 72 2030 2000.0 1.0 0.0 +fr 04_res 1 72 2030 1100.0 1.0 0.0 +fr 05_nuclear 1 72 2030 0.0 0.0 0.0 +fr 06_coal 1 72 2030 0.0 0.0 0.0 +fr 07_gas 1 72 2030 0.0 0.0 0.0 +fr 08_non-res 1 72 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 72 2030 0.0 0.0 0.0 +fr 01_solar 1 73 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 73 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 73 2030 2000.0 1.0 0.0 +fr 04_res 1 73 2030 1200.0 1.0 0.0 +fr 05_nuclear 1 73 2030 0.0 0.0 0.0 +fr 06_coal 1 73 2030 0.0 0.0 0.0 +fr 07_gas 1 73 2030 0.0 0.0 0.0 +fr 08_non-res 1 73 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 73 2030 0.0 0.0 0.0 +fr 01_solar 1 74 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 74 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 74 2030 2000.0 1.0 0.0 +fr 04_res 1 74 2030 1300.0 1.0 0.0 +fr 05_nuclear 1 74 2030 0.0 0.0 0.0 +fr 06_coal 1 74 2030 0.0 0.0 0.0 +fr 07_gas 1 74 2030 0.0 0.0 0.0 +fr 08_non-res 1 74 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 74 2030 0.0 0.0 0.0 +fr 01_solar 1 75 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 75 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 75 2030 2000.0 1.0 0.0 +fr 04_res 1 75 2030 1400.0 1.0 0.0 +fr 05_nuclear 1 75 2030 0.0 0.0 0.0 +fr 06_coal 1 75 2030 0.0 0.0 0.0 +fr 07_gas 1 75 2030 0.0 0.0 0.0 +fr 08_non-res 1 75 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 75 2030 0.0 0.0 0.0 +fr 01_solar 1 76 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 76 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 76 2030 2000.0 1.0 0.0 +fr 04_res 1 76 2030 1500.0 1.0 0.0 +fr 05_nuclear 1 76 2030 0.0 0.0 0.0 +fr 06_coal 1 76 2030 0.0 0.0 0.0 +fr 07_gas 1 76 2030 0.0 0.0 0.0 +fr 08_non-res 1 76 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 76 2030 0.0 0.0 0.0 +fr 01_solar 1 77 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 77 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 77 2030 2000.0 1.0 0.0 +fr 04_res 1 77 2030 1600.0 1.0 0.0 +fr 05_nuclear 1 77 2030 0.0 0.0 0.0 +fr 06_coal 1 77 2030 0.0 0.0 0.0 +fr 07_gas 1 77 2030 0.0 0.0 0.0 +fr 08_non-res 1 77 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 77 2030 0.0 0.0 0.0 +fr 01_solar 1 78 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 78 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 78 2030 2000.0 1.0 0.0 +fr 04_res 1 78 2030 1700.0 1.0 0.0 +fr 05_nuclear 1 78 2030 0.0 0.0 0.0 +fr 06_coal 1 78 2030 0.0 0.0 0.0 +fr 07_gas 1 78 2030 0.0 0.0 0.0 +fr 08_non-res 1 78 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 78 2030 0.0 0.0 0.0 +fr 01_solar 1 79 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 79 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 79 2030 2000.0 1.0 0.0 +fr 04_res 1 79 2030 1800.0 1.0 0.0 +fr 05_nuclear 1 79 2030 0.0 0.0 0.0 +fr 06_coal 1 79 2030 0.0 0.0 0.0 +fr 07_gas 1 79 2030 0.0 0.0 0.0 +fr 08_non-res 1 79 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 79 2030 0.0 0.0 0.0 +fr 01_solar 1 80 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 80 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 80 2030 2000.0 1.0 0.0 +fr 04_res 1 80 2030 1900.0 1.0 0.0 +fr 05_nuclear 1 80 2030 0.0 0.0 0.0 +fr 06_coal 1 80 2030 0.0 0.0 0.0 +fr 07_gas 1 80 2030 0.0 0.0 0.0 +fr 08_non-res 1 80 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 80 2030 0.0 0.0 0.0 +fr 01_solar 1 81 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 81 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 81 2030 2000.0 1.0 0.0 +fr 04_res 1 81 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 81 2030 0.0 0.0 0.0 +fr 06_coal 1 81 2030 0.0 0.0 0.0 +fr 07_gas 1 81 2030 0.0 0.0 0.0 +fr 08_non-res 1 81 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 81 2030 0.0 0.0 0.0 +fr 01_solar 1 82 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 82 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 82 2030 2000.0 1.0 0.0 +fr 04_res 1 82 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 82 2030 100.0 1.0 0.0 +fr 06_coal 1 82 2030 0.0 0.0 0.0 +fr 07_gas 1 82 2030 0.0 0.0 0.0 +fr 08_non-res 1 82 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 82 2030 0.0 0.0 0.0 +fr 01_solar 1 83 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 83 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 83 2030 2000.0 1.0 0.0 +fr 04_res 1 83 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 83 2030 200.0 1.0 0.0 +fr 06_coal 1 83 2030 0.0 0.0 0.0 +fr 07_gas 1 83 2030 0.0 0.0 0.0 +fr 08_non-res 1 83 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 83 2030 0.0 0.0 0.0 +fr 01_solar 1 84 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 84 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 84 2030 2000.0 1.0 0.0 +fr 04_res 1 84 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 84 2030 300.0 1.0 0.0 +fr 06_coal 1 84 2030 0.0 0.0 0.0 +fr 07_gas 1 84 2030 0.0 0.0 0.0 +fr 08_non-res 1 84 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 84 2030 0.0 0.0 0.0 +fr 01_solar 1 85 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 85 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 85 2030 2000.0 1.0 0.0 +fr 04_res 1 85 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 85 2030 400.0 1.0 0.0 +fr 06_coal 1 85 2030 0.0 0.0 0.0 +fr 07_gas 1 85 2030 0.0 0.0 0.0 +fr 08_non-res 1 85 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 85 2030 0.0 0.0 0.0 +fr 01_solar 1 86 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 86 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 86 2030 2000.0 1.0 0.0 +fr 04_res 1 86 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 86 2030 500.0 1.0 0.0 +fr 06_coal 1 86 2030 0.0 0.0 0.0 +fr 07_gas 1 86 2030 0.0 0.0 0.0 +fr 08_non-res 1 86 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 86 2030 0.0 0.0 0.0 +fr 01_solar 1 87 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 87 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 87 2030 2000.0 1.0 0.0 +fr 04_res 1 87 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 87 2030 600.0 1.0 0.0 +fr 06_coal 1 87 2030 0.0 0.0 0.0 +fr 07_gas 1 87 2030 0.0 0.0 0.0 +fr 08_non-res 1 87 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 87 2030 0.0 0.0 0.0 +fr 01_solar 1 88 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 88 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 88 2030 2000.0 1.0 0.0 +fr 04_res 1 88 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 88 2030 700.0 1.0 0.0 +fr 06_coal 1 88 2030 0.0 0.0 0.0 +fr 07_gas 1 88 2030 0.0 0.0 0.0 +fr 08_non-res 1 88 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 88 2030 0.0 0.0 0.0 +fr 01_solar 1 89 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 89 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 89 2030 2000.0 1.0 0.0 +fr 04_res 1 89 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 89 2030 800.0 1.0 0.0 +fr 06_coal 1 89 2030 0.0 0.0 0.0 +fr 07_gas 1 89 2030 0.0 0.0 0.0 +fr 08_non-res 1 89 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 89 2030 0.0 0.0 0.0 +fr 01_solar 1 90 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 90 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 90 2030 2000.0 1.0 0.0 +fr 04_res 1 90 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 90 2030 900.0 1.0 0.0 +fr 06_coal 1 90 2030 0.0 0.0 0.0 +fr 07_gas 1 90 2030 0.0 0.0 0.0 +fr 08_non-res 1 90 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 90 2030 0.0 0.0 0.0 +fr 01_solar 1 91 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 91 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 91 2030 2000.0 1.0 0.0 +fr 04_res 1 91 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 91 2030 1000.0 1.0 0.0 +fr 06_coal 1 91 2030 0.0 0.0 0.0 +fr 07_gas 1 91 2030 0.0 0.0 0.0 +fr 08_non-res 1 91 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 91 2030 0.0 0.0 0.0 +fr 01_solar 1 92 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 92 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 92 2030 2000.0 1.0 0.0 +fr 04_res 1 92 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 92 2030 1100.0 1.0 0.0 +fr 06_coal 1 92 2030 0.0 0.0 0.0 +fr 07_gas 1 92 2030 0.0 0.0 0.0 +fr 08_non-res 1 92 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 92 2030 0.0 0.0 0.0 +fr 01_solar 1 93 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 93 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 93 2030 2000.0 1.0 0.0 +fr 04_res 1 93 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 93 2030 1200.0 1.0 0.0 +fr 06_coal 1 93 2030 0.0 0.0 0.0 +fr 07_gas 1 93 2030 0.0 0.0 0.0 +fr 08_non-res 1 93 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 93 2030 0.0 0.0 0.0 +fr 01_solar 1 94 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 94 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 94 2030 2000.0 1.0 0.0 +fr 04_res 1 94 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 94 2030 1300.0 1.0 0.0 +fr 06_coal 1 94 2030 0.0 0.0 0.0 +fr 07_gas 1 94 2030 0.0 0.0 0.0 +fr 08_non-res 1 94 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 94 2030 0.0 0.0 0.0 +fr 01_solar 1 95 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 95 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 95 2030 2000.0 1.0 0.0 +fr 04_res 1 95 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 95 2030 1400.0 1.0 0.0 +fr 06_coal 1 95 2030 0.0 0.0 0.0 +fr 07_gas 1 95 2030 0.0 0.0 0.0 +fr 08_non-res 1 95 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 95 2030 0.0 0.0 0.0 +fr 01_solar 1 96 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 96 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 96 2030 2000.0 1.0 0.0 +fr 04_res 1 96 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 96 2030 1500.0 1.0 0.0 +fr 06_coal 1 96 2030 0.0 0.0 0.0 +fr 07_gas 1 96 2030 0.0 0.0 0.0 +fr 08_non-res 1 96 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 96 2030 0.0 0.0 0.0 +fr 01_solar 1 97 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 97 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 97 2030 2000.0 1.0 0.0 +fr 04_res 1 97 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 97 2030 1600.0 1.0 0.0 +fr 06_coal 1 97 2030 0.0 0.0 0.0 +fr 07_gas 1 97 2030 0.0 0.0 0.0 +fr 08_non-res 1 97 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 97 2030 0.0 0.0 0.0 +fr 01_solar 1 98 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 98 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 98 2030 2000.0 1.0 0.0 +fr 04_res 1 98 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 98 2030 1700.0 1.0 0.0 +fr 06_coal 1 98 2030 0.0 0.0 0.0 +fr 07_gas 1 98 2030 0.0 0.0 0.0 +fr 08_non-res 1 98 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 98 2030 0.0 0.0 0.0 +fr 01_solar 1 99 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 99 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 99 2030 2000.0 1.0 0.0 +fr 04_res 1 99 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 99 2030 1800.0 1.0 0.0 +fr 06_coal 1 99 2030 0.0 0.0 0.0 +fr 07_gas 1 99 2030 0.0 0.0 0.0 +fr 08_non-res 1 99 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 99 2030 0.0 0.0 0.0 +fr 01_solar 1 100 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 100 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 100 2030 2000.0 1.0 0.0 +fr 04_res 1 100 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 100 2030 1900.0 1.0 0.0 +fr 06_coal 1 100 2030 0.0 0.0 0.0 +fr 07_gas 1 100 2030 0.0 0.0 0.0 +fr 08_non-res 1 100 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 100 2030 0.0 0.0 0.0 +fr 01_solar 1 101 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 101 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 101 2030 2000.0 1.0 0.0 +fr 04_res 1 101 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 101 2030 2000.0 1.0 0.0 +fr 06_coal 1 101 2030 0.0 0.0 0.0 +fr 07_gas 1 101 2030 0.0 0.0 0.0 +fr 08_non-res 1 101 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 101 2030 0.0 0.0 0.0 +fr 01_solar 1 102 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 102 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 102 2030 2000.0 1.0 0.0 +fr 04_res 1 102 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 102 2030 2000.0 1.0 0.0 +fr 06_coal 1 102 2030 100.0 1.0 0.0 +fr 07_gas 1 102 2030 0.0 0.0 0.0 +fr 08_non-res 1 102 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 102 2030 0.0 0.0 0.0 +fr 01_solar 1 103 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 103 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 103 2030 2000.0 1.0 0.0 +fr 04_res 1 103 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 103 2030 2000.0 1.0 0.0 +fr 06_coal 1 103 2030 200.0 1.0 0.0 +fr 07_gas 1 103 2030 0.0 0.0 0.0 +fr 08_non-res 1 103 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 103 2030 0.0 0.0 0.0 +fr 01_solar 1 104 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 104 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 104 2030 2000.0 1.0 0.0 +fr 04_res 1 104 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 104 2030 2000.0 1.0 0.0 +fr 06_coal 1 104 2030 300.0 1.0 0.0 +fr 07_gas 1 104 2030 0.0 0.0 0.0 +fr 08_non-res 1 104 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 104 2030 0.0 0.0 0.0 +fr 01_solar 1 105 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 105 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 105 2030 2000.0 1.0 0.0 +fr 04_res 1 105 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 105 2030 2000.0 1.0 0.0 +fr 06_coal 1 105 2030 400.0 1.0 0.0 +fr 07_gas 1 105 2030 0.0 0.0 0.0 +fr 08_non-res 1 105 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 105 2030 0.0 0.0 0.0 +fr 01_solar 1 106 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 106 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 106 2030 2000.0 1.0 0.0 +fr 04_res 1 106 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 106 2030 2000.0 1.0 0.0 +fr 06_coal 1 106 2030 500.0 1.0 0.0 +fr 07_gas 1 106 2030 0.0 0.0 0.0 +fr 08_non-res 1 106 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 106 2030 0.0 0.0 0.0 +fr 01_solar 1 107 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 107 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 107 2030 2000.0 1.0 0.0 +fr 04_res 1 107 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 107 2030 2000.0 1.0 0.0 +fr 06_coal 1 107 2030 600.0 1.0 0.0 +fr 07_gas 1 107 2030 0.0 0.0 0.0 +fr 08_non-res 1 107 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 107 2030 0.0 0.0 0.0 +fr 01_solar 1 108 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 108 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 108 2030 2000.0 1.0 0.0 +fr 04_res 1 108 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 108 2030 2000.0 1.0 0.0 +fr 06_coal 1 108 2030 700.0 1.0 0.0 +fr 07_gas 1 108 2030 0.0 0.0 0.0 +fr 08_non-res 1 108 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 108 2030 0.0 0.0 0.0 +fr 01_solar 1 109 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 109 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 109 2030 2000.0 1.0 0.0 +fr 04_res 1 109 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 109 2030 2000.0 1.0 0.0 +fr 06_coal 1 109 2030 800.0 1.0 0.0 +fr 07_gas 1 109 2030 0.0 0.0 0.0 +fr 08_non-res 1 109 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 109 2030 0.0 0.0 0.0 +fr 01_solar 1 110 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 110 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 110 2030 2000.0 1.0 0.0 +fr 04_res 1 110 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 110 2030 2000.0 1.0 0.0 +fr 06_coal 1 110 2030 900.0 1.0 0.0 +fr 07_gas 1 110 2030 0.0 0.0 0.0 +fr 08_non-res 1 110 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 110 2030 0.0 0.0 0.0 +fr 01_solar 1 111 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 111 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 111 2030 2000.0 1.0 0.0 +fr 04_res 1 111 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 111 2030 2000.0 1.0 0.0 +fr 06_coal 1 111 2030 1000.0 1.0 0.0 +fr 07_gas 1 111 2030 0.0 0.0 0.0 +fr 08_non-res 1 111 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 111 2030 0.0 0.0 0.0 +fr 01_solar 1 112 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 112 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 112 2030 2000.0 1.0 0.0 +fr 04_res 1 112 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 112 2030 2000.0 1.0 0.0 +fr 06_coal 1 112 2030 1100.0 1.0 0.0 +fr 07_gas 1 112 2030 0.0 0.0 0.0 +fr 08_non-res 1 112 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 112 2030 0.0 0.0 0.0 +fr 01_solar 1 113 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 113 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 113 2030 2000.0 1.0 0.0 +fr 04_res 1 113 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 113 2030 2000.0 1.0 0.0 +fr 06_coal 1 113 2030 1200.0 1.0 0.0 +fr 07_gas 1 113 2030 0.0 0.0 0.0 +fr 08_non-res 1 113 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 113 2030 0.0 0.0 0.0 +fr 01_solar 1 114 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 114 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 114 2030 2000.0 1.0 0.0 +fr 04_res 1 114 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 114 2030 2000.0 1.0 0.0 +fr 06_coal 1 114 2030 1300.0 1.0 0.0 +fr 07_gas 1 114 2030 0.0 0.0 0.0 +fr 08_non-res 1 114 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 114 2030 0.0 0.0 0.0 +fr 01_solar 1 115 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 115 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 115 2030 2000.0 1.0 0.0 +fr 04_res 1 115 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 115 2030 2000.0 1.0 0.0 +fr 06_coal 1 115 2030 1400.0 1.0 0.0 +fr 07_gas 1 115 2030 0.0 0.0 0.0 +fr 08_non-res 1 115 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 115 2030 0.0 0.0 0.0 +fr 01_solar 1 116 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 116 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 116 2030 2000.0 1.0 0.0 +fr 04_res 1 116 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 116 2030 2000.0 1.0 0.0 +fr 06_coal 1 116 2030 1500.0 1.0 0.0 +fr 07_gas 1 116 2030 0.0 0.0 0.0 +fr 08_non-res 1 116 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 116 2030 0.0 0.0 0.0 +fr 01_solar 1 117 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 117 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 117 2030 2000.0 1.0 0.0 +fr 04_res 1 117 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 117 2030 2000.0 1.0 0.0 +fr 06_coal 1 117 2030 1600.0 1.0 0.0 +fr 07_gas 1 117 2030 0.0 0.0 0.0 +fr 08_non-res 1 117 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 117 2030 0.0 0.0 0.0 +fr 01_solar 1 118 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 118 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 118 2030 2000.0 1.0 0.0 +fr 04_res 1 118 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 118 2030 2000.0 1.0 0.0 +fr 06_coal 1 118 2030 1700.0 1.0 0.0 +fr 07_gas 1 118 2030 0.0 0.0 0.0 +fr 08_non-res 1 118 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 118 2030 0.0 0.0 0.0 +fr 01_solar 1 119 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 119 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 119 2030 2000.0 1.0 0.0 +fr 04_res 1 119 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 119 2030 2000.0 1.0 0.0 +fr 06_coal 1 119 2030 1800.0 1.0 0.0 +fr 07_gas 1 119 2030 0.0 0.0 0.0 +fr 08_non-res 1 119 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 119 2030 0.0 0.0 0.0 +fr 01_solar 1 120 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 120 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 120 2030 2000.0 1.0 0.0 +fr 04_res 1 120 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 120 2030 2000.0 1.0 0.0 +fr 06_coal 1 120 2030 1900.0 1.0 0.0 +fr 07_gas 1 120 2030 0.0 0.0 0.0 +fr 08_non-res 1 120 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 120 2030 0.0 0.0 0.0 +fr 01_solar 1 121 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 121 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 121 2030 2000.0 1.0 0.0 +fr 04_res 1 121 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 121 2030 2000.0 1.0 0.0 +fr 06_coal 1 121 2030 2000.0 1.0 0.0 +fr 07_gas 1 121 2030 0.0 0.0 0.0 +fr 08_non-res 1 121 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 121 2030 0.0 0.0 0.0 +fr 01_solar 1 122 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 122 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 122 2030 2000.0 1.0 0.0 +fr 04_res 1 122 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 122 2030 2000.0 1.0 0.0 +fr 06_coal 1 122 2030 2000.0 1.0 0.0 +fr 07_gas 1 122 2030 100.0 1.0 0.0 +fr 08_non-res 1 122 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 122 2030 0.0 0.0 0.0 +fr 01_solar 1 123 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 123 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 123 2030 2000.0 1.0 0.0 +fr 04_res 1 123 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 123 2030 2000.0 1.0 0.0 +fr 06_coal 1 123 2030 2000.0 1.0 0.0 +fr 07_gas 1 123 2030 200.0 1.0 0.0 +fr 08_non-res 1 123 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 123 2030 0.0 0.0 0.0 +fr 01_solar 1 124 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 124 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 124 2030 2000.0 1.0 0.0 +fr 04_res 1 124 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 124 2030 2000.0 1.0 0.0 +fr 06_coal 1 124 2030 2000.0 1.0 0.0 +fr 07_gas 1 124 2030 300.0 1.0 0.0 +fr 08_non-res 1 124 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 124 2030 0.0 0.0 0.0 +fr 01_solar 1 125 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 125 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 125 2030 2000.0 1.0 0.0 +fr 04_res 1 125 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 125 2030 2000.0 1.0 0.0 +fr 06_coal 1 125 2030 2000.0 1.0 0.0 +fr 07_gas 1 125 2030 400.0 1.0 0.0 +fr 08_non-res 1 125 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 125 2030 0.0 0.0 0.0 +fr 01_solar 1 126 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 126 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 126 2030 2000.0 1.0 0.0 +fr 04_res 1 126 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 126 2030 2000.0 1.0 0.0 +fr 06_coal 1 126 2030 2000.0 1.0 0.0 +fr 07_gas 1 126 2030 500.0 1.0 0.0 +fr 08_non-res 1 126 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 126 2030 0.0 0.0 0.0 +fr 01_solar 1 127 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 127 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 127 2030 2000.0 1.0 0.0 +fr 04_res 1 127 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 127 2030 2000.0 1.0 0.0 +fr 06_coal 1 127 2030 2000.0 1.0 0.0 +fr 07_gas 1 127 2030 600.0 1.0 0.0 +fr 08_non-res 1 127 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 127 2030 0.0 0.0 0.0 +fr 01_solar 1 128 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 128 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 128 2030 2000.0 1.0 0.0 +fr 04_res 1 128 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 128 2030 2000.0 1.0 0.0 +fr 06_coal 1 128 2030 2000.0 1.0 0.0 +fr 07_gas 1 128 2030 700.0 1.0 0.0 +fr 08_non-res 1 128 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 128 2030 0.0 0.0 0.0 +fr 01_solar 1 129 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 129 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 129 2030 2000.0 1.0 0.0 +fr 04_res 1 129 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 129 2030 2000.0 1.0 0.0 +fr 06_coal 1 129 2030 2000.0 1.0 0.0 +fr 07_gas 1 129 2030 800.0 1.0 0.0 +fr 08_non-res 1 129 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 129 2030 0.0 0.0 0.0 +fr 01_solar 1 130 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 130 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 130 2030 2000.0 1.0 0.0 +fr 04_res 1 130 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 130 2030 2000.0 1.0 0.0 +fr 06_coal 1 130 2030 2000.0 1.0 0.0 +fr 07_gas 1 130 2030 900.0 1.0 0.0 +fr 08_non-res 1 130 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 130 2030 0.0 0.0 0.0 +fr 01_solar 1 131 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 131 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 131 2030 2000.0 1.0 0.0 +fr 04_res 1 131 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 131 2030 2000.0 1.0 0.0 +fr 06_coal 1 131 2030 2000.0 1.0 0.0 +fr 07_gas 1 131 2030 1000.0 1.0 0.0 +fr 08_non-res 1 131 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 131 2030 0.0 0.0 0.0 +fr 01_solar 1 132 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 132 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 132 2030 2000.0 1.0 0.0 +fr 04_res 1 132 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 132 2030 2000.0 1.0 0.0 +fr 06_coal 1 132 2030 2000.0 1.0 0.0 +fr 07_gas 1 132 2030 1100.0 1.0 0.0 +fr 08_non-res 1 132 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 132 2030 0.0 0.0 0.0 +fr 01_solar 1 133 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 133 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 133 2030 2000.0 1.0 0.0 +fr 04_res 1 133 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 133 2030 2000.0 1.0 0.0 +fr 06_coal 1 133 2030 2000.0 1.0 0.0 +fr 07_gas 1 133 2030 1200.0 1.0 0.0 +fr 08_non-res 1 133 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 133 2030 0.0 0.0 0.0 +fr 01_solar 1 134 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 134 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 134 2030 2000.0 1.0 0.0 +fr 04_res 1 134 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 134 2030 2000.0 1.0 0.0 +fr 06_coal 1 134 2030 2000.0 1.0 0.0 +fr 07_gas 1 134 2030 1300.0 1.0 0.0 +fr 08_non-res 1 134 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 134 2030 0.0 0.0 0.0 +fr 01_solar 1 135 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 135 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 135 2030 2000.0 1.0 0.0 +fr 04_res 1 135 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 135 2030 2000.0 1.0 0.0 +fr 06_coal 1 135 2030 2000.0 1.0 0.0 +fr 07_gas 1 135 2030 1400.0 1.0 0.0 +fr 08_non-res 1 135 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 135 2030 0.0 0.0 0.0 +fr 01_solar 1 136 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 136 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 136 2030 2000.0 1.0 0.0 +fr 04_res 1 136 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 136 2030 2000.0 1.0 0.0 +fr 06_coal 1 136 2030 2000.0 1.0 0.0 +fr 07_gas 1 136 2030 1500.0 1.0 0.0 +fr 08_non-res 1 136 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 136 2030 0.0 0.0 0.0 +fr 01_solar 1 137 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 137 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 137 2030 2000.0 1.0 0.0 +fr 04_res 1 137 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 137 2030 2000.0 1.0 0.0 +fr 06_coal 1 137 2030 2000.0 1.0 0.0 +fr 07_gas 1 137 2030 1600.0 1.0 0.0 +fr 08_non-res 1 137 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 137 2030 0.0 0.0 0.0 +fr 01_solar 1 138 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 138 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 138 2030 2000.0 1.0 0.0 +fr 04_res 1 138 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 138 2030 2000.0 1.0 0.0 +fr 06_coal 1 138 2030 2000.0 1.0 0.0 +fr 07_gas 1 138 2030 1700.0 1.0 0.0 +fr 08_non-res 1 138 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 138 2030 0.0 0.0 0.0 +fr 01_solar 1 139 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 139 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 139 2030 2000.0 1.0 0.0 +fr 04_res 1 139 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 139 2030 2000.0 1.0 0.0 +fr 06_coal 1 139 2030 2000.0 1.0 0.0 +fr 07_gas 1 139 2030 1800.0 1.0 0.0 +fr 08_non-res 1 139 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 139 2030 0.0 0.0 0.0 +fr 01_solar 1 140 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 140 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 140 2030 2000.0 1.0 0.0 +fr 04_res 1 140 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 140 2030 2000.0 1.0 0.0 +fr 06_coal 1 140 2030 2000.0 1.0 0.0 +fr 07_gas 1 140 2030 1900.0 1.0 0.0 +fr 08_non-res 1 140 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 140 2030 0.0 0.0 0.0 +fr 01_solar 1 141 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 141 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 141 2030 2000.0 1.0 0.0 +fr 04_res 1 141 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 141 2030 2000.0 1.0 0.0 +fr 06_coal 1 141 2030 2000.0 1.0 0.0 +fr 07_gas 1 141 2030 2000.0 1.0 0.0 +fr 08_non-res 1 141 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 141 2030 0.0 0.0 0.0 +fr 01_solar 1 142 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 142 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 142 2030 2000.0 1.0 0.0 +fr 04_res 1 142 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 142 2030 2000.0 1.0 0.0 +fr 06_coal 1 142 2030 2000.0 1.0 0.0 +fr 07_gas 1 142 2030 2000.0 1.0 0.0 +fr 08_non-res 1 142 2030 100.0 1.0 0.0 +fr 09_hydro_pump 1 142 2030 0.0 0.0 0.0 +fr 01_solar 1 143 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 143 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 143 2030 2000.0 1.0 0.0 +fr 04_res 1 143 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 143 2030 2000.0 1.0 0.0 +fr 06_coal 1 143 2030 2000.0 1.0 0.0 +fr 07_gas 1 143 2030 2000.0 1.0 0.0 +fr 08_non-res 1 143 2030 200.0 1.0 0.0 +fr 09_hydro_pump 1 143 2030 0.0 0.0 0.0 +fr 01_solar 1 144 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 144 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 144 2030 2000.0 1.0 0.0 +fr 04_res 1 144 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 144 2030 2000.0 1.0 0.0 +fr 06_coal 1 144 2030 2000.0 1.0 0.0 +fr 07_gas 1 144 2030 2000.0 1.0 0.0 +fr 08_non-res 1 144 2030 300.0 1.0 0.0 +fr 09_hydro_pump 1 144 2030 0.0 0.0 0.0 +fr 01_solar 1 145 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 145 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 145 2030 2000.0 1.0 0.0 +fr 04_res 1 145 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 145 2030 2000.0 1.0 0.0 +fr 06_coal 1 145 2030 2000.0 1.0 0.0 +fr 07_gas 1 145 2030 2000.0 1.0 0.0 +fr 08_non-res 1 145 2030 400.0 1.0 0.0 +fr 09_hydro_pump 1 145 2030 0.0 0.0 0.0 +fr 01_solar 1 146 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 146 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 146 2030 2000.0 1.0 0.0 +fr 04_res 1 146 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 146 2030 2000.0 1.0 0.0 +fr 06_coal 1 146 2030 2000.0 1.0 0.0 +fr 07_gas 1 146 2030 2000.0 1.0 0.0 +fr 08_non-res 1 146 2030 500.0 1.0 0.0 +fr 09_hydro_pump 1 146 2030 0.0 0.0 0.0 +fr 01_solar 1 147 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 147 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 147 2030 2000.0 1.0 0.0 +fr 04_res 1 147 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 147 2030 2000.0 1.0 0.0 +fr 06_coal 1 147 2030 2000.0 1.0 0.0 +fr 07_gas 1 147 2030 2000.0 1.0 0.0 +fr 08_non-res 1 147 2030 600.0 1.0 0.0 +fr 09_hydro_pump 1 147 2030 0.0 0.0 0.0 +fr 01_solar 1 148 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 148 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 148 2030 2000.0 1.0 0.0 +fr 04_res 1 148 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 148 2030 2000.0 1.0 0.0 +fr 06_coal 1 148 2030 2000.0 1.0 0.0 +fr 07_gas 1 148 2030 2000.0 1.0 0.0 +fr 08_non-res 1 148 2030 700.0 1.0 0.0 +fr 09_hydro_pump 1 148 2030 0.0 0.0 0.0 +fr 01_solar 1 149 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 149 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 149 2030 2000.0 1.0 0.0 +fr 04_res 1 149 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 149 2030 2000.0 1.0 0.0 +fr 06_coal 1 149 2030 2000.0 1.0 0.0 +fr 07_gas 1 149 2030 2000.0 1.0 0.0 +fr 08_non-res 1 149 2030 800.0 1.0 0.0 +fr 09_hydro_pump 1 149 2030 0.0 0.0 0.0 +fr 01_solar 1 150 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 150 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 150 2030 2000.0 1.0 0.0 +fr 04_res 1 150 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 150 2030 2000.0 1.0 0.0 +fr 06_coal 1 150 2030 2000.0 1.0 0.0 +fr 07_gas 1 150 2030 2000.0 1.0 0.0 +fr 08_non-res 1 150 2030 900.0 1.0 0.0 +fr 09_hydro_pump 1 150 2030 0.0 0.0 0.0 +fr 01_solar 1 151 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 151 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 151 2030 2000.0 1.0 0.0 +fr 04_res 1 151 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 151 2030 2000.0 1.0 0.0 +fr 06_coal 1 151 2030 2000.0 1.0 0.0 +fr 07_gas 1 151 2030 2000.0 1.0 0.0 +fr 08_non-res 1 151 2030 1000.0 1.0 0.0 +fr 09_hydro_pump 1 151 2030 0.0 0.0 0.0 +fr 01_solar 1 152 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 152 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 152 2030 2000.0 1.0 0.0 +fr 04_res 1 152 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 152 2030 2000.0 1.0 0.0 +fr 06_coal 1 152 2030 2000.0 1.0 0.0 +fr 07_gas 1 152 2030 2000.0 1.0 0.0 +fr 08_non-res 1 152 2030 1100.0 1.0 0.0 +fr 09_hydro_pump 1 152 2030 0.0 0.0 0.0 +fr 01_solar 1 153 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 153 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 153 2030 2000.0 1.0 0.0 +fr 04_res 1 153 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 153 2030 2000.0 1.0 0.0 +fr 06_coal 1 153 2030 2000.0 1.0 0.0 +fr 07_gas 1 153 2030 2000.0 1.0 0.0 +fr 08_non-res 1 153 2030 1200.0 1.0 0.0 +fr 09_hydro_pump 1 153 2030 0.0 0.0 0.0 +fr 01_solar 1 154 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 154 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 154 2030 2000.0 1.0 0.0 +fr 04_res 1 154 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 154 2030 2000.0 1.0 0.0 +fr 06_coal 1 154 2030 2000.0 1.0 0.0 +fr 07_gas 1 154 2030 2000.0 1.0 0.0 +fr 08_non-res 1 154 2030 1300.0 1.0 0.0 +fr 09_hydro_pump 1 154 2030 0.0 0.0 0.0 +fr 01_solar 1 155 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 155 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 155 2030 2000.0 1.0 0.0 +fr 04_res 1 155 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 155 2030 2000.0 1.0 0.0 +fr 06_coal 1 155 2030 2000.0 1.0 0.0 +fr 07_gas 1 155 2030 2000.0 1.0 0.0 +fr 08_non-res 1 155 2030 1400.0 1.0 0.0 +fr 09_hydro_pump 1 155 2030 0.0 0.0 0.0 +fr 01_solar 1 156 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 156 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 156 2030 2000.0 1.0 0.0 +fr 04_res 1 156 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 156 2030 2000.0 1.0 0.0 +fr 06_coal 1 156 2030 2000.0 1.0 0.0 +fr 07_gas 1 156 2030 2000.0 1.0 0.0 +fr 08_non-res 1 156 2030 1500.0 1.0 0.0 +fr 09_hydro_pump 1 156 2030 0.0 0.0 0.0 +fr 01_solar 1 157 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 157 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 157 2030 2000.0 1.0 0.0 +fr 04_res 1 157 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 157 2030 2000.0 1.0 0.0 +fr 06_coal 1 157 2030 2000.0 1.0 0.0 +fr 07_gas 1 157 2030 2000.0 1.0 0.0 +fr 08_non-res 1 157 2030 1600.0 1.0 0.0 +fr 09_hydro_pump 1 157 2030 0.0 0.0 0.0 +fr 01_solar 1 158 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 158 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 158 2030 2000.0 1.0 0.0 +fr 04_res 1 158 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 158 2030 2000.0 1.0 0.0 +fr 06_coal 1 158 2030 2000.0 1.0 0.0 +fr 07_gas 1 158 2030 2000.0 1.0 0.0 +fr 08_non-res 1 158 2030 1700.0 1.0 0.0 +fr 09_hydro_pump 1 158 2030 0.0 0.0 0.0 +fr 01_solar 1 159 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 159 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 159 2030 2000.0 1.0 0.0 +fr 04_res 1 159 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 159 2030 2000.0 1.0 0.0 +fr 06_coal 1 159 2030 2000.0 1.0 0.0 +fr 07_gas 1 159 2030 2000.0 1.0 0.0 +fr 08_non-res 1 159 2030 1800.0 1.0 0.0 +fr 09_hydro_pump 1 159 2030 0.0 0.0 0.0 +fr 01_solar 1 160 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 160 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 160 2030 2000.0 1.0 0.0 +fr 04_res 1 160 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 160 2030 2000.0 1.0 0.0 +fr 06_coal 1 160 2030 2000.0 1.0 0.0 +fr 07_gas 1 160 2030 2000.0 1.0 0.0 +fr 08_non-res 1 160 2030 1900.0 1.0 0.0 +fr 09_hydro_pump 1 160 2030 0.0 0.0 0.0 +fr 01_solar 1 161 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 161 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 161 2030 2000.0 1.0 0.0 +fr 04_res 1 161 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 161 2030 2000.0 1.0 0.0 +fr 06_coal 1 161 2030 2000.0 1.0 0.0 +fr 07_gas 1 161 2030 2000.0 1.0 0.0 +fr 08_non-res 1 161 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 161 2030 0.0 0.0 0.0 +fr 01_solar 1 162 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 162 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 162 2030 2000.0 1.0 0.0 +fr 04_res 1 162 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 162 2030 2000.0 1.0 0.0 +fr 06_coal 1 162 2030 2000.0 1.0 0.0 +fr 07_gas 1 162 2030 2000.0 1.0 0.0 +fr 08_non-res 1 162 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 162 2030 100.0 1.0 0.0 +fr 01_solar 1 163 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 163 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 163 2030 2000.0 1.0 0.0 +fr 04_res 1 163 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 163 2030 2000.0 1.0 0.0 +fr 06_coal 1 163 2030 2000.0 1.0 0.0 +fr 07_gas 1 163 2030 2000.0 1.0 0.0 +fr 08_non-res 1 163 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 163 2030 200.0 1.0 0.0 +fr 01_solar 1 164 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 164 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 164 2030 2000.0 1.0 0.0 +fr 04_res 1 164 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 164 2030 2000.0 1.0 0.0 +fr 06_coal 1 164 2030 2000.0 1.0 0.0 +fr 07_gas 1 164 2030 2000.0 1.0 0.0 +fr 08_non-res 1 164 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 164 2030 300.0 1.0 0.0 +fr 01_solar 1 165 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 165 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 165 2030 2000.0 1.0 0.0 +fr 04_res 1 165 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 165 2030 2000.0 1.0 0.0 +fr 06_coal 1 165 2030 2000.0 1.0 0.0 +fr 07_gas 1 165 2030 2000.0 1.0 0.0 +fr 08_non-res 1 165 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 165 2030 400.0 1.0 0.0 +fr 01_solar 1 166 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 166 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 166 2030 2000.0 1.0 0.0 +fr 04_res 1 166 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 166 2030 2000.0 1.0 0.0 +fr 06_coal 1 166 2030 2000.0 1.0 0.0 +fr 07_gas 1 166 2030 2000.0 1.0 0.0 +fr 08_non-res 1 166 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 166 2030 500.0 1.0 0.0 +fr 01_solar 1 167 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 167 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 167 2030 2000.0 1.0 0.0 +fr 04_res 1 167 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 167 2030 2000.0 1.0 0.0 +fr 06_coal 1 167 2030 2000.0 1.0 0.0 +fr 07_gas 1 167 2030 2000.0 1.0 0.0 +fr 08_non-res 1 167 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 167 2030 600.0 1.0 0.0 +fr 01_solar 1 168 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 168 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 168 2030 2000.0 1.0 0.0 +fr 04_res 1 168 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 168 2030 2000.0 1.0 0.0 +fr 06_coal 1 168 2030 2000.0 1.0 0.0 +fr 07_gas 1 168 2030 2000.0 1.0 0.0 +fr 08_non-res 1 168 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 168 2030 700.0 1.0 0.0 +fr 01_solar 1 169 2030 0.0 0.0 0.0 +fr 02_wind_on 1 169 2030 0.0 0.0 0.0 +fr 03_wind_off 1 169 2030 0.0 0.0 0.0 +fr 04_res 1 169 2030 0.0 0.0 0.0 +fr 05_nuclear 1 169 2030 0.0 0.0 0.0 +fr 06_coal 1 169 2030 0.0 0.0 0.0 +fr 07_gas 1 169 2030 0.0 0.0 0.0 +fr 08_non-res 1 169 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 169 2030 0.0 0.0 0.0 +fr 01_solar 1 170 2030 100.0 1.0 0.0 +fr 02_wind_on 1 170 2030 0.0 0.0 0.0 +fr 03_wind_off 1 170 2030 0.0 0.0 0.0 +fr 04_res 1 170 2030 0.0 0.0 0.0 +fr 05_nuclear 1 170 2030 0.0 0.0 0.0 +fr 06_coal 1 170 2030 0.0 0.0 0.0 +fr 07_gas 1 170 2030 0.0 0.0 0.0 +fr 08_non-res 1 170 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 170 2030 0.0 0.0 0.0 +fr 01_solar 1 171 2030 200.0 1.0 0.0 +fr 02_wind_on 1 171 2030 0.0 0.0 0.0 +fr 03_wind_off 1 171 2030 0.0 0.0 0.0 +fr 04_res 1 171 2030 0.0 0.0 0.0 +fr 05_nuclear 1 171 2030 0.0 0.0 0.0 +fr 06_coal 1 171 2030 0.0 0.0 0.0 +fr 07_gas 1 171 2030 0.0 0.0 0.0 +fr 08_non-res 1 171 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 171 2030 0.0 0.0 0.0 +fr 01_solar 1 172 2030 300.0 1.0 0.0 +fr 02_wind_on 1 172 2030 0.0 0.0 0.0 +fr 03_wind_off 1 172 2030 0.0 0.0 0.0 +fr 04_res 1 172 2030 0.0 0.0 0.0 +fr 05_nuclear 1 172 2030 0.0 0.0 0.0 +fr 06_coal 1 172 2030 0.0 0.0 0.0 +fr 07_gas 1 172 2030 0.0 0.0 0.0 +fr 08_non-res 1 172 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 172 2030 0.0 0.0 0.0 +fr 01_solar 1 173 2030 400.0 1.0 0.0 +fr 02_wind_on 1 173 2030 0.0 0.0 0.0 +fr 03_wind_off 1 173 2030 0.0 0.0 0.0 +fr 04_res 1 173 2030 0.0 0.0 0.0 +fr 05_nuclear 1 173 2030 0.0 0.0 0.0 +fr 06_coal 1 173 2030 0.0 0.0 0.0 +fr 07_gas 1 173 2030 0.0 0.0 0.0 +fr 08_non-res 1 173 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 173 2030 0.0 0.0 0.0 +fr 01_solar 1 174 2030 500.0 1.0 0.0 +fr 02_wind_on 1 174 2030 0.0 0.0 0.0 +fr 03_wind_off 1 174 2030 0.0 0.0 0.0 +fr 04_res 1 174 2030 0.0 0.0 0.0 +fr 05_nuclear 1 174 2030 0.0 0.0 0.0 +fr 06_coal 1 174 2030 0.0 0.0 0.0 +fr 07_gas 1 174 2030 0.0 0.0 0.0 +fr 08_non-res 1 174 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 174 2030 0.0 0.0 0.0 +fr 01_solar 1 175 2030 600.0 1.0 0.0 +fr 02_wind_on 1 175 2030 0.0 0.0 0.0 +fr 03_wind_off 1 175 2030 0.0 0.0 0.0 +fr 04_res 1 175 2030 0.0 0.0 0.0 +fr 05_nuclear 1 175 2030 0.0 0.0 0.0 +fr 06_coal 1 175 2030 0.0 0.0 0.0 +fr 07_gas 1 175 2030 0.0 0.0 0.0 +fr 08_non-res 1 175 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 175 2030 0.0 0.0 0.0 +fr 01_solar 1 176 2030 700.0 1.0 0.0 +fr 02_wind_on 1 176 2030 0.0 0.0 0.0 +fr 03_wind_off 1 176 2030 0.0 0.0 0.0 +fr 04_res 1 176 2030 0.0 0.0 0.0 +fr 05_nuclear 1 176 2030 0.0 0.0 0.0 +fr 06_coal 1 176 2030 0.0 0.0 0.0 +fr 07_gas 1 176 2030 0.0 0.0 0.0 +fr 08_non-res 1 176 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 176 2030 0.0 0.0 0.0 +fr 01_solar 1 177 2030 800.0 1.0 0.0 +fr 02_wind_on 1 177 2030 0.0 0.0 0.0 +fr 03_wind_off 1 177 2030 0.0 0.0 0.0 +fr 04_res 1 177 2030 0.0 0.0 0.0 +fr 05_nuclear 1 177 2030 0.0 0.0 0.0 +fr 06_coal 1 177 2030 0.0 0.0 0.0 +fr 07_gas 1 177 2030 0.0 0.0 0.0 +fr 08_non-res 1 177 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 177 2030 0.0 0.0 0.0 +fr 01_solar 1 178 2030 900.0 1.0 0.0 +fr 02_wind_on 1 178 2030 0.0 0.0 0.0 +fr 03_wind_off 1 178 2030 0.0 0.0 0.0 +fr 04_res 1 178 2030 0.0 0.0 0.0 +fr 05_nuclear 1 178 2030 0.0 0.0 0.0 +fr 06_coal 1 178 2030 0.0 0.0 0.0 +fr 07_gas 1 178 2030 0.0 0.0 0.0 +fr 08_non-res 1 178 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 178 2030 0.0 0.0 0.0 +fr 01_solar 1 179 2030 1000.0 1.0 0.0 +fr 02_wind_on 1 179 2030 0.0 0.0 0.0 +fr 03_wind_off 1 179 2030 0.0 0.0 0.0 +fr 04_res 1 179 2030 0.0 0.0 0.0 +fr 05_nuclear 1 179 2030 0.0 0.0 0.0 +fr 06_coal 1 179 2030 0.0 0.0 0.0 +fr 07_gas 1 179 2030 0.0 0.0 0.0 +fr 08_non-res 1 179 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 179 2030 0.0 0.0 0.0 +fr 01_solar 1 180 2030 1100.0 1.0 0.0 +fr 02_wind_on 1 180 2030 0.0 0.0 0.0 +fr 03_wind_off 1 180 2030 0.0 0.0 0.0 +fr 04_res 1 180 2030 0.0 0.0 0.0 +fr 05_nuclear 1 180 2030 0.0 0.0 0.0 +fr 06_coal 1 180 2030 0.0 0.0 0.0 +fr 07_gas 1 180 2030 0.0 0.0 0.0 +fr 08_non-res 1 180 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 180 2030 0.0 0.0 0.0 +fr 01_solar 1 181 2030 1200.0 1.0 0.0 +fr 02_wind_on 1 181 2030 0.0 0.0 0.0 +fr 03_wind_off 1 181 2030 0.0 0.0 0.0 +fr 04_res 1 181 2030 0.0 0.0 0.0 +fr 05_nuclear 1 181 2030 0.0 0.0 0.0 +fr 06_coal 1 181 2030 0.0 0.0 0.0 +fr 07_gas 1 181 2030 0.0 0.0 0.0 +fr 08_non-res 1 181 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 181 2030 0.0 0.0 0.0 +fr 01_solar 1 182 2030 1300.0 1.0 0.0 +fr 02_wind_on 1 182 2030 0.0 0.0 0.0 +fr 03_wind_off 1 182 2030 0.0 0.0 0.0 +fr 04_res 1 182 2030 0.0 0.0 0.0 +fr 05_nuclear 1 182 2030 0.0 0.0 0.0 +fr 06_coal 1 182 2030 0.0 0.0 0.0 +fr 07_gas 1 182 2030 0.0 0.0 0.0 +fr 08_non-res 1 182 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 182 2030 0.0 0.0 0.0 +fr 01_solar 1 183 2030 1400.0 1.0 0.0 +fr 02_wind_on 1 183 2030 0.0 0.0 0.0 +fr 03_wind_off 1 183 2030 0.0 0.0 0.0 +fr 04_res 1 183 2030 0.0 0.0 0.0 +fr 05_nuclear 1 183 2030 0.0 0.0 0.0 +fr 06_coal 1 183 2030 0.0 0.0 0.0 +fr 07_gas 1 183 2030 0.0 0.0 0.0 +fr 08_non-res 1 183 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 183 2030 0.0 0.0 0.0 +fr 01_solar 1 184 2030 1500.0 1.0 0.0 +fr 02_wind_on 1 184 2030 0.0 0.0 0.0 +fr 03_wind_off 1 184 2030 0.0 0.0 0.0 +fr 04_res 1 184 2030 0.0 0.0 0.0 +fr 05_nuclear 1 184 2030 0.0 0.0 0.0 +fr 06_coal 1 184 2030 0.0 0.0 0.0 +fr 07_gas 1 184 2030 0.0 0.0 0.0 +fr 08_non-res 1 184 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 184 2030 0.0 0.0 0.0 +fr 01_solar 1 185 2030 1600.0 1.0 0.0 +fr 02_wind_on 1 185 2030 0.0 0.0 0.0 +fr 03_wind_off 1 185 2030 0.0 0.0 0.0 +fr 04_res 1 185 2030 0.0 0.0 0.0 +fr 05_nuclear 1 185 2030 0.0 0.0 0.0 +fr 06_coal 1 185 2030 0.0 0.0 0.0 +fr 07_gas 1 185 2030 0.0 0.0 0.0 +fr 08_non-res 1 185 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 185 2030 0.0 0.0 0.0 +fr 01_solar 1 186 2030 1700.0 1.0 0.0 +fr 02_wind_on 1 186 2030 0.0 0.0 0.0 +fr 03_wind_off 1 186 2030 0.0 0.0 0.0 +fr 04_res 1 186 2030 0.0 0.0 0.0 +fr 05_nuclear 1 186 2030 0.0 0.0 0.0 +fr 06_coal 1 186 2030 0.0 0.0 0.0 +fr 07_gas 1 186 2030 0.0 0.0 0.0 +fr 08_non-res 1 186 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 186 2030 0.0 0.0 0.0 +fr 01_solar 1 187 2030 1800.0 1.0 0.0 +fr 02_wind_on 1 187 2030 0.0 0.0 0.0 +fr 03_wind_off 1 187 2030 0.0 0.0 0.0 +fr 04_res 1 187 2030 0.0 0.0 0.0 +fr 05_nuclear 1 187 2030 0.0 0.0 0.0 +fr 06_coal 1 187 2030 0.0 0.0 0.0 +fr 07_gas 1 187 2030 0.0 0.0 0.0 +fr 08_non-res 1 187 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 187 2030 0.0 0.0 0.0 +fr 01_solar 1 188 2030 1900.0 1.0 0.0 +fr 02_wind_on 1 188 2030 0.0 0.0 0.0 +fr 03_wind_off 1 188 2030 0.0 0.0 0.0 +fr 04_res 1 188 2030 0.0 0.0 0.0 +fr 05_nuclear 1 188 2030 0.0 0.0 0.0 +fr 06_coal 1 188 2030 0.0 0.0 0.0 +fr 07_gas 1 188 2030 0.0 0.0 0.0 +fr 08_non-res 1 188 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 188 2030 0.0 0.0 0.0 +fr 01_solar 1 189 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 189 2030 0.0 0.0 0.0 +fr 03_wind_off 1 189 2030 0.0 0.0 0.0 +fr 04_res 1 189 2030 0.0 0.0 0.0 +fr 05_nuclear 1 189 2030 0.0 0.0 0.0 +fr 06_coal 1 189 2030 0.0 0.0 0.0 +fr 07_gas 1 189 2030 0.0 0.0 0.0 +fr 08_non-res 1 189 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 189 2030 0.0 0.0 0.0 +fr 01_solar 1 190 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 190 2030 100.0 1.0 0.0 +fr 03_wind_off 1 190 2030 0.0 0.0 0.0 +fr 04_res 1 190 2030 0.0 0.0 0.0 +fr 05_nuclear 1 190 2030 0.0 0.0 0.0 +fr 06_coal 1 190 2030 0.0 0.0 0.0 +fr 07_gas 1 190 2030 0.0 0.0 0.0 +fr 08_non-res 1 190 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 190 2030 0.0 0.0 0.0 +fr 01_solar 1 191 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 191 2030 200.0 1.0 0.0 +fr 03_wind_off 1 191 2030 0.0 0.0 0.0 +fr 04_res 1 191 2030 0.0 0.0 0.0 +fr 05_nuclear 1 191 2030 0.0 0.0 0.0 +fr 06_coal 1 191 2030 0.0 0.0 0.0 +fr 07_gas 1 191 2030 0.0 0.0 0.0 +fr 08_non-res 1 191 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 191 2030 0.0 0.0 0.0 +fr 01_solar 1 192 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 192 2030 300.0 1.0 0.0 +fr 03_wind_off 1 192 2030 0.0 0.0 0.0 +fr 04_res 1 192 2030 0.0 0.0 0.0 +fr 05_nuclear 1 192 2030 0.0 0.0 0.0 +fr 06_coal 1 192 2030 0.0 0.0 0.0 +fr 07_gas 1 192 2030 0.0 0.0 0.0 +fr 08_non-res 1 192 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 192 2030 0.0 0.0 0.0 +fr 01_solar 1 193 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 193 2030 400.0 1.0 0.0 +fr 03_wind_off 1 193 2030 0.0 0.0 0.0 +fr 04_res 1 193 2030 0.0 0.0 0.0 +fr 05_nuclear 1 193 2030 0.0 0.0 0.0 +fr 06_coal 1 193 2030 0.0 0.0 0.0 +fr 07_gas 1 193 2030 0.0 0.0 0.0 +fr 08_non-res 1 193 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 193 2030 0.0 0.0 0.0 +fr 01_solar 1 194 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 194 2030 500.0 1.0 0.0 +fr 03_wind_off 1 194 2030 0.0 0.0 0.0 +fr 04_res 1 194 2030 0.0 0.0 0.0 +fr 05_nuclear 1 194 2030 0.0 0.0 0.0 +fr 06_coal 1 194 2030 0.0 0.0 0.0 +fr 07_gas 1 194 2030 0.0 0.0 0.0 +fr 08_non-res 1 194 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 194 2030 0.0 0.0 0.0 +fr 01_solar 1 195 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 195 2030 600.0 1.0 0.0 +fr 03_wind_off 1 195 2030 0.0 0.0 0.0 +fr 04_res 1 195 2030 0.0 0.0 0.0 +fr 05_nuclear 1 195 2030 0.0 0.0 0.0 +fr 06_coal 1 195 2030 0.0 0.0 0.0 +fr 07_gas 1 195 2030 0.0 0.0 0.0 +fr 08_non-res 1 195 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 195 2030 0.0 0.0 0.0 +fr 01_solar 1 196 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 196 2030 700.0 1.0 0.0 +fr 03_wind_off 1 196 2030 0.0 0.0 0.0 +fr 04_res 1 196 2030 0.0 0.0 0.0 +fr 05_nuclear 1 196 2030 0.0 0.0 0.0 +fr 06_coal 1 196 2030 0.0 0.0 0.0 +fr 07_gas 1 196 2030 0.0 0.0 0.0 +fr 08_non-res 1 196 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 196 2030 0.0 0.0 0.0 +fr 01_solar 1 197 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 197 2030 800.0 1.0 0.0 +fr 03_wind_off 1 197 2030 0.0 0.0 0.0 +fr 04_res 1 197 2030 0.0 0.0 0.0 +fr 05_nuclear 1 197 2030 0.0 0.0 0.0 +fr 06_coal 1 197 2030 0.0 0.0 0.0 +fr 07_gas 1 197 2030 0.0 0.0 0.0 +fr 08_non-res 1 197 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 197 2030 0.0 0.0 0.0 +fr 01_solar 1 198 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 198 2030 900.0 1.0 0.0 +fr 03_wind_off 1 198 2030 0.0 0.0 0.0 +fr 04_res 1 198 2030 0.0 0.0 0.0 +fr 05_nuclear 1 198 2030 0.0 0.0 0.0 +fr 06_coal 1 198 2030 0.0 0.0 0.0 +fr 07_gas 1 198 2030 0.0 0.0 0.0 +fr 08_non-res 1 198 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 198 2030 0.0 0.0 0.0 +fr 01_solar 1 199 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 199 2030 1000.0 1.0 0.0 +fr 03_wind_off 1 199 2030 0.0 0.0 0.0 +fr 04_res 1 199 2030 0.0 0.0 0.0 +fr 05_nuclear 1 199 2030 0.0 0.0 0.0 +fr 06_coal 1 199 2030 0.0 0.0 0.0 +fr 07_gas 1 199 2030 0.0 0.0 0.0 +fr 08_non-res 1 199 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 199 2030 0.0 0.0 0.0 +fr 01_solar 1 200 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 200 2030 1100.0 1.0 0.0 +fr 03_wind_off 1 200 2030 0.0 0.0 0.0 +fr 04_res 1 200 2030 0.0 0.0 0.0 +fr 05_nuclear 1 200 2030 0.0 0.0 0.0 +fr 06_coal 1 200 2030 0.0 0.0 0.0 +fr 07_gas 1 200 2030 0.0 0.0 0.0 +fr 08_non-res 1 200 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 200 2030 0.0 0.0 0.0 +fr 01_solar 1 201 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 201 2030 1200.0 1.0 0.0 +fr 03_wind_off 1 201 2030 0.0 0.0 0.0 +fr 04_res 1 201 2030 0.0 0.0 0.0 +fr 05_nuclear 1 201 2030 0.0 0.0 0.0 +fr 06_coal 1 201 2030 0.0 0.0 0.0 +fr 07_gas 1 201 2030 0.0 0.0 0.0 +fr 08_non-res 1 201 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 201 2030 0.0 0.0 0.0 +fr 01_solar 1 202 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 202 2030 1300.0 1.0 0.0 +fr 03_wind_off 1 202 2030 0.0 0.0 0.0 +fr 04_res 1 202 2030 0.0 0.0 0.0 +fr 05_nuclear 1 202 2030 0.0 0.0 0.0 +fr 06_coal 1 202 2030 0.0 0.0 0.0 +fr 07_gas 1 202 2030 0.0 0.0 0.0 +fr 08_non-res 1 202 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 202 2030 0.0 0.0 0.0 +fr 01_solar 1 203 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 203 2030 1400.0 1.0 0.0 +fr 03_wind_off 1 203 2030 0.0 0.0 0.0 +fr 04_res 1 203 2030 0.0 0.0 0.0 +fr 05_nuclear 1 203 2030 0.0 0.0 0.0 +fr 06_coal 1 203 2030 0.0 0.0 0.0 +fr 07_gas 1 203 2030 0.0 0.0 0.0 +fr 08_non-res 1 203 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 203 2030 0.0 0.0 0.0 +fr 01_solar 1 204 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 204 2030 1500.0 1.0 0.0 +fr 03_wind_off 1 204 2030 0.0 0.0 0.0 +fr 04_res 1 204 2030 0.0 0.0 0.0 +fr 05_nuclear 1 204 2030 0.0 0.0 0.0 +fr 06_coal 1 204 2030 0.0 0.0 0.0 +fr 07_gas 1 204 2030 0.0 0.0 0.0 +fr 08_non-res 1 204 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 204 2030 0.0 0.0 0.0 +fr 01_solar 1 205 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 205 2030 1600.0 1.0 0.0 +fr 03_wind_off 1 205 2030 0.0 0.0 0.0 +fr 04_res 1 205 2030 0.0 0.0 0.0 +fr 05_nuclear 1 205 2030 0.0 0.0 0.0 +fr 06_coal 1 205 2030 0.0 0.0 0.0 +fr 07_gas 1 205 2030 0.0 0.0 0.0 +fr 08_non-res 1 205 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 205 2030 0.0 0.0 0.0 +fr 01_solar 1 206 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 206 2030 1700.0 1.0 0.0 +fr 03_wind_off 1 206 2030 0.0 0.0 0.0 +fr 04_res 1 206 2030 0.0 0.0 0.0 +fr 05_nuclear 1 206 2030 0.0 0.0 0.0 +fr 06_coal 1 206 2030 0.0 0.0 0.0 +fr 07_gas 1 206 2030 0.0 0.0 0.0 +fr 08_non-res 1 206 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 206 2030 0.0 0.0 0.0 +fr 01_solar 1 207 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 207 2030 1800.0 1.0 0.0 +fr 03_wind_off 1 207 2030 0.0 0.0 0.0 +fr 04_res 1 207 2030 0.0 0.0 0.0 +fr 05_nuclear 1 207 2030 0.0 0.0 0.0 +fr 06_coal 1 207 2030 0.0 0.0 0.0 +fr 07_gas 1 207 2030 0.0 0.0 0.0 +fr 08_non-res 1 207 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 207 2030 0.0 0.0 0.0 +fr 01_solar 1 208 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 208 2030 1900.0 1.0 0.0 +fr 03_wind_off 1 208 2030 0.0 0.0 0.0 +fr 04_res 1 208 2030 0.0 0.0 0.0 +fr 05_nuclear 1 208 2030 0.0 0.0 0.0 +fr 06_coal 1 208 2030 0.0 0.0 0.0 +fr 07_gas 1 208 2030 0.0 0.0 0.0 +fr 08_non-res 1 208 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 208 2030 0.0 0.0 0.0 +fr 01_solar 1 209 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 209 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 209 2030 0.0 0.0 0.0 +fr 04_res 1 209 2030 0.0 0.0 0.0 +fr 05_nuclear 1 209 2030 0.0 0.0 0.0 +fr 06_coal 1 209 2030 0.0 0.0 0.0 +fr 07_gas 1 209 2030 0.0 0.0 0.0 +fr 08_non-res 1 209 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 209 2030 0.0 0.0 0.0 +fr 01_solar 1 210 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 210 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 210 2030 100.0 1.0 0.0 +fr 04_res 1 210 2030 0.0 0.0 0.0 +fr 05_nuclear 1 210 2030 0.0 0.0 0.0 +fr 06_coal 1 210 2030 0.0 0.0 0.0 +fr 07_gas 1 210 2030 0.0 0.0 0.0 +fr 08_non-res 1 210 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 210 2030 0.0 0.0 0.0 +fr 01_solar 1 211 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 211 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 211 2030 200.0 1.0 0.0 +fr 04_res 1 211 2030 0.0 0.0 0.0 +fr 05_nuclear 1 211 2030 0.0 0.0 0.0 +fr 06_coal 1 211 2030 0.0 0.0 0.0 +fr 07_gas 1 211 2030 0.0 0.0 0.0 +fr 08_non-res 1 211 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 211 2030 0.0 0.0 0.0 +fr 01_solar 1 212 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 212 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 212 2030 300.0 1.0 0.0 +fr 04_res 1 212 2030 0.0 0.0 0.0 +fr 05_nuclear 1 212 2030 0.0 0.0 0.0 +fr 06_coal 1 212 2030 0.0 0.0 0.0 +fr 07_gas 1 212 2030 0.0 0.0 0.0 +fr 08_non-res 1 212 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 212 2030 0.0 0.0 0.0 +fr 01_solar 1 213 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 213 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 213 2030 400.0 1.0 0.0 +fr 04_res 1 213 2030 0.0 0.0 0.0 +fr 05_nuclear 1 213 2030 0.0 0.0 0.0 +fr 06_coal 1 213 2030 0.0 0.0 0.0 +fr 07_gas 1 213 2030 0.0 0.0 0.0 +fr 08_non-res 1 213 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 213 2030 0.0 0.0 0.0 +fr 01_solar 1 214 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 214 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 214 2030 500.0 1.0 0.0 +fr 04_res 1 214 2030 0.0 0.0 0.0 +fr 05_nuclear 1 214 2030 0.0 0.0 0.0 +fr 06_coal 1 214 2030 0.0 0.0 0.0 +fr 07_gas 1 214 2030 0.0 0.0 0.0 +fr 08_non-res 1 214 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 214 2030 0.0 0.0 0.0 +fr 01_solar 1 215 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 215 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 215 2030 600.0 1.0 0.0 +fr 04_res 1 215 2030 0.0 0.0 0.0 +fr 05_nuclear 1 215 2030 0.0 0.0 0.0 +fr 06_coal 1 215 2030 0.0 0.0 0.0 +fr 07_gas 1 215 2030 0.0 0.0 0.0 +fr 08_non-res 1 215 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 215 2030 0.0 0.0 0.0 +fr 01_solar 1 216 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 216 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 216 2030 700.0 1.0 0.0 +fr 04_res 1 216 2030 0.0 0.0 0.0 +fr 05_nuclear 1 216 2030 0.0 0.0 0.0 +fr 06_coal 1 216 2030 0.0 0.0 0.0 +fr 07_gas 1 216 2030 0.0 0.0 0.0 +fr 08_non-res 1 216 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 216 2030 0.0 0.0 0.0 +fr 01_solar 1 217 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 217 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 217 2030 800.0 1.0 0.0 +fr 04_res 1 217 2030 0.0 0.0 0.0 +fr 05_nuclear 1 217 2030 0.0 0.0 0.0 +fr 06_coal 1 217 2030 0.0 0.0 0.0 +fr 07_gas 1 217 2030 0.0 0.0 0.0 +fr 08_non-res 1 217 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 217 2030 0.0 0.0 0.0 +fr 01_solar 1 218 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 218 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 218 2030 900.0 1.0 0.0 +fr 04_res 1 218 2030 0.0 0.0 0.0 +fr 05_nuclear 1 218 2030 0.0 0.0 0.0 +fr 06_coal 1 218 2030 0.0 0.0 0.0 +fr 07_gas 1 218 2030 0.0 0.0 0.0 +fr 08_non-res 1 218 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 218 2030 0.0 0.0 0.0 +fr 01_solar 1 219 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 219 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 219 2030 1000.0 1.0 0.0 +fr 04_res 1 219 2030 0.0 0.0 0.0 +fr 05_nuclear 1 219 2030 0.0 0.0 0.0 +fr 06_coal 1 219 2030 0.0 0.0 0.0 +fr 07_gas 1 219 2030 0.0 0.0 0.0 +fr 08_non-res 1 219 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 219 2030 0.0 0.0 0.0 +fr 01_solar 1 220 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 220 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 220 2030 1100.0 1.0 0.0 +fr 04_res 1 220 2030 0.0 0.0 0.0 +fr 05_nuclear 1 220 2030 0.0 0.0 0.0 +fr 06_coal 1 220 2030 0.0 0.0 0.0 +fr 07_gas 1 220 2030 0.0 0.0 0.0 +fr 08_non-res 1 220 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 220 2030 0.0 0.0 0.0 +fr 01_solar 1 221 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 221 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 221 2030 1200.0 1.0 0.0 +fr 04_res 1 221 2030 0.0 0.0 0.0 +fr 05_nuclear 1 221 2030 0.0 0.0 0.0 +fr 06_coal 1 221 2030 0.0 0.0 0.0 +fr 07_gas 1 221 2030 0.0 0.0 0.0 +fr 08_non-res 1 221 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 221 2030 0.0 0.0 0.0 +fr 01_solar 1 222 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 222 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 222 2030 1300.0 1.0 0.0 +fr 04_res 1 222 2030 0.0 0.0 0.0 +fr 05_nuclear 1 222 2030 0.0 0.0 0.0 +fr 06_coal 1 222 2030 0.0 0.0 0.0 +fr 07_gas 1 222 2030 0.0 0.0 0.0 +fr 08_non-res 1 222 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 222 2030 0.0 0.0 0.0 +fr 01_solar 1 223 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 223 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 223 2030 1400.0 1.0 0.0 +fr 04_res 1 223 2030 0.0 0.0 0.0 +fr 05_nuclear 1 223 2030 0.0 0.0 0.0 +fr 06_coal 1 223 2030 0.0 0.0 0.0 +fr 07_gas 1 223 2030 0.0 0.0 0.0 +fr 08_non-res 1 223 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 223 2030 0.0 0.0 0.0 +fr 01_solar 1 224 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 224 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 224 2030 1500.0 1.0 0.0 +fr 04_res 1 224 2030 0.0 0.0 0.0 +fr 05_nuclear 1 224 2030 0.0 0.0 0.0 +fr 06_coal 1 224 2030 0.0 0.0 0.0 +fr 07_gas 1 224 2030 0.0 0.0 0.0 +fr 08_non-res 1 224 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 224 2030 0.0 0.0 0.0 +fr 01_solar 1 225 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 225 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 225 2030 1600.0 1.0 0.0 +fr 04_res 1 225 2030 0.0 0.0 0.0 +fr 05_nuclear 1 225 2030 0.0 0.0 0.0 +fr 06_coal 1 225 2030 0.0 0.0 0.0 +fr 07_gas 1 225 2030 0.0 0.0 0.0 +fr 08_non-res 1 225 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 225 2030 0.0 0.0 0.0 +fr 01_solar 1 226 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 226 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 226 2030 1700.0 1.0 0.0 +fr 04_res 1 226 2030 0.0 0.0 0.0 +fr 05_nuclear 1 226 2030 0.0 0.0 0.0 +fr 06_coal 1 226 2030 0.0 0.0 0.0 +fr 07_gas 1 226 2030 0.0 0.0 0.0 +fr 08_non-res 1 226 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 226 2030 0.0 0.0 0.0 +fr 01_solar 1 227 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 227 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 227 2030 1800.0 1.0 0.0 +fr 04_res 1 227 2030 0.0 0.0 0.0 +fr 05_nuclear 1 227 2030 0.0 0.0 0.0 +fr 06_coal 1 227 2030 0.0 0.0 0.0 +fr 07_gas 1 227 2030 0.0 0.0 0.0 +fr 08_non-res 1 227 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 227 2030 0.0 0.0 0.0 +fr 01_solar 1 228 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 228 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 228 2030 1900.0 1.0 0.0 +fr 04_res 1 228 2030 0.0 0.0 0.0 +fr 05_nuclear 1 228 2030 0.0 0.0 0.0 +fr 06_coal 1 228 2030 0.0 0.0 0.0 +fr 07_gas 1 228 2030 0.0 0.0 0.0 +fr 08_non-res 1 228 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 228 2030 0.0 0.0 0.0 +fr 01_solar 1 229 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 229 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 229 2030 2000.0 1.0 0.0 +fr 04_res 1 229 2030 0.0 0.0 0.0 +fr 05_nuclear 1 229 2030 0.0 0.0 0.0 +fr 06_coal 1 229 2030 0.0 0.0 0.0 +fr 07_gas 1 229 2030 0.0 0.0 0.0 +fr 08_non-res 1 229 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 229 2030 0.0 0.0 0.0 +fr 01_solar 1 230 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 230 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 230 2030 2000.0 1.0 0.0 +fr 04_res 1 230 2030 100.0 1.0 0.0 +fr 05_nuclear 1 230 2030 0.0 0.0 0.0 +fr 06_coal 1 230 2030 0.0 0.0 0.0 +fr 07_gas 1 230 2030 0.0 0.0 0.0 +fr 08_non-res 1 230 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 230 2030 0.0 0.0 0.0 +fr 01_solar 1 231 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 231 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 231 2030 2000.0 1.0 0.0 +fr 04_res 1 231 2030 200.0 1.0 0.0 +fr 05_nuclear 1 231 2030 0.0 0.0 0.0 +fr 06_coal 1 231 2030 0.0 0.0 0.0 +fr 07_gas 1 231 2030 0.0 0.0 0.0 +fr 08_non-res 1 231 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 231 2030 0.0 0.0 0.0 +fr 01_solar 1 232 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 232 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 232 2030 2000.0 1.0 0.0 +fr 04_res 1 232 2030 300.0 1.0 0.0 +fr 05_nuclear 1 232 2030 0.0 0.0 0.0 +fr 06_coal 1 232 2030 0.0 0.0 0.0 +fr 07_gas 1 232 2030 0.0 0.0 0.0 +fr 08_non-res 1 232 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 232 2030 0.0 0.0 0.0 +fr 01_solar 1 233 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 233 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 233 2030 2000.0 1.0 0.0 +fr 04_res 1 233 2030 400.0 1.0 0.0 +fr 05_nuclear 1 233 2030 0.0 0.0 0.0 +fr 06_coal 1 233 2030 0.0 0.0 0.0 +fr 07_gas 1 233 2030 0.0 0.0 0.0 +fr 08_non-res 1 233 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 233 2030 0.0 0.0 0.0 +fr 01_solar 1 234 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 234 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 234 2030 2000.0 1.0 0.0 +fr 04_res 1 234 2030 500.0 1.0 0.0 +fr 05_nuclear 1 234 2030 0.0 0.0 0.0 +fr 06_coal 1 234 2030 0.0 0.0 0.0 +fr 07_gas 1 234 2030 0.0 0.0 0.0 +fr 08_non-res 1 234 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 234 2030 0.0 0.0 0.0 +fr 01_solar 1 235 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 235 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 235 2030 2000.0 1.0 0.0 +fr 04_res 1 235 2030 600.0 1.0 0.0 +fr 05_nuclear 1 235 2030 0.0 0.0 0.0 +fr 06_coal 1 235 2030 0.0 0.0 0.0 +fr 07_gas 1 235 2030 0.0 0.0 0.0 +fr 08_non-res 1 235 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 235 2030 0.0 0.0 0.0 +fr 01_solar 1 236 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 236 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 236 2030 2000.0 1.0 0.0 +fr 04_res 1 236 2030 700.0 1.0 0.0 +fr 05_nuclear 1 236 2030 0.0 0.0 0.0 +fr 06_coal 1 236 2030 0.0 0.0 0.0 +fr 07_gas 1 236 2030 0.0 0.0 0.0 +fr 08_non-res 1 236 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 236 2030 0.0 0.0 0.0 +fr 01_solar 1 237 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 237 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 237 2030 2000.0 1.0 0.0 +fr 04_res 1 237 2030 800.0 1.0 0.0 +fr 05_nuclear 1 237 2030 0.0 0.0 0.0 +fr 06_coal 1 237 2030 0.0 0.0 0.0 +fr 07_gas 1 237 2030 0.0 0.0 0.0 +fr 08_non-res 1 237 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 237 2030 0.0 0.0 0.0 +fr 01_solar 1 238 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 238 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 238 2030 2000.0 1.0 0.0 +fr 04_res 1 238 2030 900.0 1.0 0.0 +fr 05_nuclear 1 238 2030 0.0 0.0 0.0 +fr 06_coal 1 238 2030 0.0 0.0 0.0 +fr 07_gas 1 238 2030 0.0 0.0 0.0 +fr 08_non-res 1 238 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 238 2030 0.0 0.0 0.0 +fr 01_solar 1 239 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 239 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 239 2030 2000.0 1.0 0.0 +fr 04_res 1 239 2030 1000.0 1.0 0.0 +fr 05_nuclear 1 239 2030 0.0 0.0 0.0 +fr 06_coal 1 239 2030 0.0 0.0 0.0 +fr 07_gas 1 239 2030 0.0 0.0 0.0 +fr 08_non-res 1 239 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 239 2030 0.0 0.0 0.0 +fr 01_solar 1 240 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 240 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 240 2030 2000.0 1.0 0.0 +fr 04_res 1 240 2030 1100.0 1.0 0.0 +fr 05_nuclear 1 240 2030 0.0 0.0 0.0 +fr 06_coal 1 240 2030 0.0 0.0 0.0 +fr 07_gas 1 240 2030 0.0 0.0 0.0 +fr 08_non-res 1 240 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 240 2030 0.0 0.0 0.0 +fr 01_solar 1 241 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 241 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 241 2030 2000.0 1.0 0.0 +fr 04_res 1 241 2030 1200.0 1.0 0.0 +fr 05_nuclear 1 241 2030 0.0 0.0 0.0 +fr 06_coal 1 241 2030 0.0 0.0 0.0 +fr 07_gas 1 241 2030 0.0 0.0 0.0 +fr 08_non-res 1 241 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 241 2030 0.0 0.0 0.0 +fr 01_solar 1 242 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 242 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 242 2030 2000.0 1.0 0.0 +fr 04_res 1 242 2030 1300.0 1.0 0.0 +fr 05_nuclear 1 242 2030 0.0 0.0 0.0 +fr 06_coal 1 242 2030 0.0 0.0 0.0 +fr 07_gas 1 242 2030 0.0 0.0 0.0 +fr 08_non-res 1 242 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 242 2030 0.0 0.0 0.0 +fr 01_solar 1 243 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 243 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 243 2030 2000.0 1.0 0.0 +fr 04_res 1 243 2030 1400.0 1.0 0.0 +fr 05_nuclear 1 243 2030 0.0 0.0 0.0 +fr 06_coal 1 243 2030 0.0 0.0 0.0 +fr 07_gas 1 243 2030 0.0 0.0 0.0 +fr 08_non-res 1 243 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 243 2030 0.0 0.0 0.0 +fr 01_solar 1 244 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 244 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 244 2030 2000.0 1.0 0.0 +fr 04_res 1 244 2030 1500.0 1.0 0.0 +fr 05_nuclear 1 244 2030 0.0 0.0 0.0 +fr 06_coal 1 244 2030 0.0 0.0 0.0 +fr 07_gas 1 244 2030 0.0 0.0 0.0 +fr 08_non-res 1 244 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 244 2030 0.0 0.0 0.0 +fr 01_solar 1 245 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 245 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 245 2030 2000.0 1.0 0.0 +fr 04_res 1 245 2030 1600.0 1.0 0.0 +fr 05_nuclear 1 245 2030 0.0 0.0 0.0 +fr 06_coal 1 245 2030 0.0 0.0 0.0 +fr 07_gas 1 245 2030 0.0 0.0 0.0 +fr 08_non-res 1 245 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 245 2030 0.0 0.0 0.0 +fr 01_solar 1 246 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 246 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 246 2030 2000.0 1.0 0.0 +fr 04_res 1 246 2030 1700.0 1.0 0.0 +fr 05_nuclear 1 246 2030 0.0 0.0 0.0 +fr 06_coal 1 246 2030 0.0 0.0 0.0 +fr 07_gas 1 246 2030 0.0 0.0 0.0 +fr 08_non-res 1 246 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 246 2030 0.0 0.0 0.0 +fr 01_solar 1 247 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 247 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 247 2030 2000.0 1.0 0.0 +fr 04_res 1 247 2030 1800.0 1.0 0.0 +fr 05_nuclear 1 247 2030 0.0 0.0 0.0 +fr 06_coal 1 247 2030 0.0 0.0 0.0 +fr 07_gas 1 247 2030 0.0 0.0 0.0 +fr 08_non-res 1 247 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 247 2030 0.0 0.0 0.0 +fr 01_solar 1 248 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 248 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 248 2030 2000.0 1.0 0.0 +fr 04_res 1 248 2030 1900.0 1.0 0.0 +fr 05_nuclear 1 248 2030 0.0 0.0 0.0 +fr 06_coal 1 248 2030 0.0 0.0 0.0 +fr 07_gas 1 248 2030 0.0 0.0 0.0 +fr 08_non-res 1 248 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 248 2030 0.0 0.0 0.0 +fr 01_solar 1 249 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 249 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 249 2030 2000.0 1.0 0.0 +fr 04_res 1 249 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 249 2030 0.0 0.0 0.0 +fr 06_coal 1 249 2030 0.0 0.0 0.0 +fr 07_gas 1 249 2030 0.0 0.0 0.0 +fr 08_non-res 1 249 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 249 2030 0.0 0.0 0.0 +fr 01_solar 1 250 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 250 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 250 2030 2000.0 1.0 0.0 +fr 04_res 1 250 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 250 2030 100.0 1.0 0.0 +fr 06_coal 1 250 2030 0.0 0.0 0.0 +fr 07_gas 1 250 2030 0.0 0.0 0.0 +fr 08_non-res 1 250 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 250 2030 0.0 0.0 0.0 +fr 01_solar 1 251 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 251 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 251 2030 2000.0 1.0 0.0 +fr 04_res 1 251 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 251 2030 200.0 1.0 0.0 +fr 06_coal 1 251 2030 0.0 0.0 0.0 +fr 07_gas 1 251 2030 0.0 0.0 0.0 +fr 08_non-res 1 251 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 251 2030 0.0 0.0 0.0 +fr 01_solar 1 252 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 252 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 252 2030 2000.0 1.0 0.0 +fr 04_res 1 252 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 252 2030 300.0 1.0 0.0 +fr 06_coal 1 252 2030 0.0 0.0 0.0 +fr 07_gas 1 252 2030 0.0 0.0 0.0 +fr 08_non-res 1 252 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 252 2030 0.0 0.0 0.0 +fr 01_solar 1 253 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 253 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 253 2030 2000.0 1.0 0.0 +fr 04_res 1 253 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 253 2030 400.0 1.0 0.0 +fr 06_coal 1 253 2030 0.0 0.0 0.0 +fr 07_gas 1 253 2030 0.0 0.0 0.0 +fr 08_non-res 1 253 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 253 2030 0.0 0.0 0.0 +fr 01_solar 1 254 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 254 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 254 2030 2000.0 1.0 0.0 +fr 04_res 1 254 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 254 2030 500.0 1.0 0.0 +fr 06_coal 1 254 2030 0.0 0.0 0.0 +fr 07_gas 1 254 2030 0.0 0.0 0.0 +fr 08_non-res 1 254 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 254 2030 0.0 0.0 0.0 +fr 01_solar 1 255 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 255 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 255 2030 2000.0 1.0 0.0 +fr 04_res 1 255 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 255 2030 600.0 1.0 0.0 +fr 06_coal 1 255 2030 0.0 0.0 0.0 +fr 07_gas 1 255 2030 0.0 0.0 0.0 +fr 08_non-res 1 255 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 255 2030 0.0 0.0 0.0 +fr 01_solar 1 256 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 256 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 256 2030 2000.0 1.0 0.0 +fr 04_res 1 256 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 256 2030 700.0 1.0 0.0 +fr 06_coal 1 256 2030 0.0 0.0 0.0 +fr 07_gas 1 256 2030 0.0 0.0 0.0 +fr 08_non-res 1 256 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 256 2030 0.0 0.0 0.0 +fr 01_solar 1 257 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 257 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 257 2030 2000.0 1.0 0.0 +fr 04_res 1 257 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 257 2030 800.0 1.0 0.0 +fr 06_coal 1 257 2030 0.0 0.0 0.0 +fr 07_gas 1 257 2030 0.0 0.0 0.0 +fr 08_non-res 1 257 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 257 2030 0.0 0.0 0.0 +fr 01_solar 1 258 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 258 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 258 2030 2000.0 1.0 0.0 +fr 04_res 1 258 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 258 2030 900.0 1.0 0.0 +fr 06_coal 1 258 2030 0.0 0.0 0.0 +fr 07_gas 1 258 2030 0.0 0.0 0.0 +fr 08_non-res 1 258 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 258 2030 0.0 0.0 0.0 +fr 01_solar 1 259 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 259 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 259 2030 2000.0 1.0 0.0 +fr 04_res 1 259 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 259 2030 1000.0 1.0 0.0 +fr 06_coal 1 259 2030 0.0 0.0 0.0 +fr 07_gas 1 259 2030 0.0 0.0 0.0 +fr 08_non-res 1 259 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 259 2030 0.0 0.0 0.0 +fr 01_solar 1 260 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 260 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 260 2030 2000.0 1.0 0.0 +fr 04_res 1 260 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 260 2030 1100.0 1.0 0.0 +fr 06_coal 1 260 2030 0.0 0.0 0.0 +fr 07_gas 1 260 2030 0.0 0.0 0.0 +fr 08_non-res 1 260 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 260 2030 0.0 0.0 0.0 +fr 01_solar 1 261 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 261 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 261 2030 2000.0 1.0 0.0 +fr 04_res 1 261 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 261 2030 1200.0 1.0 0.0 +fr 06_coal 1 261 2030 0.0 0.0 0.0 +fr 07_gas 1 261 2030 0.0 0.0 0.0 +fr 08_non-res 1 261 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 261 2030 0.0 0.0 0.0 +fr 01_solar 1 262 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 262 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 262 2030 2000.0 1.0 0.0 +fr 04_res 1 262 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 262 2030 1300.0 1.0 0.0 +fr 06_coal 1 262 2030 0.0 0.0 0.0 +fr 07_gas 1 262 2030 0.0 0.0 0.0 +fr 08_non-res 1 262 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 262 2030 0.0 0.0 0.0 +fr 01_solar 1 263 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 263 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 263 2030 2000.0 1.0 0.0 +fr 04_res 1 263 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 263 2030 1400.0 1.0 0.0 +fr 06_coal 1 263 2030 0.0 0.0 0.0 +fr 07_gas 1 263 2030 0.0 0.0 0.0 +fr 08_non-res 1 263 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 263 2030 0.0 0.0 0.0 +fr 01_solar 1 264 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 264 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 264 2030 2000.0 1.0 0.0 +fr 04_res 1 264 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 264 2030 1500.0 1.0 0.0 +fr 06_coal 1 264 2030 0.0 0.0 0.0 +fr 07_gas 1 264 2030 0.0 0.0 0.0 +fr 08_non-res 1 264 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 264 2030 0.0 0.0 0.0 +fr 01_solar 1 265 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 265 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 265 2030 2000.0 1.0 0.0 +fr 04_res 1 265 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 265 2030 1600.0 1.0 0.0 +fr 06_coal 1 265 2030 0.0 0.0 0.0 +fr 07_gas 1 265 2030 0.0 0.0 0.0 +fr 08_non-res 1 265 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 265 2030 0.0 0.0 0.0 +fr 01_solar 1 266 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 266 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 266 2030 2000.0 1.0 0.0 +fr 04_res 1 266 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 266 2030 1700.0 1.0 0.0 +fr 06_coal 1 266 2030 0.0 0.0 0.0 +fr 07_gas 1 266 2030 0.0 0.0 0.0 +fr 08_non-res 1 266 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 266 2030 0.0 0.0 0.0 +fr 01_solar 1 267 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 267 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 267 2030 2000.0 1.0 0.0 +fr 04_res 1 267 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 267 2030 1800.0 1.0 0.0 +fr 06_coal 1 267 2030 0.0 0.0 0.0 +fr 07_gas 1 267 2030 0.0 0.0 0.0 +fr 08_non-res 1 267 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 267 2030 0.0 0.0 0.0 +fr 01_solar 1 268 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 268 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 268 2030 2000.0 1.0 0.0 +fr 04_res 1 268 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 268 2030 1900.0 1.0 0.0 +fr 06_coal 1 268 2030 0.0 0.0 0.0 +fr 07_gas 1 268 2030 0.0 0.0 0.0 +fr 08_non-res 1 268 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 268 2030 0.0 0.0 0.0 +fr 01_solar 1 269 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 269 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 269 2030 2000.0 1.0 0.0 +fr 04_res 1 269 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 269 2030 2000.0 1.0 0.0 +fr 06_coal 1 269 2030 0.0 0.0 0.0 +fr 07_gas 1 269 2030 0.0 0.0 0.0 +fr 08_non-res 1 269 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 269 2030 0.0 0.0 0.0 +fr 01_solar 1 270 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 270 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 270 2030 2000.0 1.0 0.0 +fr 04_res 1 270 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 270 2030 2000.0 1.0 0.0 +fr 06_coal 1 270 2030 100.0 1.0 0.0 +fr 07_gas 1 270 2030 0.0 0.0 0.0 +fr 08_non-res 1 270 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 270 2030 0.0 0.0 0.0 +fr 01_solar 1 271 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 271 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 271 2030 2000.0 1.0 0.0 +fr 04_res 1 271 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 271 2030 2000.0 1.0 0.0 +fr 06_coal 1 271 2030 200.0 1.0 0.0 +fr 07_gas 1 271 2030 0.0 0.0 0.0 +fr 08_non-res 1 271 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 271 2030 0.0 0.0 0.0 +fr 01_solar 1 272 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 272 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 272 2030 2000.0 1.0 0.0 +fr 04_res 1 272 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 272 2030 2000.0 1.0 0.0 +fr 06_coal 1 272 2030 300.0 1.0 0.0 +fr 07_gas 1 272 2030 0.0 0.0 0.0 +fr 08_non-res 1 272 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 272 2030 0.0 0.0 0.0 +fr 01_solar 1 273 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 273 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 273 2030 2000.0 1.0 0.0 +fr 04_res 1 273 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 273 2030 2000.0 1.0 0.0 +fr 06_coal 1 273 2030 400.0 1.0 0.0 +fr 07_gas 1 273 2030 0.0 0.0 0.0 +fr 08_non-res 1 273 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 273 2030 0.0 0.0 0.0 +fr 01_solar 1 274 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 274 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 274 2030 2000.0 1.0 0.0 +fr 04_res 1 274 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 274 2030 2000.0 1.0 0.0 +fr 06_coal 1 274 2030 500.0 1.0 0.0 +fr 07_gas 1 274 2030 0.0 0.0 0.0 +fr 08_non-res 1 274 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 274 2030 0.0 0.0 0.0 +fr 01_solar 1 275 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 275 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 275 2030 2000.0 1.0 0.0 +fr 04_res 1 275 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 275 2030 2000.0 1.0 0.0 +fr 06_coal 1 275 2030 600.0 1.0 0.0 +fr 07_gas 1 275 2030 0.0 0.0 0.0 +fr 08_non-res 1 275 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 275 2030 0.0 0.0 0.0 +fr 01_solar 1 276 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 276 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 276 2030 2000.0 1.0 0.0 +fr 04_res 1 276 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 276 2030 2000.0 1.0 0.0 +fr 06_coal 1 276 2030 700.0 1.0 0.0 +fr 07_gas 1 276 2030 0.0 0.0 0.0 +fr 08_non-res 1 276 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 276 2030 0.0 0.0 0.0 +fr 01_solar 1 277 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 277 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 277 2030 2000.0 1.0 0.0 +fr 04_res 1 277 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 277 2030 2000.0 1.0 0.0 +fr 06_coal 1 277 2030 800.0 1.0 0.0 +fr 07_gas 1 277 2030 0.0 0.0 0.0 +fr 08_non-res 1 277 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 277 2030 0.0 0.0 0.0 +fr 01_solar 1 278 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 278 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 278 2030 2000.0 1.0 0.0 +fr 04_res 1 278 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 278 2030 2000.0 1.0 0.0 +fr 06_coal 1 278 2030 900.0 1.0 0.0 +fr 07_gas 1 278 2030 0.0 0.0 0.0 +fr 08_non-res 1 278 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 278 2030 0.0 0.0 0.0 +fr 01_solar 1 279 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 279 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 279 2030 2000.0 1.0 0.0 +fr 04_res 1 279 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 279 2030 2000.0 1.0 0.0 +fr 06_coal 1 279 2030 1000.0 1.0 0.0 +fr 07_gas 1 279 2030 0.0 0.0 0.0 +fr 08_non-res 1 279 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 279 2030 0.0 0.0 0.0 +fr 01_solar 1 280 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 280 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 280 2030 2000.0 1.0 0.0 +fr 04_res 1 280 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 280 2030 2000.0 1.0 0.0 +fr 06_coal 1 280 2030 1100.0 1.0 0.0 +fr 07_gas 1 280 2030 0.0 0.0 0.0 +fr 08_non-res 1 280 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 280 2030 0.0 0.0 0.0 +fr 01_solar 1 281 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 281 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 281 2030 2000.0 1.0 0.0 +fr 04_res 1 281 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 281 2030 2000.0 1.0 0.0 +fr 06_coal 1 281 2030 1200.0 1.0 0.0 +fr 07_gas 1 281 2030 0.0 0.0 0.0 +fr 08_non-res 1 281 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 281 2030 0.0 0.0 0.0 +fr 01_solar 1 282 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 282 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 282 2030 2000.0 1.0 0.0 +fr 04_res 1 282 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 282 2030 2000.0 1.0 0.0 +fr 06_coal 1 282 2030 1300.0 1.0 0.0 +fr 07_gas 1 282 2030 0.0 0.0 0.0 +fr 08_non-res 1 282 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 282 2030 0.0 0.0 0.0 +fr 01_solar 1 283 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 283 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 283 2030 2000.0 1.0 0.0 +fr 04_res 1 283 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 283 2030 2000.0 1.0 0.0 +fr 06_coal 1 283 2030 1400.0 1.0 0.0 +fr 07_gas 1 283 2030 0.0 0.0 0.0 +fr 08_non-res 1 283 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 283 2030 0.0 0.0 0.0 +fr 01_solar 1 284 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 284 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 284 2030 2000.0 1.0 0.0 +fr 04_res 1 284 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 284 2030 2000.0 1.0 0.0 +fr 06_coal 1 284 2030 1500.0 1.0 0.0 +fr 07_gas 1 284 2030 0.0 0.0 0.0 +fr 08_non-res 1 284 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 284 2030 0.0 0.0 0.0 +fr 01_solar 1 285 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 285 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 285 2030 2000.0 1.0 0.0 +fr 04_res 1 285 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 285 2030 2000.0 1.0 0.0 +fr 06_coal 1 285 2030 1600.0 1.0 0.0 +fr 07_gas 1 285 2030 0.0 0.0 0.0 +fr 08_non-res 1 285 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 285 2030 0.0 0.0 0.0 +fr 01_solar 1 286 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 286 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 286 2030 2000.0 1.0 0.0 +fr 04_res 1 286 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 286 2030 2000.0 1.0 0.0 +fr 06_coal 1 286 2030 1700.0 1.0 0.0 +fr 07_gas 1 286 2030 0.0 0.0 0.0 +fr 08_non-res 1 286 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 286 2030 0.0 0.0 0.0 +fr 01_solar 1 287 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 287 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 287 2030 2000.0 1.0 0.0 +fr 04_res 1 287 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 287 2030 2000.0 1.0 0.0 +fr 06_coal 1 287 2030 1800.0 1.0 0.0 +fr 07_gas 1 287 2030 0.0 0.0 0.0 +fr 08_non-res 1 287 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 287 2030 0.0 0.0 0.0 +fr 01_solar 1 288 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 288 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 288 2030 2000.0 1.0 0.0 +fr 04_res 1 288 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 288 2030 2000.0 1.0 0.0 +fr 06_coal 1 288 2030 1900.0 1.0 0.0 +fr 07_gas 1 288 2030 0.0 0.0 0.0 +fr 08_non-res 1 288 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 288 2030 0.0 0.0 0.0 +fr 01_solar 1 289 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 289 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 289 2030 2000.0 1.0 0.0 +fr 04_res 1 289 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 289 2030 2000.0 1.0 0.0 +fr 06_coal 1 289 2030 2000.0 1.0 0.0 +fr 07_gas 1 289 2030 0.0 0.0 0.0 +fr 08_non-res 1 289 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 289 2030 0.0 0.0 0.0 +fr 01_solar 1 290 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 290 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 290 2030 2000.0 1.0 0.0 +fr 04_res 1 290 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 290 2030 2000.0 1.0 0.0 +fr 06_coal 1 290 2030 2000.0 1.0 0.0 +fr 07_gas 1 290 2030 100.0 1.0 0.0 +fr 08_non-res 1 290 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 290 2030 0.0 0.0 0.0 +fr 01_solar 1 291 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 291 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 291 2030 2000.0 1.0 0.0 +fr 04_res 1 291 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 291 2030 2000.0 1.0 0.0 +fr 06_coal 1 291 2030 2000.0 1.0 0.0 +fr 07_gas 1 291 2030 200.0 1.0 0.0 +fr 08_non-res 1 291 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 291 2030 0.0 0.0 0.0 +fr 01_solar 1 292 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 292 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 292 2030 2000.0 1.0 0.0 +fr 04_res 1 292 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 292 2030 2000.0 1.0 0.0 +fr 06_coal 1 292 2030 2000.0 1.0 0.0 +fr 07_gas 1 292 2030 300.0 1.0 0.0 +fr 08_non-res 1 292 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 292 2030 0.0 0.0 0.0 +fr 01_solar 1 293 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 293 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 293 2030 2000.0 1.0 0.0 +fr 04_res 1 293 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 293 2030 2000.0 1.0 0.0 +fr 06_coal 1 293 2030 2000.0 1.0 0.0 +fr 07_gas 1 293 2030 400.0 1.0 0.0 +fr 08_non-res 1 293 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 293 2030 0.0 0.0 0.0 +fr 01_solar 1 294 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 294 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 294 2030 2000.0 1.0 0.0 +fr 04_res 1 294 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 294 2030 2000.0 1.0 0.0 +fr 06_coal 1 294 2030 2000.0 1.0 0.0 +fr 07_gas 1 294 2030 500.0 1.0 0.0 +fr 08_non-res 1 294 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 294 2030 0.0 0.0 0.0 +fr 01_solar 1 295 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 295 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 295 2030 2000.0 1.0 0.0 +fr 04_res 1 295 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 295 2030 2000.0 1.0 0.0 +fr 06_coal 1 295 2030 2000.0 1.0 0.0 +fr 07_gas 1 295 2030 600.0 1.0 0.0 +fr 08_non-res 1 295 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 295 2030 0.0 0.0 0.0 +fr 01_solar 1 296 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 296 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 296 2030 2000.0 1.0 0.0 +fr 04_res 1 296 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 296 2030 2000.0 1.0 0.0 +fr 06_coal 1 296 2030 2000.0 1.0 0.0 +fr 07_gas 1 296 2030 700.0 1.0 0.0 +fr 08_non-res 1 296 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 296 2030 0.0 0.0 0.0 +fr 01_solar 1 297 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 297 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 297 2030 2000.0 1.0 0.0 +fr 04_res 1 297 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 297 2030 2000.0 1.0 0.0 +fr 06_coal 1 297 2030 2000.0 1.0 0.0 +fr 07_gas 1 297 2030 800.0 1.0 0.0 +fr 08_non-res 1 297 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 297 2030 0.0 0.0 0.0 +fr 01_solar 1 298 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 298 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 298 2030 2000.0 1.0 0.0 +fr 04_res 1 298 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 298 2030 2000.0 1.0 0.0 +fr 06_coal 1 298 2030 2000.0 1.0 0.0 +fr 07_gas 1 298 2030 900.0 1.0 0.0 +fr 08_non-res 1 298 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 298 2030 0.0 0.0 0.0 +fr 01_solar 1 299 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 299 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 299 2030 2000.0 1.0 0.0 +fr 04_res 1 299 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 299 2030 2000.0 1.0 0.0 +fr 06_coal 1 299 2030 2000.0 1.0 0.0 +fr 07_gas 1 299 2030 1000.0 1.0 0.0 +fr 08_non-res 1 299 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 299 2030 0.0 0.0 0.0 +fr 01_solar 1 300 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 300 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 300 2030 2000.0 1.0 0.0 +fr 04_res 1 300 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 300 2030 2000.0 1.0 0.0 +fr 06_coal 1 300 2030 2000.0 1.0 0.0 +fr 07_gas 1 300 2030 1100.0 1.0 0.0 +fr 08_non-res 1 300 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 300 2030 0.0 0.0 0.0 +fr 01_solar 1 301 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 301 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 301 2030 2000.0 1.0 0.0 +fr 04_res 1 301 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 301 2030 2000.0 1.0 0.0 +fr 06_coal 1 301 2030 2000.0 1.0 0.0 +fr 07_gas 1 301 2030 1200.0 1.0 0.0 +fr 08_non-res 1 301 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 301 2030 0.0 0.0 0.0 +fr 01_solar 1 302 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 302 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 302 2030 2000.0 1.0 0.0 +fr 04_res 1 302 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 302 2030 2000.0 1.0 0.0 +fr 06_coal 1 302 2030 2000.0 1.0 0.0 +fr 07_gas 1 302 2030 1300.0 1.0 0.0 +fr 08_non-res 1 302 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 302 2030 0.0 0.0 0.0 +fr 01_solar 1 303 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 303 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 303 2030 2000.0 1.0 0.0 +fr 04_res 1 303 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 303 2030 2000.0 1.0 0.0 +fr 06_coal 1 303 2030 2000.0 1.0 0.0 +fr 07_gas 1 303 2030 1400.0 1.0 0.0 +fr 08_non-res 1 303 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 303 2030 0.0 0.0 0.0 +fr 01_solar 1 304 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 304 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 304 2030 2000.0 1.0 0.0 +fr 04_res 1 304 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 304 2030 2000.0 1.0 0.0 +fr 06_coal 1 304 2030 2000.0 1.0 0.0 +fr 07_gas 1 304 2030 1500.0 1.0 0.0 +fr 08_non-res 1 304 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 304 2030 0.0 0.0 0.0 +fr 01_solar 1 305 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 305 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 305 2030 2000.0 1.0 0.0 +fr 04_res 1 305 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 305 2030 2000.0 1.0 0.0 +fr 06_coal 1 305 2030 2000.0 1.0 0.0 +fr 07_gas 1 305 2030 1600.0 1.0 0.0 +fr 08_non-res 1 305 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 305 2030 0.0 0.0 0.0 +fr 01_solar 1 306 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 306 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 306 2030 2000.0 1.0 0.0 +fr 04_res 1 306 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 306 2030 2000.0 1.0 0.0 +fr 06_coal 1 306 2030 2000.0 1.0 0.0 +fr 07_gas 1 306 2030 1700.0 1.0 0.0 +fr 08_non-res 1 306 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 306 2030 0.0 0.0 0.0 +fr 01_solar 1 307 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 307 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 307 2030 2000.0 1.0 0.0 +fr 04_res 1 307 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 307 2030 2000.0 1.0 0.0 +fr 06_coal 1 307 2030 2000.0 1.0 0.0 +fr 07_gas 1 307 2030 1800.0 1.0 0.0 +fr 08_non-res 1 307 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 307 2030 0.0 0.0 0.0 +fr 01_solar 1 308 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 308 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 308 2030 2000.0 1.0 0.0 +fr 04_res 1 308 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 308 2030 2000.0 1.0 0.0 +fr 06_coal 1 308 2030 2000.0 1.0 0.0 +fr 07_gas 1 308 2030 1900.0 1.0 0.0 +fr 08_non-res 1 308 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 308 2030 0.0 0.0 0.0 +fr 01_solar 1 309 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 309 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 309 2030 2000.0 1.0 0.0 +fr 04_res 1 309 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 309 2030 2000.0 1.0 0.0 +fr 06_coal 1 309 2030 2000.0 1.0 0.0 +fr 07_gas 1 309 2030 2000.0 1.0 0.0 +fr 08_non-res 1 309 2030 0.0 0.0 0.0 +fr 09_hydro_pump 1 309 2030 0.0 0.0 0.0 +fr 01_solar 1 310 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 310 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 310 2030 2000.0 1.0 0.0 +fr 04_res 1 310 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 310 2030 2000.0 1.0 0.0 +fr 06_coal 1 310 2030 2000.0 1.0 0.0 +fr 07_gas 1 310 2030 2000.0 1.0 0.0 +fr 08_non-res 1 310 2030 100.0 1.0 0.0 +fr 09_hydro_pump 1 310 2030 0.0 0.0 0.0 +fr 01_solar 1 311 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 311 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 311 2030 2000.0 1.0 0.0 +fr 04_res 1 311 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 311 2030 2000.0 1.0 0.0 +fr 06_coal 1 311 2030 2000.0 1.0 0.0 +fr 07_gas 1 311 2030 2000.0 1.0 0.0 +fr 08_non-res 1 311 2030 200.0 1.0 0.0 +fr 09_hydro_pump 1 311 2030 0.0 0.0 0.0 +fr 01_solar 1 312 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 312 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 312 2030 2000.0 1.0 0.0 +fr 04_res 1 312 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 312 2030 2000.0 1.0 0.0 +fr 06_coal 1 312 2030 2000.0 1.0 0.0 +fr 07_gas 1 312 2030 2000.0 1.0 0.0 +fr 08_non-res 1 312 2030 300.0 1.0 0.0 +fr 09_hydro_pump 1 312 2030 0.0 0.0 0.0 +fr 01_solar 1 313 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 313 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 313 2030 2000.0 1.0 0.0 +fr 04_res 1 313 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 313 2030 2000.0 1.0 0.0 +fr 06_coal 1 313 2030 2000.0 1.0 0.0 +fr 07_gas 1 313 2030 2000.0 1.0 0.0 +fr 08_non-res 1 313 2030 400.0 1.0 0.0 +fr 09_hydro_pump 1 313 2030 0.0 0.0 0.0 +fr 01_solar 1 314 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 314 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 314 2030 2000.0 1.0 0.0 +fr 04_res 1 314 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 314 2030 2000.0 1.0 0.0 +fr 06_coal 1 314 2030 2000.0 1.0 0.0 +fr 07_gas 1 314 2030 2000.0 1.0 0.0 +fr 08_non-res 1 314 2030 500.0 1.0 0.0 +fr 09_hydro_pump 1 314 2030 0.0 0.0 0.0 +fr 01_solar 1 315 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 315 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 315 2030 2000.0 1.0 0.0 +fr 04_res 1 315 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 315 2030 2000.0 1.0 0.0 +fr 06_coal 1 315 2030 2000.0 1.0 0.0 +fr 07_gas 1 315 2030 2000.0 1.0 0.0 +fr 08_non-res 1 315 2030 600.0 1.0 0.0 +fr 09_hydro_pump 1 315 2030 0.0 0.0 0.0 +fr 01_solar 1 316 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 316 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 316 2030 2000.0 1.0 0.0 +fr 04_res 1 316 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 316 2030 2000.0 1.0 0.0 +fr 06_coal 1 316 2030 2000.0 1.0 0.0 +fr 07_gas 1 316 2030 2000.0 1.0 0.0 +fr 08_non-res 1 316 2030 700.0 1.0 0.0 +fr 09_hydro_pump 1 316 2030 0.0 0.0 0.0 +fr 01_solar 1 317 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 317 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 317 2030 2000.0 1.0 0.0 +fr 04_res 1 317 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 317 2030 2000.0 1.0 0.0 +fr 06_coal 1 317 2030 2000.0 1.0 0.0 +fr 07_gas 1 317 2030 2000.0 1.0 0.0 +fr 08_non-res 1 317 2030 800.0 1.0 0.0 +fr 09_hydro_pump 1 317 2030 0.0 0.0 0.0 +fr 01_solar 1 318 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 318 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 318 2030 2000.0 1.0 0.0 +fr 04_res 1 318 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 318 2030 2000.0 1.0 0.0 +fr 06_coal 1 318 2030 2000.0 1.0 0.0 +fr 07_gas 1 318 2030 2000.0 1.0 0.0 +fr 08_non-res 1 318 2030 900.0 1.0 0.0 +fr 09_hydro_pump 1 318 2030 0.0 0.0 0.0 +fr 01_solar 1 319 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 319 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 319 2030 2000.0 1.0 0.0 +fr 04_res 1 319 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 319 2030 2000.0 1.0 0.0 +fr 06_coal 1 319 2030 2000.0 1.0 0.0 +fr 07_gas 1 319 2030 2000.0 1.0 0.0 +fr 08_non-res 1 319 2030 1000.0 1.0 0.0 +fr 09_hydro_pump 1 319 2030 0.0 0.0 0.0 +fr 01_solar 1 320 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 320 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 320 2030 2000.0 1.0 0.0 +fr 04_res 1 320 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 320 2030 2000.0 1.0 0.0 +fr 06_coal 1 320 2030 2000.0 1.0 0.0 +fr 07_gas 1 320 2030 2000.0 1.0 0.0 +fr 08_non-res 1 320 2030 1100.0 1.0 0.0 +fr 09_hydro_pump 1 320 2030 0.0 0.0 0.0 +fr 01_solar 1 321 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 321 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 321 2030 2000.0 1.0 0.0 +fr 04_res 1 321 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 321 2030 2000.0 1.0 0.0 +fr 06_coal 1 321 2030 2000.0 1.0 0.0 +fr 07_gas 1 321 2030 2000.0 1.0 0.0 +fr 08_non-res 1 321 2030 1200.0 1.0 0.0 +fr 09_hydro_pump 1 321 2030 0.0 0.0 0.0 +fr 01_solar 1 322 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 322 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 322 2030 2000.0 1.0 0.0 +fr 04_res 1 322 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 322 2030 2000.0 1.0 0.0 +fr 06_coal 1 322 2030 2000.0 1.0 0.0 +fr 07_gas 1 322 2030 2000.0 1.0 0.0 +fr 08_non-res 1 322 2030 1300.0 1.0 0.0 +fr 09_hydro_pump 1 322 2030 0.0 0.0 0.0 +fr 01_solar 1 323 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 323 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 323 2030 2000.0 1.0 0.0 +fr 04_res 1 323 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 323 2030 2000.0 1.0 0.0 +fr 06_coal 1 323 2030 2000.0 1.0 0.0 +fr 07_gas 1 323 2030 2000.0 1.0 0.0 +fr 08_non-res 1 323 2030 1400.0 1.0 0.0 +fr 09_hydro_pump 1 323 2030 0.0 0.0 0.0 +fr 01_solar 1 324 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 324 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 324 2030 2000.0 1.0 0.0 +fr 04_res 1 324 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 324 2030 2000.0 1.0 0.0 +fr 06_coal 1 324 2030 2000.0 1.0 0.0 +fr 07_gas 1 324 2030 2000.0 1.0 0.0 +fr 08_non-res 1 324 2030 1500.0 1.0 0.0 +fr 09_hydro_pump 1 324 2030 0.0 0.0 0.0 +fr 01_solar 1 325 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 325 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 325 2030 2000.0 1.0 0.0 +fr 04_res 1 325 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 325 2030 2000.0 1.0 0.0 +fr 06_coal 1 325 2030 2000.0 1.0 0.0 +fr 07_gas 1 325 2030 2000.0 1.0 0.0 +fr 08_non-res 1 325 2030 1600.0 1.0 0.0 +fr 09_hydro_pump 1 325 2030 0.0 0.0 0.0 +fr 01_solar 1 326 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 326 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 326 2030 2000.0 1.0 0.0 +fr 04_res 1 326 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 326 2030 2000.0 1.0 0.0 +fr 06_coal 1 326 2030 2000.0 1.0 0.0 +fr 07_gas 1 326 2030 2000.0 1.0 0.0 +fr 08_non-res 1 326 2030 1700.0 1.0 0.0 +fr 09_hydro_pump 1 326 2030 0.0 0.0 0.0 +fr 01_solar 1 327 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 327 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 327 2030 2000.0 1.0 0.0 +fr 04_res 1 327 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 327 2030 2000.0 1.0 0.0 +fr 06_coal 1 327 2030 2000.0 1.0 0.0 +fr 07_gas 1 327 2030 2000.0 1.0 0.0 +fr 08_non-res 1 327 2030 1800.0 1.0 0.0 +fr 09_hydro_pump 1 327 2030 0.0 0.0 0.0 +fr 01_solar 1 328 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 328 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 328 2030 2000.0 1.0 0.0 +fr 04_res 1 328 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 328 2030 2000.0 1.0 0.0 +fr 06_coal 1 328 2030 2000.0 1.0 0.0 +fr 07_gas 1 328 2030 2000.0 1.0 0.0 +fr 08_non-res 1 328 2030 1900.0 1.0 0.0 +fr 09_hydro_pump 1 328 2030 0.0 0.0 0.0 +fr 01_solar 1 329 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 329 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 329 2030 2000.0 1.0 0.0 +fr 04_res 1 329 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 329 2030 2000.0 1.0 0.0 +fr 06_coal 1 329 2030 2000.0 1.0 0.0 +fr 07_gas 1 329 2030 2000.0 1.0 0.0 +fr 08_non-res 1 329 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 329 2030 0.0 0.0 0.0 +fr 01_solar 1 330 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 330 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 330 2030 2000.0 1.0 0.0 +fr 04_res 1 330 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 330 2030 2000.0 1.0 0.0 +fr 06_coal 1 330 2030 2000.0 1.0 0.0 +fr 07_gas 1 330 2030 2000.0 1.0 0.0 +fr 08_non-res 1 330 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 330 2030 100.0 1.0 0.0 +fr 01_solar 1 331 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 331 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 331 2030 2000.0 1.0 0.0 +fr 04_res 1 331 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 331 2030 2000.0 1.0 0.0 +fr 06_coal 1 331 2030 2000.0 1.0 0.0 +fr 07_gas 1 331 2030 2000.0 1.0 0.0 +fr 08_non-res 1 331 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 331 2030 200.0 1.0 0.0 +fr 01_solar 1 332 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 332 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 332 2030 2000.0 1.0 0.0 +fr 04_res 1 332 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 332 2030 2000.0 1.0 0.0 +fr 06_coal 1 332 2030 2000.0 1.0 0.0 +fr 07_gas 1 332 2030 2000.0 1.0 0.0 +fr 08_non-res 1 332 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 332 2030 300.0 1.0 0.0 +fr 01_solar 1 333 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 333 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 333 2030 2000.0 1.0 0.0 +fr 04_res 1 333 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 333 2030 2000.0 1.0 0.0 +fr 06_coal 1 333 2030 2000.0 1.0 0.0 +fr 07_gas 1 333 2030 2000.0 1.0 0.0 +fr 08_non-res 1 333 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 333 2030 400.0 1.0 0.0 +fr 01_solar 1 334 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 334 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 334 2030 2000.0 1.0 0.0 +fr 04_res 1 334 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 334 2030 2000.0 1.0 0.0 +fr 06_coal 1 334 2030 2000.0 1.0 0.0 +fr 07_gas 1 334 2030 2000.0 1.0 0.0 +fr 08_non-res 1 334 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 334 2030 500.0 1.0 0.0 +fr 01_solar 1 335 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 335 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 335 2030 2000.0 1.0 0.0 +fr 04_res 1 335 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 335 2030 2000.0 1.0 0.0 +fr 06_coal 1 335 2030 2000.0 1.0 0.0 +fr 07_gas 1 335 2030 2000.0 1.0 0.0 +fr 08_non-res 1 335 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 335 2030 600.0 1.0 0.0 +fr 01_solar 1 336 2030 2000.0 1.0 0.0 +fr 02_wind_on 1 336 2030 2000.0 1.0 0.0 +fr 03_wind_off 1 336 2030 2000.0 1.0 0.0 +fr 04_res 1 336 2030 2000.0 1.0 0.0 +fr 05_nuclear 1 336 2030 2000.0 1.0 0.0 +fr 06_coal 1 336 2030 2000.0 1.0 0.0 +fr 07_gas 1 336 2030 2000.0 1.0 0.0 +fr 08_non-res 1 336 2030 2000.0 1.0 0.0 +fr 09_hydro_pump 1 336 2030 700.0 1.0 0.0 +it 01_solar 1 1 2030 0.0 0.0 0.0 +it 02_wind_on 1 1 2030 0.0 0.0 0.0 +it 03_wind_off 1 1 2030 0.0 0.0 0.0 +it 04_res 1 1 2030 0.0 0.0 0.0 +it 05_nuclear 1 1 2030 0.0 0.0 0.0 +it 06_coal 1 1 2030 0.0 0.0 0.0 +it 07_gas 1 1 2030 0.0 0.0 0.0 +it 08_non-res 1 1 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 1 2030 0.0 0.0 0.0 +it 01_solar 1 2 2030 100.0 1.0 0.0 +it 02_wind_on 1 2 2030 0.0 0.0 0.0 +it 03_wind_off 1 2 2030 0.0 0.0 0.0 +it 04_res 1 2 2030 0.0 0.0 0.0 +it 05_nuclear 1 2 2030 0.0 0.0 0.0 +it 06_coal 1 2 2030 0.0 0.0 0.0 +it 07_gas 1 2 2030 0.0 0.0 0.0 +it 08_non-res 1 2 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 2 2030 0.0 0.0 0.0 +it 01_solar 1 3 2030 200.0 1.0 0.0 +it 02_wind_on 1 3 2030 0.0 0.0 0.0 +it 03_wind_off 1 3 2030 0.0 0.0 0.0 +it 04_res 1 3 2030 0.0 0.0 0.0 +it 05_nuclear 1 3 2030 0.0 0.0 0.0 +it 06_coal 1 3 2030 0.0 0.0 0.0 +it 07_gas 1 3 2030 0.0 0.0 0.0 +it 08_non-res 1 3 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 3 2030 0.0 0.0 0.0 +it 01_solar 1 4 2030 300.0 1.0 0.0 +it 02_wind_on 1 4 2030 0.0 0.0 0.0 +it 03_wind_off 1 4 2030 0.0 0.0 0.0 +it 04_res 1 4 2030 0.0 0.0 0.0 +it 05_nuclear 1 4 2030 0.0 0.0 0.0 +it 06_coal 1 4 2030 0.0 0.0 0.0 +it 07_gas 1 4 2030 0.0 0.0 0.0 +it 08_non-res 1 4 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 4 2030 0.0 0.0 0.0 +it 01_solar 1 5 2030 400.0 1.0 0.0 +it 02_wind_on 1 5 2030 0.0 0.0 0.0 +it 03_wind_off 1 5 2030 0.0 0.0 0.0 +it 04_res 1 5 2030 0.0 0.0 0.0 +it 05_nuclear 1 5 2030 0.0 0.0 0.0 +it 06_coal 1 5 2030 0.0 0.0 0.0 +it 07_gas 1 5 2030 0.0 0.0 0.0 +it 08_non-res 1 5 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 5 2030 0.0 0.0 0.0 +it 01_solar 1 6 2030 500.0 1.0 0.0 +it 02_wind_on 1 6 2030 0.0 0.0 0.0 +it 03_wind_off 1 6 2030 0.0 0.0 0.0 +it 04_res 1 6 2030 0.0 0.0 0.0 +it 05_nuclear 1 6 2030 0.0 0.0 0.0 +it 06_coal 1 6 2030 0.0 0.0 0.0 +it 07_gas 1 6 2030 0.0 0.0 0.0 +it 08_non-res 1 6 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 6 2030 0.0 0.0 0.0 +it 01_solar 1 7 2030 600.0 1.0 0.0 +it 02_wind_on 1 7 2030 0.0 0.0 0.0 +it 03_wind_off 1 7 2030 0.0 0.0 0.0 +it 04_res 1 7 2030 0.0 0.0 0.0 +it 05_nuclear 1 7 2030 0.0 0.0 0.0 +it 06_coal 1 7 2030 0.0 0.0 0.0 +it 07_gas 1 7 2030 0.0 0.0 0.0 +it 08_non-res 1 7 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 7 2030 0.0 0.0 0.0 +it 01_solar 1 8 2030 700.0 1.0 0.0 +it 02_wind_on 1 8 2030 0.0 0.0 0.0 +it 03_wind_off 1 8 2030 0.0 0.0 0.0 +it 04_res 1 8 2030 0.0 0.0 0.0 +it 05_nuclear 1 8 2030 0.0 0.0 0.0 +it 06_coal 1 8 2030 0.0 0.0 0.0 +it 07_gas 1 8 2030 0.0 0.0 0.0 +it 08_non-res 1 8 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 8 2030 0.0 0.0 0.0 +it 01_solar 1 9 2030 800.0 1.0 0.0 +it 02_wind_on 1 9 2030 0.0 0.0 0.0 +it 03_wind_off 1 9 2030 0.0 0.0 0.0 +it 04_res 1 9 2030 0.0 0.0 0.0 +it 05_nuclear 1 9 2030 0.0 0.0 0.0 +it 06_coal 1 9 2030 0.0 0.0 0.0 +it 07_gas 1 9 2030 0.0 0.0 0.0 +it 08_non-res 1 9 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 9 2030 0.0 0.0 0.0 +it 01_solar 1 10 2030 900.0 1.0 0.0 +it 02_wind_on 1 10 2030 0.0 0.0 0.0 +it 03_wind_off 1 10 2030 0.0 0.0 0.0 +it 04_res 1 10 2030 0.0 0.0 0.0 +it 05_nuclear 1 10 2030 0.0 0.0 0.0 +it 06_coal 1 10 2030 0.0 0.0 0.0 +it 07_gas 1 10 2030 0.0 0.0 0.0 +it 08_non-res 1 10 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 10 2030 0.0 0.0 0.0 +it 01_solar 1 11 2030 1000.0 1.0 0.0 +it 02_wind_on 1 11 2030 0.0 0.0 0.0 +it 03_wind_off 1 11 2030 0.0 0.0 0.0 +it 04_res 1 11 2030 0.0 0.0 0.0 +it 05_nuclear 1 11 2030 0.0 0.0 0.0 +it 06_coal 1 11 2030 0.0 0.0 0.0 +it 07_gas 1 11 2030 0.0 0.0 0.0 +it 08_non-res 1 11 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 11 2030 0.0 0.0 0.0 +it 01_solar 1 12 2030 1100.0 1.0 0.0 +it 02_wind_on 1 12 2030 0.0 0.0 0.0 +it 03_wind_off 1 12 2030 0.0 0.0 0.0 +it 04_res 1 12 2030 0.0 0.0 0.0 +it 05_nuclear 1 12 2030 0.0 0.0 0.0 +it 06_coal 1 12 2030 0.0 0.0 0.0 +it 07_gas 1 12 2030 0.0 0.0 0.0 +it 08_non-res 1 12 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 12 2030 0.0 0.0 0.0 +it 01_solar 1 13 2030 1200.0 1.0 0.0 +it 02_wind_on 1 13 2030 0.0 0.0 0.0 +it 03_wind_off 1 13 2030 0.0 0.0 0.0 +it 04_res 1 13 2030 0.0 0.0 0.0 +it 05_nuclear 1 13 2030 0.0 0.0 0.0 +it 06_coal 1 13 2030 0.0 0.0 0.0 +it 07_gas 1 13 2030 0.0 0.0 0.0 +it 08_non-res 1 13 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 13 2030 0.0 0.0 0.0 +it 01_solar 1 14 2030 1300.0 1.0 0.0 +it 02_wind_on 1 14 2030 0.0 0.0 0.0 +it 03_wind_off 1 14 2030 0.0 0.0 0.0 +it 04_res 1 14 2030 0.0 0.0 0.0 +it 05_nuclear 1 14 2030 0.0 0.0 0.0 +it 06_coal 1 14 2030 0.0 0.0 0.0 +it 07_gas 1 14 2030 0.0 0.0 0.0 +it 08_non-res 1 14 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 14 2030 0.0 0.0 0.0 +it 01_solar 1 15 2030 1400.0 1.0 0.0 +it 02_wind_on 1 15 2030 0.0 0.0 0.0 +it 03_wind_off 1 15 2030 0.0 0.0 0.0 +it 04_res 1 15 2030 0.0 0.0 0.0 +it 05_nuclear 1 15 2030 0.0 0.0 0.0 +it 06_coal 1 15 2030 0.0 0.0 0.0 +it 07_gas 1 15 2030 0.0 0.0 0.0 +it 08_non-res 1 15 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 15 2030 0.0 0.0 0.0 +it 01_solar 1 16 2030 1500.0 1.0 0.0 +it 02_wind_on 1 16 2030 0.0 0.0 0.0 +it 03_wind_off 1 16 2030 0.0 0.0 0.0 +it 04_res 1 16 2030 0.0 0.0 0.0 +it 05_nuclear 1 16 2030 0.0 0.0 0.0 +it 06_coal 1 16 2030 0.0 0.0 0.0 +it 07_gas 1 16 2030 0.0 0.0 0.0 +it 08_non-res 1 16 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 16 2030 0.0 0.0 0.0 +it 01_solar 1 17 2030 1600.0 1.0 0.0 +it 02_wind_on 1 17 2030 0.0 0.0 0.0 +it 03_wind_off 1 17 2030 0.0 0.0 0.0 +it 04_res 1 17 2030 0.0 0.0 0.0 +it 05_nuclear 1 17 2030 0.0 0.0 0.0 +it 06_coal 1 17 2030 0.0 0.0 0.0 +it 07_gas 1 17 2030 0.0 0.0 0.0 +it 08_non-res 1 17 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 17 2030 0.0 0.0 0.0 +it 01_solar 1 18 2030 1700.0 1.0 0.0 +it 02_wind_on 1 18 2030 0.0 0.0 0.0 +it 03_wind_off 1 18 2030 0.0 0.0 0.0 +it 04_res 1 18 2030 0.0 0.0 0.0 +it 05_nuclear 1 18 2030 0.0 0.0 0.0 +it 06_coal 1 18 2030 0.0 0.0 0.0 +it 07_gas 1 18 2030 0.0 0.0 0.0 +it 08_non-res 1 18 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 18 2030 0.0 0.0 0.0 +it 01_solar 1 19 2030 1800.0 1.0 0.0 +it 02_wind_on 1 19 2030 0.0 0.0 0.0 +it 03_wind_off 1 19 2030 0.0 0.0 0.0 +it 04_res 1 19 2030 0.0 0.0 0.0 +it 05_nuclear 1 19 2030 0.0 0.0 0.0 +it 06_coal 1 19 2030 0.0 0.0 0.0 +it 07_gas 1 19 2030 0.0 0.0 0.0 +it 08_non-res 1 19 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 19 2030 0.0 0.0 0.0 +it 01_solar 1 20 2030 1900.0 1.0 0.0 +it 02_wind_on 1 20 2030 0.0 0.0 0.0 +it 03_wind_off 1 20 2030 0.0 0.0 0.0 +it 04_res 1 20 2030 0.0 0.0 0.0 +it 05_nuclear 1 20 2030 0.0 0.0 0.0 +it 06_coal 1 20 2030 0.0 0.0 0.0 +it 07_gas 1 20 2030 0.0 0.0 0.0 +it 08_non-res 1 20 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 20 2030 0.0 0.0 0.0 +it 01_solar 1 21 2030 2000.0 1.0 0.0 +it 02_wind_on 1 21 2030 0.0 0.0 0.0 +it 03_wind_off 1 21 2030 0.0 0.0 0.0 +it 04_res 1 21 2030 0.0 0.0 0.0 +it 05_nuclear 1 21 2030 0.0 0.0 0.0 +it 06_coal 1 21 2030 0.0 0.0 0.0 +it 07_gas 1 21 2030 0.0 0.0 0.0 +it 08_non-res 1 21 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 21 2030 0.0 0.0 0.0 +it 01_solar 1 22 2030 2000.0 1.0 0.0 +it 02_wind_on 1 22 2030 100.0 1.0 0.0 +it 03_wind_off 1 22 2030 0.0 0.0 0.0 +it 04_res 1 22 2030 0.0 0.0 0.0 +it 05_nuclear 1 22 2030 0.0 0.0 0.0 +it 06_coal 1 22 2030 0.0 0.0 0.0 +it 07_gas 1 22 2030 0.0 0.0 0.0 +it 08_non-res 1 22 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 22 2030 0.0 0.0 0.0 +it 01_solar 1 23 2030 2000.0 1.0 0.0 +it 02_wind_on 1 23 2030 200.0 1.0 0.0 +it 03_wind_off 1 23 2030 0.0 0.0 0.0 +it 04_res 1 23 2030 0.0 0.0 0.0 +it 05_nuclear 1 23 2030 0.0 0.0 0.0 +it 06_coal 1 23 2030 0.0 0.0 0.0 +it 07_gas 1 23 2030 0.0 0.0 0.0 +it 08_non-res 1 23 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 23 2030 0.0 0.0 0.0 +it 01_solar 1 24 2030 2000.0 1.0 0.0 +it 02_wind_on 1 24 2030 300.0 1.0 0.0 +it 03_wind_off 1 24 2030 0.0 0.0 0.0 +it 04_res 1 24 2030 0.0 0.0 0.0 +it 05_nuclear 1 24 2030 0.0 0.0 0.0 +it 06_coal 1 24 2030 0.0 0.0 0.0 +it 07_gas 1 24 2030 0.0 0.0 0.0 +it 08_non-res 1 24 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 24 2030 0.0 0.0 0.0 +it 01_solar 1 25 2030 2000.0 1.0 0.0 +it 02_wind_on 1 25 2030 400.0 1.0 0.0 +it 03_wind_off 1 25 2030 0.0 0.0 0.0 +it 04_res 1 25 2030 0.0 0.0 0.0 +it 05_nuclear 1 25 2030 0.0 0.0 0.0 +it 06_coal 1 25 2030 0.0 0.0 0.0 +it 07_gas 1 25 2030 0.0 0.0 0.0 +it 08_non-res 1 25 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 25 2030 0.0 0.0 0.0 +it 01_solar 1 26 2030 2000.0 1.0 0.0 +it 02_wind_on 1 26 2030 500.0 1.0 0.0 +it 03_wind_off 1 26 2030 0.0 0.0 0.0 +it 04_res 1 26 2030 0.0 0.0 0.0 +it 05_nuclear 1 26 2030 0.0 0.0 0.0 +it 06_coal 1 26 2030 0.0 0.0 0.0 +it 07_gas 1 26 2030 0.0 0.0 0.0 +it 08_non-res 1 26 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 26 2030 0.0 0.0 0.0 +it 01_solar 1 27 2030 2000.0 1.0 0.0 +it 02_wind_on 1 27 2030 600.0 1.0 0.0 +it 03_wind_off 1 27 2030 0.0 0.0 0.0 +it 04_res 1 27 2030 0.0 0.0 0.0 +it 05_nuclear 1 27 2030 0.0 0.0 0.0 +it 06_coal 1 27 2030 0.0 0.0 0.0 +it 07_gas 1 27 2030 0.0 0.0 0.0 +it 08_non-res 1 27 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 27 2030 0.0 0.0 0.0 +it 01_solar 1 28 2030 2000.0 1.0 0.0 +it 02_wind_on 1 28 2030 700.0 1.0 0.0 +it 03_wind_off 1 28 2030 0.0 0.0 0.0 +it 04_res 1 28 2030 0.0 0.0 0.0 +it 05_nuclear 1 28 2030 0.0 0.0 0.0 +it 06_coal 1 28 2030 0.0 0.0 0.0 +it 07_gas 1 28 2030 0.0 0.0 0.0 +it 08_non-res 1 28 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 28 2030 0.0 0.0 0.0 +it 01_solar 1 29 2030 2000.0 1.0 0.0 +it 02_wind_on 1 29 2030 800.0 1.0 0.0 +it 03_wind_off 1 29 2030 0.0 0.0 0.0 +it 04_res 1 29 2030 0.0 0.0 0.0 +it 05_nuclear 1 29 2030 0.0 0.0 0.0 +it 06_coal 1 29 2030 0.0 0.0 0.0 +it 07_gas 1 29 2030 0.0 0.0 0.0 +it 08_non-res 1 29 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 29 2030 0.0 0.0 0.0 +it 01_solar 1 30 2030 2000.0 1.0 0.0 +it 02_wind_on 1 30 2030 900.0 1.0 0.0 +it 03_wind_off 1 30 2030 0.0 0.0 0.0 +it 04_res 1 30 2030 0.0 0.0 0.0 +it 05_nuclear 1 30 2030 0.0 0.0 0.0 +it 06_coal 1 30 2030 0.0 0.0 0.0 +it 07_gas 1 30 2030 0.0 0.0 0.0 +it 08_non-res 1 30 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 30 2030 0.0 0.0 0.0 +it 01_solar 1 31 2030 2000.0 1.0 0.0 +it 02_wind_on 1 31 2030 1000.0 1.0 0.0 +it 03_wind_off 1 31 2030 0.0 0.0 0.0 +it 04_res 1 31 2030 0.0 0.0 0.0 +it 05_nuclear 1 31 2030 0.0 0.0 0.0 +it 06_coal 1 31 2030 0.0 0.0 0.0 +it 07_gas 1 31 2030 0.0 0.0 0.0 +it 08_non-res 1 31 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 31 2030 0.0 0.0 0.0 +it 01_solar 1 32 2030 2000.0 1.0 0.0 +it 02_wind_on 1 32 2030 1100.0 1.0 0.0 +it 03_wind_off 1 32 2030 0.0 0.0 0.0 +it 04_res 1 32 2030 0.0 0.0 0.0 +it 05_nuclear 1 32 2030 0.0 0.0 0.0 +it 06_coal 1 32 2030 0.0 0.0 0.0 +it 07_gas 1 32 2030 0.0 0.0 0.0 +it 08_non-res 1 32 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 32 2030 0.0 0.0 0.0 +it 01_solar 1 33 2030 2000.0 1.0 0.0 +it 02_wind_on 1 33 2030 1200.0 1.0 0.0 +it 03_wind_off 1 33 2030 0.0 0.0 0.0 +it 04_res 1 33 2030 0.0 0.0 0.0 +it 05_nuclear 1 33 2030 0.0 0.0 0.0 +it 06_coal 1 33 2030 0.0 0.0 0.0 +it 07_gas 1 33 2030 0.0 0.0 0.0 +it 08_non-res 1 33 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 33 2030 0.0 0.0 0.0 +it 01_solar 1 34 2030 2000.0 1.0 0.0 +it 02_wind_on 1 34 2030 1300.0 1.0 0.0 +it 03_wind_off 1 34 2030 0.0 0.0 0.0 +it 04_res 1 34 2030 0.0 0.0 0.0 +it 05_nuclear 1 34 2030 0.0 0.0 0.0 +it 06_coal 1 34 2030 0.0 0.0 0.0 +it 07_gas 1 34 2030 0.0 0.0 0.0 +it 08_non-res 1 34 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 34 2030 0.0 0.0 0.0 +it 01_solar 1 35 2030 2000.0 1.0 0.0 +it 02_wind_on 1 35 2030 1400.0 1.0 0.0 +it 03_wind_off 1 35 2030 0.0 0.0 0.0 +it 04_res 1 35 2030 0.0 0.0 0.0 +it 05_nuclear 1 35 2030 0.0 0.0 0.0 +it 06_coal 1 35 2030 0.0 0.0 0.0 +it 07_gas 1 35 2030 0.0 0.0 0.0 +it 08_non-res 1 35 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 35 2030 0.0 0.0 0.0 +it 01_solar 1 36 2030 2000.0 1.0 0.0 +it 02_wind_on 1 36 2030 1500.0 1.0 0.0 +it 03_wind_off 1 36 2030 0.0 0.0 0.0 +it 04_res 1 36 2030 0.0 0.0 0.0 +it 05_nuclear 1 36 2030 0.0 0.0 0.0 +it 06_coal 1 36 2030 0.0 0.0 0.0 +it 07_gas 1 36 2030 0.0 0.0 0.0 +it 08_non-res 1 36 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 36 2030 0.0 0.0 0.0 +it 01_solar 1 37 2030 2000.0 1.0 0.0 +it 02_wind_on 1 37 2030 1600.0 1.0 0.0 +it 03_wind_off 1 37 2030 0.0 0.0 0.0 +it 04_res 1 37 2030 0.0 0.0 0.0 +it 05_nuclear 1 37 2030 0.0 0.0 0.0 +it 06_coal 1 37 2030 0.0 0.0 0.0 +it 07_gas 1 37 2030 0.0 0.0 0.0 +it 08_non-res 1 37 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 37 2030 0.0 0.0 0.0 +it 01_solar 1 38 2030 2000.0 1.0 0.0 +it 02_wind_on 1 38 2030 1700.0 1.0 0.0 +it 03_wind_off 1 38 2030 0.0 0.0 0.0 +it 04_res 1 38 2030 0.0 0.0 0.0 +it 05_nuclear 1 38 2030 0.0 0.0 0.0 +it 06_coal 1 38 2030 0.0 0.0 0.0 +it 07_gas 1 38 2030 0.0 0.0 0.0 +it 08_non-res 1 38 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 38 2030 0.0 0.0 0.0 +it 01_solar 1 39 2030 2000.0 1.0 0.0 +it 02_wind_on 1 39 2030 1800.0 1.0 0.0 +it 03_wind_off 1 39 2030 0.0 0.0 0.0 +it 04_res 1 39 2030 0.0 0.0 0.0 +it 05_nuclear 1 39 2030 0.0 0.0 0.0 +it 06_coal 1 39 2030 0.0 0.0 0.0 +it 07_gas 1 39 2030 0.0 0.0 0.0 +it 08_non-res 1 39 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 39 2030 0.0 0.0 0.0 +it 01_solar 1 40 2030 2000.0 1.0 0.0 +it 02_wind_on 1 40 2030 1900.0 1.0 0.0 +it 03_wind_off 1 40 2030 0.0 0.0 0.0 +it 04_res 1 40 2030 0.0 0.0 0.0 +it 05_nuclear 1 40 2030 0.0 0.0 0.0 +it 06_coal 1 40 2030 0.0 0.0 0.0 +it 07_gas 1 40 2030 0.0 0.0 0.0 +it 08_non-res 1 40 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 40 2030 0.0 0.0 0.0 +it 01_solar 1 41 2030 2000.0 1.0 0.0 +it 02_wind_on 1 41 2030 2000.0 1.0 0.0 +it 03_wind_off 1 41 2030 0.0 0.0 0.0 +it 04_res 1 41 2030 0.0 0.0 0.0 +it 05_nuclear 1 41 2030 0.0 0.0 0.0 +it 06_coal 1 41 2030 0.0 0.0 0.0 +it 07_gas 1 41 2030 0.0 0.0 0.0 +it 08_non-res 1 41 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 41 2030 0.0 0.0 0.0 +it 01_solar 1 42 2030 2000.0 1.0 0.0 +it 02_wind_on 1 42 2030 2000.0 1.0 0.0 +it 03_wind_off 1 42 2030 100.0 1.0 0.0 +it 04_res 1 42 2030 0.0 0.0 0.0 +it 05_nuclear 1 42 2030 0.0 0.0 0.0 +it 06_coal 1 42 2030 0.0 0.0 0.0 +it 07_gas 1 42 2030 0.0 0.0 0.0 +it 08_non-res 1 42 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 42 2030 0.0 0.0 0.0 +it 01_solar 1 43 2030 2000.0 1.0 0.0 +it 02_wind_on 1 43 2030 2000.0 1.0 0.0 +it 03_wind_off 1 43 2030 200.0 1.0 0.0 +it 04_res 1 43 2030 0.0 0.0 0.0 +it 05_nuclear 1 43 2030 0.0 0.0 0.0 +it 06_coal 1 43 2030 0.0 0.0 0.0 +it 07_gas 1 43 2030 0.0 0.0 0.0 +it 08_non-res 1 43 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 43 2030 0.0 0.0 0.0 +it 01_solar 1 44 2030 2000.0 1.0 0.0 +it 02_wind_on 1 44 2030 2000.0 1.0 0.0 +it 03_wind_off 1 44 2030 300.0 1.0 0.0 +it 04_res 1 44 2030 0.0 0.0 0.0 +it 05_nuclear 1 44 2030 0.0 0.0 0.0 +it 06_coal 1 44 2030 0.0 0.0 0.0 +it 07_gas 1 44 2030 0.0 0.0 0.0 +it 08_non-res 1 44 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 44 2030 0.0 0.0 0.0 +it 01_solar 1 45 2030 2000.0 1.0 0.0 +it 02_wind_on 1 45 2030 2000.0 1.0 0.0 +it 03_wind_off 1 45 2030 400.0 1.0 0.0 +it 04_res 1 45 2030 0.0 0.0 0.0 +it 05_nuclear 1 45 2030 0.0 0.0 0.0 +it 06_coal 1 45 2030 0.0 0.0 0.0 +it 07_gas 1 45 2030 0.0 0.0 0.0 +it 08_non-res 1 45 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 45 2030 0.0 0.0 0.0 +it 01_solar 1 46 2030 2000.0 1.0 0.0 +it 02_wind_on 1 46 2030 2000.0 1.0 0.0 +it 03_wind_off 1 46 2030 500.0 1.0 0.0 +it 04_res 1 46 2030 0.0 0.0 0.0 +it 05_nuclear 1 46 2030 0.0 0.0 0.0 +it 06_coal 1 46 2030 0.0 0.0 0.0 +it 07_gas 1 46 2030 0.0 0.0 0.0 +it 08_non-res 1 46 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 46 2030 0.0 0.0 0.0 +it 01_solar 1 47 2030 2000.0 1.0 0.0 +it 02_wind_on 1 47 2030 2000.0 1.0 0.0 +it 03_wind_off 1 47 2030 600.0 1.0 0.0 +it 04_res 1 47 2030 0.0 0.0 0.0 +it 05_nuclear 1 47 2030 0.0 0.0 0.0 +it 06_coal 1 47 2030 0.0 0.0 0.0 +it 07_gas 1 47 2030 0.0 0.0 0.0 +it 08_non-res 1 47 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 47 2030 0.0 0.0 0.0 +it 01_solar 1 48 2030 2000.0 1.0 0.0 +it 02_wind_on 1 48 2030 2000.0 1.0 0.0 +it 03_wind_off 1 48 2030 700.0 1.0 0.0 +it 04_res 1 48 2030 0.0 0.0 0.0 +it 05_nuclear 1 48 2030 0.0 0.0 0.0 +it 06_coal 1 48 2030 0.0 0.0 0.0 +it 07_gas 1 48 2030 0.0 0.0 0.0 +it 08_non-res 1 48 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 48 2030 0.0 0.0 0.0 +it 01_solar 1 49 2030 2000.0 1.0 0.0 +it 02_wind_on 1 49 2030 2000.0 1.0 0.0 +it 03_wind_off 1 49 2030 800.0 1.0 0.0 +it 04_res 1 49 2030 0.0 0.0 0.0 +it 05_nuclear 1 49 2030 0.0 0.0 0.0 +it 06_coal 1 49 2030 0.0 0.0 0.0 +it 07_gas 1 49 2030 0.0 0.0 0.0 +it 08_non-res 1 49 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 49 2030 0.0 0.0 0.0 +it 01_solar 1 50 2030 2000.0 1.0 0.0 +it 02_wind_on 1 50 2030 2000.0 1.0 0.0 +it 03_wind_off 1 50 2030 900.0 1.0 0.0 +it 04_res 1 50 2030 0.0 0.0 0.0 +it 05_nuclear 1 50 2030 0.0 0.0 0.0 +it 06_coal 1 50 2030 0.0 0.0 0.0 +it 07_gas 1 50 2030 0.0 0.0 0.0 +it 08_non-res 1 50 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 50 2030 0.0 0.0 0.0 +it 01_solar 1 51 2030 2000.0 1.0 0.0 +it 02_wind_on 1 51 2030 2000.0 1.0 0.0 +it 03_wind_off 1 51 2030 1000.0 1.0 0.0 +it 04_res 1 51 2030 0.0 0.0 0.0 +it 05_nuclear 1 51 2030 0.0 0.0 0.0 +it 06_coal 1 51 2030 0.0 0.0 0.0 +it 07_gas 1 51 2030 0.0 0.0 0.0 +it 08_non-res 1 51 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 51 2030 0.0 0.0 0.0 +it 01_solar 1 52 2030 2000.0 1.0 0.0 +it 02_wind_on 1 52 2030 2000.0 1.0 0.0 +it 03_wind_off 1 52 2030 1100.0 1.0 0.0 +it 04_res 1 52 2030 0.0 0.0 0.0 +it 05_nuclear 1 52 2030 0.0 0.0 0.0 +it 06_coal 1 52 2030 0.0 0.0 0.0 +it 07_gas 1 52 2030 0.0 0.0 0.0 +it 08_non-res 1 52 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 52 2030 0.0 0.0 0.0 +it 01_solar 1 53 2030 2000.0 1.0 0.0 +it 02_wind_on 1 53 2030 2000.0 1.0 0.0 +it 03_wind_off 1 53 2030 1200.0 1.0 0.0 +it 04_res 1 53 2030 0.0 0.0 0.0 +it 05_nuclear 1 53 2030 0.0 0.0 0.0 +it 06_coal 1 53 2030 0.0 0.0 0.0 +it 07_gas 1 53 2030 0.0 0.0 0.0 +it 08_non-res 1 53 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 53 2030 0.0 0.0 0.0 +it 01_solar 1 54 2030 2000.0 1.0 0.0 +it 02_wind_on 1 54 2030 2000.0 1.0 0.0 +it 03_wind_off 1 54 2030 1300.0 1.0 0.0 +it 04_res 1 54 2030 0.0 0.0 0.0 +it 05_nuclear 1 54 2030 0.0 0.0 0.0 +it 06_coal 1 54 2030 0.0 0.0 0.0 +it 07_gas 1 54 2030 0.0 0.0 0.0 +it 08_non-res 1 54 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 54 2030 0.0 0.0 0.0 +it 01_solar 1 55 2030 2000.0 1.0 0.0 +it 02_wind_on 1 55 2030 2000.0 1.0 0.0 +it 03_wind_off 1 55 2030 1400.0 1.0 0.0 +it 04_res 1 55 2030 0.0 0.0 0.0 +it 05_nuclear 1 55 2030 0.0 0.0 0.0 +it 06_coal 1 55 2030 0.0 0.0 0.0 +it 07_gas 1 55 2030 0.0 0.0 0.0 +it 08_non-res 1 55 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 55 2030 0.0 0.0 0.0 +it 01_solar 1 56 2030 2000.0 1.0 0.0 +it 02_wind_on 1 56 2030 2000.0 1.0 0.0 +it 03_wind_off 1 56 2030 1500.0 1.0 0.0 +it 04_res 1 56 2030 0.0 0.0 0.0 +it 05_nuclear 1 56 2030 0.0 0.0 0.0 +it 06_coal 1 56 2030 0.0 0.0 0.0 +it 07_gas 1 56 2030 0.0 0.0 0.0 +it 08_non-res 1 56 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 56 2030 0.0 0.0 0.0 +it 01_solar 1 57 2030 2000.0 1.0 0.0 +it 02_wind_on 1 57 2030 2000.0 1.0 0.0 +it 03_wind_off 1 57 2030 1600.0 1.0 0.0 +it 04_res 1 57 2030 0.0 0.0 0.0 +it 05_nuclear 1 57 2030 0.0 0.0 0.0 +it 06_coal 1 57 2030 0.0 0.0 0.0 +it 07_gas 1 57 2030 0.0 0.0 0.0 +it 08_non-res 1 57 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 57 2030 0.0 0.0 0.0 +it 01_solar 1 58 2030 2000.0 1.0 0.0 +it 02_wind_on 1 58 2030 2000.0 1.0 0.0 +it 03_wind_off 1 58 2030 1700.0 1.0 0.0 +it 04_res 1 58 2030 0.0 0.0 0.0 +it 05_nuclear 1 58 2030 0.0 0.0 0.0 +it 06_coal 1 58 2030 0.0 0.0 0.0 +it 07_gas 1 58 2030 0.0 0.0 0.0 +it 08_non-res 1 58 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 58 2030 0.0 0.0 0.0 +it 01_solar 1 59 2030 2000.0 1.0 0.0 +it 02_wind_on 1 59 2030 2000.0 1.0 0.0 +it 03_wind_off 1 59 2030 1800.0 1.0 0.0 +it 04_res 1 59 2030 0.0 0.0 0.0 +it 05_nuclear 1 59 2030 0.0 0.0 0.0 +it 06_coal 1 59 2030 0.0 0.0 0.0 +it 07_gas 1 59 2030 0.0 0.0 0.0 +it 08_non-res 1 59 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 59 2030 0.0 0.0 0.0 +it 01_solar 1 60 2030 2000.0 1.0 0.0 +it 02_wind_on 1 60 2030 2000.0 1.0 0.0 +it 03_wind_off 1 60 2030 1900.0 1.0 0.0 +it 04_res 1 60 2030 0.0 0.0 0.0 +it 05_nuclear 1 60 2030 0.0 0.0 0.0 +it 06_coal 1 60 2030 0.0 0.0 0.0 +it 07_gas 1 60 2030 0.0 0.0 0.0 +it 08_non-res 1 60 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 60 2030 0.0 0.0 0.0 +it 01_solar 1 61 2030 2000.0 1.0 0.0 +it 02_wind_on 1 61 2030 2000.0 1.0 0.0 +it 03_wind_off 1 61 2030 2000.0 1.0 0.0 +it 04_res 1 61 2030 0.0 0.0 0.0 +it 05_nuclear 1 61 2030 0.0 0.0 0.0 +it 06_coal 1 61 2030 0.0 0.0 0.0 +it 07_gas 1 61 2030 0.0 0.0 0.0 +it 08_non-res 1 61 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 61 2030 0.0 0.0 0.0 +it 01_solar 1 62 2030 2000.0 1.0 0.0 +it 02_wind_on 1 62 2030 2000.0 1.0 0.0 +it 03_wind_off 1 62 2030 2000.0 1.0 0.0 +it 04_res 1 62 2030 100.0 1.0 0.0 +it 05_nuclear 1 62 2030 0.0 0.0 0.0 +it 06_coal 1 62 2030 0.0 0.0 0.0 +it 07_gas 1 62 2030 0.0 0.0 0.0 +it 08_non-res 1 62 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 62 2030 0.0 0.0 0.0 +it 01_solar 1 63 2030 2000.0 1.0 0.0 +it 02_wind_on 1 63 2030 2000.0 1.0 0.0 +it 03_wind_off 1 63 2030 2000.0 1.0 0.0 +it 04_res 1 63 2030 200.0 1.0 0.0 +it 05_nuclear 1 63 2030 0.0 0.0 0.0 +it 06_coal 1 63 2030 0.0 0.0 0.0 +it 07_gas 1 63 2030 0.0 0.0 0.0 +it 08_non-res 1 63 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 63 2030 0.0 0.0 0.0 +it 01_solar 1 64 2030 2000.0 1.0 0.0 +it 02_wind_on 1 64 2030 2000.0 1.0 0.0 +it 03_wind_off 1 64 2030 2000.0 1.0 0.0 +it 04_res 1 64 2030 300.0 1.0 0.0 +it 05_nuclear 1 64 2030 0.0 0.0 0.0 +it 06_coal 1 64 2030 0.0 0.0 0.0 +it 07_gas 1 64 2030 0.0 0.0 0.0 +it 08_non-res 1 64 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 64 2030 0.0 0.0 0.0 +it 01_solar 1 65 2030 2000.0 1.0 0.0 +it 02_wind_on 1 65 2030 2000.0 1.0 0.0 +it 03_wind_off 1 65 2030 2000.0 1.0 0.0 +it 04_res 1 65 2030 400.0 1.0 0.0 +it 05_nuclear 1 65 2030 0.0 0.0 0.0 +it 06_coal 1 65 2030 0.0 0.0 0.0 +it 07_gas 1 65 2030 0.0 0.0 0.0 +it 08_non-res 1 65 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 65 2030 0.0 0.0 0.0 +it 01_solar 1 66 2030 2000.0 1.0 0.0 +it 02_wind_on 1 66 2030 2000.0 1.0 0.0 +it 03_wind_off 1 66 2030 2000.0 1.0 0.0 +it 04_res 1 66 2030 500.0 1.0 0.0 +it 05_nuclear 1 66 2030 0.0 0.0 0.0 +it 06_coal 1 66 2030 0.0 0.0 0.0 +it 07_gas 1 66 2030 0.0 0.0 0.0 +it 08_non-res 1 66 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 66 2030 0.0 0.0 0.0 +it 01_solar 1 67 2030 2000.0 1.0 0.0 +it 02_wind_on 1 67 2030 2000.0 1.0 0.0 +it 03_wind_off 1 67 2030 2000.0 1.0 0.0 +it 04_res 1 67 2030 600.0 1.0 0.0 +it 05_nuclear 1 67 2030 0.0 0.0 0.0 +it 06_coal 1 67 2030 0.0 0.0 0.0 +it 07_gas 1 67 2030 0.0 0.0 0.0 +it 08_non-res 1 67 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 67 2030 0.0 0.0 0.0 +it 01_solar 1 68 2030 2000.0 1.0 0.0 +it 02_wind_on 1 68 2030 2000.0 1.0 0.0 +it 03_wind_off 1 68 2030 2000.0 1.0 0.0 +it 04_res 1 68 2030 700.0 1.0 0.0 +it 05_nuclear 1 68 2030 0.0 0.0 0.0 +it 06_coal 1 68 2030 0.0 0.0 0.0 +it 07_gas 1 68 2030 0.0 0.0 0.0 +it 08_non-res 1 68 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 68 2030 0.0 0.0 0.0 +it 01_solar 1 69 2030 2000.0 1.0 0.0 +it 02_wind_on 1 69 2030 2000.0 1.0 0.0 +it 03_wind_off 1 69 2030 2000.0 1.0 0.0 +it 04_res 1 69 2030 800.0 1.0 0.0 +it 05_nuclear 1 69 2030 0.0 0.0 0.0 +it 06_coal 1 69 2030 0.0 0.0 0.0 +it 07_gas 1 69 2030 0.0 0.0 0.0 +it 08_non-res 1 69 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 69 2030 0.0 0.0 0.0 +it 01_solar 1 70 2030 2000.0 1.0 0.0 +it 02_wind_on 1 70 2030 2000.0 1.0 0.0 +it 03_wind_off 1 70 2030 2000.0 1.0 0.0 +it 04_res 1 70 2030 900.0 1.0 0.0 +it 05_nuclear 1 70 2030 0.0 0.0 0.0 +it 06_coal 1 70 2030 0.0 0.0 0.0 +it 07_gas 1 70 2030 0.0 0.0 0.0 +it 08_non-res 1 70 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 70 2030 0.0 0.0 0.0 +it 01_solar 1 71 2030 2000.0 1.0 0.0 +it 02_wind_on 1 71 2030 2000.0 1.0 0.0 +it 03_wind_off 1 71 2030 2000.0 1.0 0.0 +it 04_res 1 71 2030 1000.0 1.0 0.0 +it 05_nuclear 1 71 2030 0.0 0.0 0.0 +it 06_coal 1 71 2030 0.0 0.0 0.0 +it 07_gas 1 71 2030 0.0 0.0 0.0 +it 08_non-res 1 71 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 71 2030 0.0 0.0 0.0 +it 01_solar 1 72 2030 2000.0 1.0 0.0 +it 02_wind_on 1 72 2030 2000.0 1.0 0.0 +it 03_wind_off 1 72 2030 2000.0 1.0 0.0 +it 04_res 1 72 2030 1100.0 1.0 0.0 +it 05_nuclear 1 72 2030 0.0 0.0 0.0 +it 06_coal 1 72 2030 0.0 0.0 0.0 +it 07_gas 1 72 2030 0.0 0.0 0.0 +it 08_non-res 1 72 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 72 2030 0.0 0.0 0.0 +it 01_solar 1 73 2030 2000.0 1.0 0.0 +it 02_wind_on 1 73 2030 2000.0 1.0 0.0 +it 03_wind_off 1 73 2030 2000.0 1.0 0.0 +it 04_res 1 73 2030 1200.0 1.0 0.0 +it 05_nuclear 1 73 2030 0.0 0.0 0.0 +it 06_coal 1 73 2030 0.0 0.0 0.0 +it 07_gas 1 73 2030 0.0 0.0 0.0 +it 08_non-res 1 73 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 73 2030 0.0 0.0 0.0 +it 01_solar 1 74 2030 2000.0 1.0 0.0 +it 02_wind_on 1 74 2030 2000.0 1.0 0.0 +it 03_wind_off 1 74 2030 2000.0 1.0 0.0 +it 04_res 1 74 2030 1300.0 1.0 0.0 +it 05_nuclear 1 74 2030 0.0 0.0 0.0 +it 06_coal 1 74 2030 0.0 0.0 0.0 +it 07_gas 1 74 2030 0.0 0.0 0.0 +it 08_non-res 1 74 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 74 2030 0.0 0.0 0.0 +it 01_solar 1 75 2030 2000.0 1.0 0.0 +it 02_wind_on 1 75 2030 2000.0 1.0 0.0 +it 03_wind_off 1 75 2030 2000.0 1.0 0.0 +it 04_res 1 75 2030 1400.0 1.0 0.0 +it 05_nuclear 1 75 2030 0.0 0.0 0.0 +it 06_coal 1 75 2030 0.0 0.0 0.0 +it 07_gas 1 75 2030 0.0 0.0 0.0 +it 08_non-res 1 75 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 75 2030 0.0 0.0 0.0 +it 01_solar 1 76 2030 2000.0 1.0 0.0 +it 02_wind_on 1 76 2030 2000.0 1.0 0.0 +it 03_wind_off 1 76 2030 2000.0 1.0 0.0 +it 04_res 1 76 2030 1500.0 1.0 0.0 +it 05_nuclear 1 76 2030 0.0 0.0 0.0 +it 06_coal 1 76 2030 0.0 0.0 0.0 +it 07_gas 1 76 2030 0.0 0.0 0.0 +it 08_non-res 1 76 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 76 2030 0.0 0.0 0.0 +it 01_solar 1 77 2030 2000.0 1.0 0.0 +it 02_wind_on 1 77 2030 2000.0 1.0 0.0 +it 03_wind_off 1 77 2030 2000.0 1.0 0.0 +it 04_res 1 77 2030 1600.0 1.0 0.0 +it 05_nuclear 1 77 2030 0.0 0.0 0.0 +it 06_coal 1 77 2030 0.0 0.0 0.0 +it 07_gas 1 77 2030 0.0 0.0 0.0 +it 08_non-res 1 77 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 77 2030 0.0 0.0 0.0 +it 01_solar 1 78 2030 2000.0 1.0 0.0 +it 02_wind_on 1 78 2030 2000.0 1.0 0.0 +it 03_wind_off 1 78 2030 2000.0 1.0 0.0 +it 04_res 1 78 2030 1700.0 1.0 0.0 +it 05_nuclear 1 78 2030 0.0 0.0 0.0 +it 06_coal 1 78 2030 0.0 0.0 0.0 +it 07_gas 1 78 2030 0.0 0.0 0.0 +it 08_non-res 1 78 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 78 2030 0.0 0.0 0.0 +it 01_solar 1 79 2030 2000.0 1.0 0.0 +it 02_wind_on 1 79 2030 2000.0 1.0 0.0 +it 03_wind_off 1 79 2030 2000.0 1.0 0.0 +it 04_res 1 79 2030 1800.0 1.0 0.0 +it 05_nuclear 1 79 2030 0.0 0.0 0.0 +it 06_coal 1 79 2030 0.0 0.0 0.0 +it 07_gas 1 79 2030 0.0 0.0 0.0 +it 08_non-res 1 79 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 79 2030 0.0 0.0 0.0 +it 01_solar 1 80 2030 2000.0 1.0 0.0 +it 02_wind_on 1 80 2030 2000.0 1.0 0.0 +it 03_wind_off 1 80 2030 2000.0 1.0 0.0 +it 04_res 1 80 2030 1900.0 1.0 0.0 +it 05_nuclear 1 80 2030 0.0 0.0 0.0 +it 06_coal 1 80 2030 0.0 0.0 0.0 +it 07_gas 1 80 2030 0.0 0.0 0.0 +it 08_non-res 1 80 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 80 2030 0.0 0.0 0.0 +it 01_solar 1 81 2030 2000.0 1.0 0.0 +it 02_wind_on 1 81 2030 2000.0 1.0 0.0 +it 03_wind_off 1 81 2030 2000.0 1.0 0.0 +it 04_res 1 81 2030 2000.0 1.0 0.0 +it 05_nuclear 1 81 2030 0.0 0.0 0.0 +it 06_coal 1 81 2030 0.0 0.0 0.0 +it 07_gas 1 81 2030 0.0 0.0 0.0 +it 08_non-res 1 81 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 81 2030 0.0 0.0 0.0 +it 01_solar 1 82 2030 2000.0 1.0 0.0 +it 02_wind_on 1 82 2030 2000.0 1.0 0.0 +it 03_wind_off 1 82 2030 2000.0 1.0 0.0 +it 04_res 1 82 2030 2000.0 1.0 0.0 +it 05_nuclear 1 82 2030 100.0 1.0 0.0 +it 06_coal 1 82 2030 0.0 0.0 0.0 +it 07_gas 1 82 2030 0.0 0.0 0.0 +it 08_non-res 1 82 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 82 2030 0.0 0.0 0.0 +it 01_solar 1 83 2030 2000.0 1.0 0.0 +it 02_wind_on 1 83 2030 2000.0 1.0 0.0 +it 03_wind_off 1 83 2030 2000.0 1.0 0.0 +it 04_res 1 83 2030 2000.0 1.0 0.0 +it 05_nuclear 1 83 2030 200.0 1.0 0.0 +it 06_coal 1 83 2030 0.0 0.0 0.0 +it 07_gas 1 83 2030 0.0 0.0 0.0 +it 08_non-res 1 83 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 83 2030 0.0 0.0 0.0 +it 01_solar 1 84 2030 2000.0 1.0 0.0 +it 02_wind_on 1 84 2030 2000.0 1.0 0.0 +it 03_wind_off 1 84 2030 2000.0 1.0 0.0 +it 04_res 1 84 2030 2000.0 1.0 0.0 +it 05_nuclear 1 84 2030 300.0 1.0 0.0 +it 06_coal 1 84 2030 0.0 0.0 0.0 +it 07_gas 1 84 2030 0.0 0.0 0.0 +it 08_non-res 1 84 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 84 2030 0.0 0.0 0.0 +it 01_solar 1 85 2030 2000.0 1.0 0.0 +it 02_wind_on 1 85 2030 2000.0 1.0 0.0 +it 03_wind_off 1 85 2030 2000.0 1.0 0.0 +it 04_res 1 85 2030 2000.0 1.0 0.0 +it 05_nuclear 1 85 2030 400.0 1.0 0.0 +it 06_coal 1 85 2030 0.0 0.0 0.0 +it 07_gas 1 85 2030 0.0 0.0 0.0 +it 08_non-res 1 85 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 85 2030 0.0 0.0 0.0 +it 01_solar 1 86 2030 2000.0 1.0 0.0 +it 02_wind_on 1 86 2030 2000.0 1.0 0.0 +it 03_wind_off 1 86 2030 2000.0 1.0 0.0 +it 04_res 1 86 2030 2000.0 1.0 0.0 +it 05_nuclear 1 86 2030 500.0 1.0 0.0 +it 06_coal 1 86 2030 0.0 0.0 0.0 +it 07_gas 1 86 2030 0.0 0.0 0.0 +it 08_non-res 1 86 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 86 2030 0.0 0.0 0.0 +it 01_solar 1 87 2030 2000.0 1.0 0.0 +it 02_wind_on 1 87 2030 2000.0 1.0 0.0 +it 03_wind_off 1 87 2030 2000.0 1.0 0.0 +it 04_res 1 87 2030 2000.0 1.0 0.0 +it 05_nuclear 1 87 2030 600.0 1.0 0.0 +it 06_coal 1 87 2030 0.0 0.0 0.0 +it 07_gas 1 87 2030 0.0 0.0 0.0 +it 08_non-res 1 87 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 87 2030 0.0 0.0 0.0 +it 01_solar 1 88 2030 2000.0 1.0 0.0 +it 02_wind_on 1 88 2030 2000.0 1.0 0.0 +it 03_wind_off 1 88 2030 2000.0 1.0 0.0 +it 04_res 1 88 2030 2000.0 1.0 0.0 +it 05_nuclear 1 88 2030 700.0 1.0 0.0 +it 06_coal 1 88 2030 0.0 0.0 0.0 +it 07_gas 1 88 2030 0.0 0.0 0.0 +it 08_non-res 1 88 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 88 2030 0.0 0.0 0.0 +it 01_solar 1 89 2030 2000.0 1.0 0.0 +it 02_wind_on 1 89 2030 2000.0 1.0 0.0 +it 03_wind_off 1 89 2030 2000.0 1.0 0.0 +it 04_res 1 89 2030 2000.0 1.0 0.0 +it 05_nuclear 1 89 2030 800.0 1.0 0.0 +it 06_coal 1 89 2030 0.0 0.0 0.0 +it 07_gas 1 89 2030 0.0 0.0 0.0 +it 08_non-res 1 89 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 89 2030 0.0 0.0 0.0 +it 01_solar 1 90 2030 2000.0 1.0 0.0 +it 02_wind_on 1 90 2030 2000.0 1.0 0.0 +it 03_wind_off 1 90 2030 2000.0 1.0 0.0 +it 04_res 1 90 2030 2000.0 1.0 0.0 +it 05_nuclear 1 90 2030 900.0 1.0 0.0 +it 06_coal 1 90 2030 0.0 0.0 0.0 +it 07_gas 1 90 2030 0.0 0.0 0.0 +it 08_non-res 1 90 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 90 2030 0.0 0.0 0.0 +it 01_solar 1 91 2030 2000.0 1.0 0.0 +it 02_wind_on 1 91 2030 2000.0 1.0 0.0 +it 03_wind_off 1 91 2030 2000.0 1.0 0.0 +it 04_res 1 91 2030 2000.0 1.0 0.0 +it 05_nuclear 1 91 2030 1000.0 1.0 0.0 +it 06_coal 1 91 2030 0.0 0.0 0.0 +it 07_gas 1 91 2030 0.0 0.0 0.0 +it 08_non-res 1 91 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 91 2030 0.0 0.0 0.0 +it 01_solar 1 92 2030 2000.0 1.0 0.0 +it 02_wind_on 1 92 2030 2000.0 1.0 0.0 +it 03_wind_off 1 92 2030 2000.0 1.0 0.0 +it 04_res 1 92 2030 2000.0 1.0 0.0 +it 05_nuclear 1 92 2030 1100.0 1.0 0.0 +it 06_coal 1 92 2030 0.0 0.0 0.0 +it 07_gas 1 92 2030 0.0 0.0 0.0 +it 08_non-res 1 92 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 92 2030 0.0 0.0 0.0 +it 01_solar 1 93 2030 2000.0 1.0 0.0 +it 02_wind_on 1 93 2030 2000.0 1.0 0.0 +it 03_wind_off 1 93 2030 2000.0 1.0 0.0 +it 04_res 1 93 2030 2000.0 1.0 0.0 +it 05_nuclear 1 93 2030 1200.0 1.0 0.0 +it 06_coal 1 93 2030 0.0 0.0 0.0 +it 07_gas 1 93 2030 0.0 0.0 0.0 +it 08_non-res 1 93 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 93 2030 0.0 0.0 0.0 +it 01_solar 1 94 2030 2000.0 1.0 0.0 +it 02_wind_on 1 94 2030 2000.0 1.0 0.0 +it 03_wind_off 1 94 2030 2000.0 1.0 0.0 +it 04_res 1 94 2030 2000.0 1.0 0.0 +it 05_nuclear 1 94 2030 1300.0 1.0 0.0 +it 06_coal 1 94 2030 0.0 0.0 0.0 +it 07_gas 1 94 2030 0.0 0.0 0.0 +it 08_non-res 1 94 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 94 2030 0.0 0.0 0.0 +it 01_solar 1 95 2030 2000.0 1.0 0.0 +it 02_wind_on 1 95 2030 2000.0 1.0 0.0 +it 03_wind_off 1 95 2030 2000.0 1.0 0.0 +it 04_res 1 95 2030 2000.0 1.0 0.0 +it 05_nuclear 1 95 2030 1400.0 1.0 0.0 +it 06_coal 1 95 2030 0.0 0.0 0.0 +it 07_gas 1 95 2030 0.0 0.0 0.0 +it 08_non-res 1 95 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 95 2030 0.0 0.0 0.0 +it 01_solar 1 96 2030 2000.0 1.0 0.0 +it 02_wind_on 1 96 2030 2000.0 1.0 0.0 +it 03_wind_off 1 96 2030 2000.0 1.0 0.0 +it 04_res 1 96 2030 2000.0 1.0 0.0 +it 05_nuclear 1 96 2030 1500.0 1.0 0.0 +it 06_coal 1 96 2030 0.0 0.0 0.0 +it 07_gas 1 96 2030 0.0 0.0 0.0 +it 08_non-res 1 96 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 96 2030 0.0 0.0 0.0 +it 01_solar 1 97 2030 2000.0 1.0 0.0 +it 02_wind_on 1 97 2030 2000.0 1.0 0.0 +it 03_wind_off 1 97 2030 2000.0 1.0 0.0 +it 04_res 1 97 2030 2000.0 1.0 0.0 +it 05_nuclear 1 97 2030 1600.0 1.0 0.0 +it 06_coal 1 97 2030 0.0 0.0 0.0 +it 07_gas 1 97 2030 0.0 0.0 0.0 +it 08_non-res 1 97 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 97 2030 0.0 0.0 0.0 +it 01_solar 1 98 2030 2000.0 1.0 0.0 +it 02_wind_on 1 98 2030 2000.0 1.0 0.0 +it 03_wind_off 1 98 2030 2000.0 1.0 0.0 +it 04_res 1 98 2030 2000.0 1.0 0.0 +it 05_nuclear 1 98 2030 1700.0 1.0 0.0 +it 06_coal 1 98 2030 0.0 0.0 0.0 +it 07_gas 1 98 2030 0.0 0.0 0.0 +it 08_non-res 1 98 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 98 2030 0.0 0.0 0.0 +it 01_solar 1 99 2030 2000.0 1.0 0.0 +it 02_wind_on 1 99 2030 2000.0 1.0 0.0 +it 03_wind_off 1 99 2030 2000.0 1.0 0.0 +it 04_res 1 99 2030 2000.0 1.0 0.0 +it 05_nuclear 1 99 2030 1800.0 1.0 0.0 +it 06_coal 1 99 2030 0.0 0.0 0.0 +it 07_gas 1 99 2030 0.0 0.0 0.0 +it 08_non-res 1 99 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 99 2030 0.0 0.0 0.0 +it 01_solar 1 100 2030 2000.0 1.0 0.0 +it 02_wind_on 1 100 2030 2000.0 1.0 0.0 +it 03_wind_off 1 100 2030 2000.0 1.0 0.0 +it 04_res 1 100 2030 2000.0 1.0 0.0 +it 05_nuclear 1 100 2030 1900.0 1.0 0.0 +it 06_coal 1 100 2030 0.0 0.0 0.0 +it 07_gas 1 100 2030 0.0 0.0 0.0 +it 08_non-res 1 100 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 100 2030 0.0 0.0 0.0 +it 01_solar 1 101 2030 2000.0 1.0 0.0 +it 02_wind_on 1 101 2030 2000.0 1.0 0.0 +it 03_wind_off 1 101 2030 2000.0 1.0 0.0 +it 04_res 1 101 2030 2000.0 1.0 0.0 +it 05_nuclear 1 101 2030 2000.0 1.0 0.0 +it 06_coal 1 101 2030 0.0 0.0 0.0 +it 07_gas 1 101 2030 0.0 0.0 0.0 +it 08_non-res 1 101 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 101 2030 0.0 0.0 0.0 +it 01_solar 1 102 2030 2000.0 1.0 0.0 +it 02_wind_on 1 102 2030 2000.0 1.0 0.0 +it 03_wind_off 1 102 2030 2000.0 1.0 0.0 +it 04_res 1 102 2030 2000.0 1.0 0.0 +it 05_nuclear 1 102 2030 2000.0 1.0 0.0 +it 06_coal 1 102 2030 100.0 1.0 0.0 +it 07_gas 1 102 2030 0.0 0.0 0.0 +it 08_non-res 1 102 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 102 2030 0.0 0.0 0.0 +it 01_solar 1 103 2030 2000.0 1.0 0.0 +it 02_wind_on 1 103 2030 2000.0 1.0 0.0 +it 03_wind_off 1 103 2030 2000.0 1.0 0.0 +it 04_res 1 103 2030 2000.0 1.0 0.0 +it 05_nuclear 1 103 2030 2000.0 1.0 0.0 +it 06_coal 1 103 2030 200.0 1.0 0.0 +it 07_gas 1 103 2030 0.0 0.0 0.0 +it 08_non-res 1 103 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 103 2030 0.0 0.0 0.0 +it 01_solar 1 104 2030 2000.0 1.0 0.0 +it 02_wind_on 1 104 2030 2000.0 1.0 0.0 +it 03_wind_off 1 104 2030 2000.0 1.0 0.0 +it 04_res 1 104 2030 2000.0 1.0 0.0 +it 05_nuclear 1 104 2030 2000.0 1.0 0.0 +it 06_coal 1 104 2030 300.0 1.0 0.0 +it 07_gas 1 104 2030 0.0 0.0 0.0 +it 08_non-res 1 104 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 104 2030 0.0 0.0 0.0 +it 01_solar 1 105 2030 2000.0 1.0 0.0 +it 02_wind_on 1 105 2030 2000.0 1.0 0.0 +it 03_wind_off 1 105 2030 2000.0 1.0 0.0 +it 04_res 1 105 2030 2000.0 1.0 0.0 +it 05_nuclear 1 105 2030 2000.0 1.0 0.0 +it 06_coal 1 105 2030 400.0 1.0 0.0 +it 07_gas 1 105 2030 0.0 0.0 0.0 +it 08_non-res 1 105 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 105 2030 0.0 0.0 0.0 +it 01_solar 1 106 2030 2000.0 1.0 0.0 +it 02_wind_on 1 106 2030 2000.0 1.0 0.0 +it 03_wind_off 1 106 2030 2000.0 1.0 0.0 +it 04_res 1 106 2030 2000.0 1.0 0.0 +it 05_nuclear 1 106 2030 2000.0 1.0 0.0 +it 06_coal 1 106 2030 500.0 1.0 0.0 +it 07_gas 1 106 2030 0.0 0.0 0.0 +it 08_non-res 1 106 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 106 2030 0.0 0.0 0.0 +it 01_solar 1 107 2030 2000.0 1.0 0.0 +it 02_wind_on 1 107 2030 2000.0 1.0 0.0 +it 03_wind_off 1 107 2030 2000.0 1.0 0.0 +it 04_res 1 107 2030 2000.0 1.0 0.0 +it 05_nuclear 1 107 2030 2000.0 1.0 0.0 +it 06_coal 1 107 2030 600.0 1.0 0.0 +it 07_gas 1 107 2030 0.0 0.0 0.0 +it 08_non-res 1 107 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 107 2030 0.0 0.0 0.0 +it 01_solar 1 108 2030 2000.0 1.0 0.0 +it 02_wind_on 1 108 2030 2000.0 1.0 0.0 +it 03_wind_off 1 108 2030 2000.0 1.0 0.0 +it 04_res 1 108 2030 2000.0 1.0 0.0 +it 05_nuclear 1 108 2030 2000.0 1.0 0.0 +it 06_coal 1 108 2030 700.0 1.0 0.0 +it 07_gas 1 108 2030 0.0 0.0 0.0 +it 08_non-res 1 108 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 108 2030 0.0 0.0 0.0 +it 01_solar 1 109 2030 2000.0 1.0 0.0 +it 02_wind_on 1 109 2030 2000.0 1.0 0.0 +it 03_wind_off 1 109 2030 2000.0 1.0 0.0 +it 04_res 1 109 2030 2000.0 1.0 0.0 +it 05_nuclear 1 109 2030 2000.0 1.0 0.0 +it 06_coal 1 109 2030 800.0 1.0 0.0 +it 07_gas 1 109 2030 0.0 0.0 0.0 +it 08_non-res 1 109 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 109 2030 0.0 0.0 0.0 +it 01_solar 1 110 2030 2000.0 1.0 0.0 +it 02_wind_on 1 110 2030 2000.0 1.0 0.0 +it 03_wind_off 1 110 2030 2000.0 1.0 0.0 +it 04_res 1 110 2030 2000.0 1.0 0.0 +it 05_nuclear 1 110 2030 2000.0 1.0 0.0 +it 06_coal 1 110 2030 900.0 1.0 0.0 +it 07_gas 1 110 2030 0.0 0.0 0.0 +it 08_non-res 1 110 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 110 2030 0.0 0.0 0.0 +it 01_solar 1 111 2030 2000.0 1.0 0.0 +it 02_wind_on 1 111 2030 2000.0 1.0 0.0 +it 03_wind_off 1 111 2030 2000.0 1.0 0.0 +it 04_res 1 111 2030 2000.0 1.0 0.0 +it 05_nuclear 1 111 2030 2000.0 1.0 0.0 +it 06_coal 1 111 2030 1000.0 1.0 0.0 +it 07_gas 1 111 2030 0.0 0.0 0.0 +it 08_non-res 1 111 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 111 2030 0.0 0.0 0.0 +it 01_solar 1 112 2030 2000.0 1.0 0.0 +it 02_wind_on 1 112 2030 2000.0 1.0 0.0 +it 03_wind_off 1 112 2030 2000.0 1.0 0.0 +it 04_res 1 112 2030 2000.0 1.0 0.0 +it 05_nuclear 1 112 2030 2000.0 1.0 0.0 +it 06_coal 1 112 2030 1100.0 1.0 0.0 +it 07_gas 1 112 2030 0.0 0.0 0.0 +it 08_non-res 1 112 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 112 2030 0.0 0.0 0.0 +it 01_solar 1 113 2030 2000.0 1.0 0.0 +it 02_wind_on 1 113 2030 2000.0 1.0 0.0 +it 03_wind_off 1 113 2030 2000.0 1.0 0.0 +it 04_res 1 113 2030 2000.0 1.0 0.0 +it 05_nuclear 1 113 2030 2000.0 1.0 0.0 +it 06_coal 1 113 2030 1200.0 1.0 0.0 +it 07_gas 1 113 2030 0.0 0.0 0.0 +it 08_non-res 1 113 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 113 2030 0.0 0.0 0.0 +it 01_solar 1 114 2030 2000.0 1.0 0.0 +it 02_wind_on 1 114 2030 2000.0 1.0 0.0 +it 03_wind_off 1 114 2030 2000.0 1.0 0.0 +it 04_res 1 114 2030 2000.0 1.0 0.0 +it 05_nuclear 1 114 2030 2000.0 1.0 0.0 +it 06_coal 1 114 2030 1300.0 1.0 0.0 +it 07_gas 1 114 2030 0.0 0.0 0.0 +it 08_non-res 1 114 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 114 2030 0.0 0.0 0.0 +it 01_solar 1 115 2030 2000.0 1.0 0.0 +it 02_wind_on 1 115 2030 2000.0 1.0 0.0 +it 03_wind_off 1 115 2030 2000.0 1.0 0.0 +it 04_res 1 115 2030 2000.0 1.0 0.0 +it 05_nuclear 1 115 2030 2000.0 1.0 0.0 +it 06_coal 1 115 2030 1400.0 1.0 0.0 +it 07_gas 1 115 2030 0.0 0.0 0.0 +it 08_non-res 1 115 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 115 2030 0.0 0.0 0.0 +it 01_solar 1 116 2030 2000.0 1.0 0.0 +it 02_wind_on 1 116 2030 2000.0 1.0 0.0 +it 03_wind_off 1 116 2030 2000.0 1.0 0.0 +it 04_res 1 116 2030 2000.0 1.0 0.0 +it 05_nuclear 1 116 2030 2000.0 1.0 0.0 +it 06_coal 1 116 2030 1500.0 1.0 0.0 +it 07_gas 1 116 2030 0.0 0.0 0.0 +it 08_non-res 1 116 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 116 2030 0.0 0.0 0.0 +it 01_solar 1 117 2030 2000.0 1.0 0.0 +it 02_wind_on 1 117 2030 2000.0 1.0 0.0 +it 03_wind_off 1 117 2030 2000.0 1.0 0.0 +it 04_res 1 117 2030 2000.0 1.0 0.0 +it 05_nuclear 1 117 2030 2000.0 1.0 0.0 +it 06_coal 1 117 2030 1600.0 1.0 0.0 +it 07_gas 1 117 2030 0.0 0.0 0.0 +it 08_non-res 1 117 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 117 2030 0.0 0.0 0.0 +it 01_solar 1 118 2030 2000.0 1.0 0.0 +it 02_wind_on 1 118 2030 2000.0 1.0 0.0 +it 03_wind_off 1 118 2030 2000.0 1.0 0.0 +it 04_res 1 118 2030 2000.0 1.0 0.0 +it 05_nuclear 1 118 2030 2000.0 1.0 0.0 +it 06_coal 1 118 2030 1700.0 1.0 0.0 +it 07_gas 1 118 2030 0.0 0.0 0.0 +it 08_non-res 1 118 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 118 2030 0.0 0.0 0.0 +it 01_solar 1 119 2030 2000.0 1.0 0.0 +it 02_wind_on 1 119 2030 2000.0 1.0 0.0 +it 03_wind_off 1 119 2030 2000.0 1.0 0.0 +it 04_res 1 119 2030 2000.0 1.0 0.0 +it 05_nuclear 1 119 2030 2000.0 1.0 0.0 +it 06_coal 1 119 2030 1800.0 1.0 0.0 +it 07_gas 1 119 2030 0.0 0.0 0.0 +it 08_non-res 1 119 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 119 2030 0.0 0.0 0.0 +it 01_solar 1 120 2030 2000.0 1.0 0.0 +it 02_wind_on 1 120 2030 2000.0 1.0 0.0 +it 03_wind_off 1 120 2030 2000.0 1.0 0.0 +it 04_res 1 120 2030 2000.0 1.0 0.0 +it 05_nuclear 1 120 2030 2000.0 1.0 0.0 +it 06_coal 1 120 2030 1900.0 1.0 0.0 +it 07_gas 1 120 2030 0.0 0.0 0.0 +it 08_non-res 1 120 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 120 2030 0.0 0.0 0.0 +it 01_solar 1 121 2030 2000.0 1.0 0.0 +it 02_wind_on 1 121 2030 2000.0 1.0 0.0 +it 03_wind_off 1 121 2030 2000.0 1.0 0.0 +it 04_res 1 121 2030 2000.0 1.0 0.0 +it 05_nuclear 1 121 2030 2000.0 1.0 0.0 +it 06_coal 1 121 2030 2000.0 1.0 0.0 +it 07_gas 1 121 2030 0.0 0.0 0.0 +it 08_non-res 1 121 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 121 2030 0.0 0.0 0.0 +it 01_solar 1 122 2030 2000.0 1.0 0.0 +it 02_wind_on 1 122 2030 2000.0 1.0 0.0 +it 03_wind_off 1 122 2030 2000.0 1.0 0.0 +it 04_res 1 122 2030 2000.0 1.0 0.0 +it 05_nuclear 1 122 2030 2000.0 1.0 0.0 +it 06_coal 1 122 2030 2000.0 1.0 0.0 +it 07_gas 1 122 2030 100.0 1.0 0.0 +it 08_non-res 1 122 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 122 2030 0.0 0.0 0.0 +it 01_solar 1 123 2030 2000.0 1.0 0.0 +it 02_wind_on 1 123 2030 2000.0 1.0 0.0 +it 03_wind_off 1 123 2030 2000.0 1.0 0.0 +it 04_res 1 123 2030 2000.0 1.0 0.0 +it 05_nuclear 1 123 2030 2000.0 1.0 0.0 +it 06_coal 1 123 2030 2000.0 1.0 0.0 +it 07_gas 1 123 2030 200.0 1.0 0.0 +it 08_non-res 1 123 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 123 2030 0.0 0.0 0.0 +it 01_solar 1 124 2030 2000.0 1.0 0.0 +it 02_wind_on 1 124 2030 2000.0 1.0 0.0 +it 03_wind_off 1 124 2030 2000.0 1.0 0.0 +it 04_res 1 124 2030 2000.0 1.0 0.0 +it 05_nuclear 1 124 2030 2000.0 1.0 0.0 +it 06_coal 1 124 2030 2000.0 1.0 0.0 +it 07_gas 1 124 2030 300.0 1.0 0.0 +it 08_non-res 1 124 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 124 2030 0.0 0.0 0.0 +it 01_solar 1 125 2030 2000.0 1.0 0.0 +it 02_wind_on 1 125 2030 2000.0 1.0 0.0 +it 03_wind_off 1 125 2030 2000.0 1.0 0.0 +it 04_res 1 125 2030 2000.0 1.0 0.0 +it 05_nuclear 1 125 2030 2000.0 1.0 0.0 +it 06_coal 1 125 2030 2000.0 1.0 0.0 +it 07_gas 1 125 2030 400.0 1.0 0.0 +it 08_non-res 1 125 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 125 2030 0.0 0.0 0.0 +it 01_solar 1 126 2030 2000.0 1.0 0.0 +it 02_wind_on 1 126 2030 2000.0 1.0 0.0 +it 03_wind_off 1 126 2030 2000.0 1.0 0.0 +it 04_res 1 126 2030 2000.0 1.0 0.0 +it 05_nuclear 1 126 2030 2000.0 1.0 0.0 +it 06_coal 1 126 2030 2000.0 1.0 0.0 +it 07_gas 1 126 2030 500.0 1.0 0.0 +it 08_non-res 1 126 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 126 2030 0.0 0.0 0.0 +it 01_solar 1 127 2030 2000.0 1.0 0.0 +it 02_wind_on 1 127 2030 2000.0 1.0 0.0 +it 03_wind_off 1 127 2030 2000.0 1.0 0.0 +it 04_res 1 127 2030 2000.0 1.0 0.0 +it 05_nuclear 1 127 2030 2000.0 1.0 0.0 +it 06_coal 1 127 2030 2000.0 1.0 0.0 +it 07_gas 1 127 2030 600.0 1.0 0.0 +it 08_non-res 1 127 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 127 2030 0.0 0.0 0.0 +it 01_solar 1 128 2030 2000.0 1.0 0.0 +it 02_wind_on 1 128 2030 2000.0 1.0 0.0 +it 03_wind_off 1 128 2030 2000.0 1.0 0.0 +it 04_res 1 128 2030 2000.0 1.0 0.0 +it 05_nuclear 1 128 2030 2000.0 1.0 0.0 +it 06_coal 1 128 2030 2000.0 1.0 0.0 +it 07_gas 1 128 2030 700.0 1.0 0.0 +it 08_non-res 1 128 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 128 2030 0.0 0.0 0.0 +it 01_solar 1 129 2030 2000.0 1.0 0.0 +it 02_wind_on 1 129 2030 2000.0 1.0 0.0 +it 03_wind_off 1 129 2030 2000.0 1.0 0.0 +it 04_res 1 129 2030 2000.0 1.0 0.0 +it 05_nuclear 1 129 2030 2000.0 1.0 0.0 +it 06_coal 1 129 2030 2000.0 1.0 0.0 +it 07_gas 1 129 2030 800.0 1.0 0.0 +it 08_non-res 1 129 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 129 2030 0.0 0.0 0.0 +it 01_solar 1 130 2030 2000.0 1.0 0.0 +it 02_wind_on 1 130 2030 2000.0 1.0 0.0 +it 03_wind_off 1 130 2030 2000.0 1.0 0.0 +it 04_res 1 130 2030 2000.0 1.0 0.0 +it 05_nuclear 1 130 2030 2000.0 1.0 0.0 +it 06_coal 1 130 2030 2000.0 1.0 0.0 +it 07_gas 1 130 2030 900.0 1.0 0.0 +it 08_non-res 1 130 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 130 2030 0.0 0.0 0.0 +it 01_solar 1 131 2030 2000.0 1.0 0.0 +it 02_wind_on 1 131 2030 2000.0 1.0 0.0 +it 03_wind_off 1 131 2030 2000.0 1.0 0.0 +it 04_res 1 131 2030 2000.0 1.0 0.0 +it 05_nuclear 1 131 2030 2000.0 1.0 0.0 +it 06_coal 1 131 2030 2000.0 1.0 0.0 +it 07_gas 1 131 2030 1000.0 1.0 0.0 +it 08_non-res 1 131 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 131 2030 0.0 0.0 0.0 +it 01_solar 1 132 2030 2000.0 1.0 0.0 +it 02_wind_on 1 132 2030 2000.0 1.0 0.0 +it 03_wind_off 1 132 2030 2000.0 1.0 0.0 +it 04_res 1 132 2030 2000.0 1.0 0.0 +it 05_nuclear 1 132 2030 2000.0 1.0 0.0 +it 06_coal 1 132 2030 2000.0 1.0 0.0 +it 07_gas 1 132 2030 1100.0 1.0 0.0 +it 08_non-res 1 132 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 132 2030 0.0 0.0 0.0 +it 01_solar 1 133 2030 2000.0 1.0 0.0 +it 02_wind_on 1 133 2030 2000.0 1.0 0.0 +it 03_wind_off 1 133 2030 2000.0 1.0 0.0 +it 04_res 1 133 2030 2000.0 1.0 0.0 +it 05_nuclear 1 133 2030 2000.0 1.0 0.0 +it 06_coal 1 133 2030 2000.0 1.0 0.0 +it 07_gas 1 133 2030 1200.0 1.0 0.0 +it 08_non-res 1 133 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 133 2030 0.0 0.0 0.0 +it 01_solar 1 134 2030 2000.0 1.0 0.0 +it 02_wind_on 1 134 2030 2000.0 1.0 0.0 +it 03_wind_off 1 134 2030 2000.0 1.0 0.0 +it 04_res 1 134 2030 2000.0 1.0 0.0 +it 05_nuclear 1 134 2030 2000.0 1.0 0.0 +it 06_coal 1 134 2030 2000.0 1.0 0.0 +it 07_gas 1 134 2030 1300.0 1.0 0.0 +it 08_non-res 1 134 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 134 2030 0.0 0.0 0.0 +it 01_solar 1 135 2030 2000.0 1.0 0.0 +it 02_wind_on 1 135 2030 2000.0 1.0 0.0 +it 03_wind_off 1 135 2030 2000.0 1.0 0.0 +it 04_res 1 135 2030 2000.0 1.0 0.0 +it 05_nuclear 1 135 2030 2000.0 1.0 0.0 +it 06_coal 1 135 2030 2000.0 1.0 0.0 +it 07_gas 1 135 2030 1400.0 1.0 0.0 +it 08_non-res 1 135 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 135 2030 0.0 0.0 0.0 +it 01_solar 1 136 2030 2000.0 1.0 0.0 +it 02_wind_on 1 136 2030 2000.0 1.0 0.0 +it 03_wind_off 1 136 2030 2000.0 1.0 0.0 +it 04_res 1 136 2030 2000.0 1.0 0.0 +it 05_nuclear 1 136 2030 2000.0 1.0 0.0 +it 06_coal 1 136 2030 2000.0 1.0 0.0 +it 07_gas 1 136 2030 1500.0 1.0 0.0 +it 08_non-res 1 136 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 136 2030 0.0 0.0 0.0 +it 01_solar 1 137 2030 2000.0 1.0 0.0 +it 02_wind_on 1 137 2030 2000.0 1.0 0.0 +it 03_wind_off 1 137 2030 2000.0 1.0 0.0 +it 04_res 1 137 2030 2000.0 1.0 0.0 +it 05_nuclear 1 137 2030 2000.0 1.0 0.0 +it 06_coal 1 137 2030 2000.0 1.0 0.0 +it 07_gas 1 137 2030 1600.0 1.0 0.0 +it 08_non-res 1 137 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 137 2030 0.0 0.0 0.0 +it 01_solar 1 138 2030 2000.0 1.0 0.0 +it 02_wind_on 1 138 2030 2000.0 1.0 0.0 +it 03_wind_off 1 138 2030 2000.0 1.0 0.0 +it 04_res 1 138 2030 2000.0 1.0 0.0 +it 05_nuclear 1 138 2030 2000.0 1.0 0.0 +it 06_coal 1 138 2030 2000.0 1.0 0.0 +it 07_gas 1 138 2030 1700.0 1.0 0.0 +it 08_non-res 1 138 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 138 2030 0.0 0.0 0.0 +it 01_solar 1 139 2030 2000.0 1.0 0.0 +it 02_wind_on 1 139 2030 2000.0 1.0 0.0 +it 03_wind_off 1 139 2030 2000.0 1.0 0.0 +it 04_res 1 139 2030 2000.0 1.0 0.0 +it 05_nuclear 1 139 2030 2000.0 1.0 0.0 +it 06_coal 1 139 2030 2000.0 1.0 0.0 +it 07_gas 1 139 2030 1800.0 1.0 0.0 +it 08_non-res 1 139 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 139 2030 0.0 0.0 0.0 +it 01_solar 1 140 2030 2000.0 1.0 0.0 +it 02_wind_on 1 140 2030 2000.0 1.0 0.0 +it 03_wind_off 1 140 2030 2000.0 1.0 0.0 +it 04_res 1 140 2030 2000.0 1.0 0.0 +it 05_nuclear 1 140 2030 2000.0 1.0 0.0 +it 06_coal 1 140 2030 2000.0 1.0 0.0 +it 07_gas 1 140 2030 1900.0 1.0 0.0 +it 08_non-res 1 140 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 140 2030 0.0 0.0 0.0 +it 01_solar 1 141 2030 2000.0 1.0 0.0 +it 02_wind_on 1 141 2030 2000.0 1.0 0.0 +it 03_wind_off 1 141 2030 2000.0 1.0 0.0 +it 04_res 1 141 2030 2000.0 1.0 0.0 +it 05_nuclear 1 141 2030 2000.0 1.0 0.0 +it 06_coal 1 141 2030 2000.0 1.0 0.0 +it 07_gas 1 141 2030 2000.0 1.0 0.0 +it 08_non-res 1 141 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 141 2030 0.0 0.0 0.0 +it 01_solar 1 142 2030 2000.0 1.0 0.0 +it 02_wind_on 1 142 2030 2000.0 1.0 0.0 +it 03_wind_off 1 142 2030 2000.0 1.0 0.0 +it 04_res 1 142 2030 2000.0 1.0 0.0 +it 05_nuclear 1 142 2030 2000.0 1.0 0.0 +it 06_coal 1 142 2030 2000.0 1.0 0.0 +it 07_gas 1 142 2030 2000.0 1.0 0.0 +it 08_non-res 1 142 2030 100.0 1.0 0.0 +it 09_hydro_pump 1 142 2030 0.0 0.0 0.0 +it 01_solar 1 143 2030 2000.0 1.0 0.0 +it 02_wind_on 1 143 2030 2000.0 1.0 0.0 +it 03_wind_off 1 143 2030 2000.0 1.0 0.0 +it 04_res 1 143 2030 2000.0 1.0 0.0 +it 05_nuclear 1 143 2030 2000.0 1.0 0.0 +it 06_coal 1 143 2030 2000.0 1.0 0.0 +it 07_gas 1 143 2030 2000.0 1.0 0.0 +it 08_non-res 1 143 2030 200.0 1.0 0.0 +it 09_hydro_pump 1 143 2030 0.0 0.0 0.0 +it 01_solar 1 144 2030 2000.0 1.0 0.0 +it 02_wind_on 1 144 2030 2000.0 1.0 0.0 +it 03_wind_off 1 144 2030 2000.0 1.0 0.0 +it 04_res 1 144 2030 2000.0 1.0 0.0 +it 05_nuclear 1 144 2030 2000.0 1.0 0.0 +it 06_coal 1 144 2030 2000.0 1.0 0.0 +it 07_gas 1 144 2030 2000.0 1.0 0.0 +it 08_non-res 1 144 2030 300.0 1.0 0.0 +it 09_hydro_pump 1 144 2030 0.0 0.0 0.0 +it 01_solar 1 145 2030 2000.0 1.0 0.0 +it 02_wind_on 1 145 2030 2000.0 1.0 0.0 +it 03_wind_off 1 145 2030 2000.0 1.0 0.0 +it 04_res 1 145 2030 2000.0 1.0 0.0 +it 05_nuclear 1 145 2030 2000.0 1.0 0.0 +it 06_coal 1 145 2030 2000.0 1.0 0.0 +it 07_gas 1 145 2030 2000.0 1.0 0.0 +it 08_non-res 1 145 2030 400.0 1.0 0.0 +it 09_hydro_pump 1 145 2030 0.0 0.0 0.0 +it 01_solar 1 146 2030 2000.0 1.0 0.0 +it 02_wind_on 1 146 2030 2000.0 1.0 0.0 +it 03_wind_off 1 146 2030 2000.0 1.0 0.0 +it 04_res 1 146 2030 2000.0 1.0 0.0 +it 05_nuclear 1 146 2030 2000.0 1.0 0.0 +it 06_coal 1 146 2030 2000.0 1.0 0.0 +it 07_gas 1 146 2030 2000.0 1.0 0.0 +it 08_non-res 1 146 2030 500.0 1.0 0.0 +it 09_hydro_pump 1 146 2030 0.0 0.0 0.0 +it 01_solar 1 147 2030 2000.0 1.0 0.0 +it 02_wind_on 1 147 2030 2000.0 1.0 0.0 +it 03_wind_off 1 147 2030 2000.0 1.0 0.0 +it 04_res 1 147 2030 2000.0 1.0 0.0 +it 05_nuclear 1 147 2030 2000.0 1.0 0.0 +it 06_coal 1 147 2030 2000.0 1.0 0.0 +it 07_gas 1 147 2030 2000.0 1.0 0.0 +it 08_non-res 1 147 2030 600.0 1.0 0.0 +it 09_hydro_pump 1 147 2030 0.0 0.0 0.0 +it 01_solar 1 148 2030 2000.0 1.0 0.0 +it 02_wind_on 1 148 2030 2000.0 1.0 0.0 +it 03_wind_off 1 148 2030 2000.0 1.0 0.0 +it 04_res 1 148 2030 2000.0 1.0 0.0 +it 05_nuclear 1 148 2030 2000.0 1.0 0.0 +it 06_coal 1 148 2030 2000.0 1.0 0.0 +it 07_gas 1 148 2030 2000.0 1.0 0.0 +it 08_non-res 1 148 2030 700.0 1.0 0.0 +it 09_hydro_pump 1 148 2030 0.0 0.0 0.0 +it 01_solar 1 149 2030 2000.0 1.0 0.0 +it 02_wind_on 1 149 2030 2000.0 1.0 0.0 +it 03_wind_off 1 149 2030 2000.0 1.0 0.0 +it 04_res 1 149 2030 2000.0 1.0 0.0 +it 05_nuclear 1 149 2030 2000.0 1.0 0.0 +it 06_coal 1 149 2030 2000.0 1.0 0.0 +it 07_gas 1 149 2030 2000.0 1.0 0.0 +it 08_non-res 1 149 2030 800.0 1.0 0.0 +it 09_hydro_pump 1 149 2030 0.0 0.0 0.0 +it 01_solar 1 150 2030 2000.0 1.0 0.0 +it 02_wind_on 1 150 2030 2000.0 1.0 0.0 +it 03_wind_off 1 150 2030 2000.0 1.0 0.0 +it 04_res 1 150 2030 2000.0 1.0 0.0 +it 05_nuclear 1 150 2030 2000.0 1.0 0.0 +it 06_coal 1 150 2030 2000.0 1.0 0.0 +it 07_gas 1 150 2030 2000.0 1.0 0.0 +it 08_non-res 1 150 2030 900.0 1.0 0.0 +it 09_hydro_pump 1 150 2030 0.0 0.0 0.0 +it 01_solar 1 151 2030 2000.0 1.0 0.0 +it 02_wind_on 1 151 2030 2000.0 1.0 0.0 +it 03_wind_off 1 151 2030 2000.0 1.0 0.0 +it 04_res 1 151 2030 2000.0 1.0 0.0 +it 05_nuclear 1 151 2030 2000.0 1.0 0.0 +it 06_coal 1 151 2030 2000.0 1.0 0.0 +it 07_gas 1 151 2030 2000.0 1.0 0.0 +it 08_non-res 1 151 2030 1000.0 1.0 0.0 +it 09_hydro_pump 1 151 2030 0.0 0.0 0.0 +it 01_solar 1 152 2030 2000.0 1.0 0.0 +it 02_wind_on 1 152 2030 2000.0 1.0 0.0 +it 03_wind_off 1 152 2030 2000.0 1.0 0.0 +it 04_res 1 152 2030 2000.0 1.0 0.0 +it 05_nuclear 1 152 2030 2000.0 1.0 0.0 +it 06_coal 1 152 2030 2000.0 1.0 0.0 +it 07_gas 1 152 2030 2000.0 1.0 0.0 +it 08_non-res 1 152 2030 1100.0 1.0 0.0 +it 09_hydro_pump 1 152 2030 0.0 0.0 0.0 +it 01_solar 1 153 2030 2000.0 1.0 0.0 +it 02_wind_on 1 153 2030 2000.0 1.0 0.0 +it 03_wind_off 1 153 2030 2000.0 1.0 0.0 +it 04_res 1 153 2030 2000.0 1.0 0.0 +it 05_nuclear 1 153 2030 2000.0 1.0 0.0 +it 06_coal 1 153 2030 2000.0 1.0 0.0 +it 07_gas 1 153 2030 2000.0 1.0 0.0 +it 08_non-res 1 153 2030 1200.0 1.0 0.0 +it 09_hydro_pump 1 153 2030 0.0 0.0 0.0 +it 01_solar 1 154 2030 2000.0 1.0 0.0 +it 02_wind_on 1 154 2030 2000.0 1.0 0.0 +it 03_wind_off 1 154 2030 2000.0 1.0 0.0 +it 04_res 1 154 2030 2000.0 1.0 0.0 +it 05_nuclear 1 154 2030 2000.0 1.0 0.0 +it 06_coal 1 154 2030 2000.0 1.0 0.0 +it 07_gas 1 154 2030 2000.0 1.0 0.0 +it 08_non-res 1 154 2030 1300.0 1.0 0.0 +it 09_hydro_pump 1 154 2030 0.0 0.0 0.0 +it 01_solar 1 155 2030 2000.0 1.0 0.0 +it 02_wind_on 1 155 2030 2000.0 1.0 0.0 +it 03_wind_off 1 155 2030 2000.0 1.0 0.0 +it 04_res 1 155 2030 2000.0 1.0 0.0 +it 05_nuclear 1 155 2030 2000.0 1.0 0.0 +it 06_coal 1 155 2030 2000.0 1.0 0.0 +it 07_gas 1 155 2030 2000.0 1.0 0.0 +it 08_non-res 1 155 2030 1400.0 1.0 0.0 +it 09_hydro_pump 1 155 2030 0.0 0.0 0.0 +it 01_solar 1 156 2030 2000.0 1.0 0.0 +it 02_wind_on 1 156 2030 2000.0 1.0 0.0 +it 03_wind_off 1 156 2030 2000.0 1.0 0.0 +it 04_res 1 156 2030 2000.0 1.0 0.0 +it 05_nuclear 1 156 2030 2000.0 1.0 0.0 +it 06_coal 1 156 2030 2000.0 1.0 0.0 +it 07_gas 1 156 2030 2000.0 1.0 0.0 +it 08_non-res 1 156 2030 1500.0 1.0 0.0 +it 09_hydro_pump 1 156 2030 0.0 0.0 0.0 +it 01_solar 1 157 2030 2000.0 1.0 0.0 +it 02_wind_on 1 157 2030 2000.0 1.0 0.0 +it 03_wind_off 1 157 2030 2000.0 1.0 0.0 +it 04_res 1 157 2030 2000.0 1.0 0.0 +it 05_nuclear 1 157 2030 2000.0 1.0 0.0 +it 06_coal 1 157 2030 2000.0 1.0 0.0 +it 07_gas 1 157 2030 2000.0 1.0 0.0 +it 08_non-res 1 157 2030 1600.0 1.0 0.0 +it 09_hydro_pump 1 157 2030 0.0 0.0 0.0 +it 01_solar 1 158 2030 2000.0 1.0 0.0 +it 02_wind_on 1 158 2030 2000.0 1.0 0.0 +it 03_wind_off 1 158 2030 2000.0 1.0 0.0 +it 04_res 1 158 2030 2000.0 1.0 0.0 +it 05_nuclear 1 158 2030 2000.0 1.0 0.0 +it 06_coal 1 158 2030 2000.0 1.0 0.0 +it 07_gas 1 158 2030 2000.0 1.0 0.0 +it 08_non-res 1 158 2030 1700.0 1.0 0.0 +it 09_hydro_pump 1 158 2030 0.0 0.0 0.0 +it 01_solar 1 159 2030 2000.0 1.0 0.0 +it 02_wind_on 1 159 2030 2000.0 1.0 0.0 +it 03_wind_off 1 159 2030 2000.0 1.0 0.0 +it 04_res 1 159 2030 2000.0 1.0 0.0 +it 05_nuclear 1 159 2030 2000.0 1.0 0.0 +it 06_coal 1 159 2030 2000.0 1.0 0.0 +it 07_gas 1 159 2030 2000.0 1.0 0.0 +it 08_non-res 1 159 2030 1800.0 1.0 0.0 +it 09_hydro_pump 1 159 2030 0.0 0.0 0.0 +it 01_solar 1 160 2030 2000.0 1.0 0.0 +it 02_wind_on 1 160 2030 2000.0 1.0 0.0 +it 03_wind_off 1 160 2030 2000.0 1.0 0.0 +it 04_res 1 160 2030 2000.0 1.0 0.0 +it 05_nuclear 1 160 2030 2000.0 1.0 0.0 +it 06_coal 1 160 2030 2000.0 1.0 0.0 +it 07_gas 1 160 2030 2000.0 1.0 0.0 +it 08_non-res 1 160 2030 1900.0 1.0 0.0 +it 09_hydro_pump 1 160 2030 0.0 0.0 0.0 +it 01_solar 1 161 2030 2000.0 1.0 0.0 +it 02_wind_on 1 161 2030 2000.0 1.0 0.0 +it 03_wind_off 1 161 2030 2000.0 1.0 0.0 +it 04_res 1 161 2030 2000.0 1.0 0.0 +it 05_nuclear 1 161 2030 2000.0 1.0 0.0 +it 06_coal 1 161 2030 2000.0 1.0 0.0 +it 07_gas 1 161 2030 2000.0 1.0 0.0 +it 08_non-res 1 161 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 161 2030 0.0 0.0 0.0 +it 01_solar 1 162 2030 2000.0 1.0 0.0 +it 02_wind_on 1 162 2030 2000.0 1.0 0.0 +it 03_wind_off 1 162 2030 2000.0 1.0 0.0 +it 04_res 1 162 2030 2000.0 1.0 0.0 +it 05_nuclear 1 162 2030 2000.0 1.0 0.0 +it 06_coal 1 162 2030 2000.0 1.0 0.0 +it 07_gas 1 162 2030 2000.0 1.0 0.0 +it 08_non-res 1 162 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 162 2030 100.0 1.0 0.0 +it 01_solar 1 163 2030 2000.0 1.0 0.0 +it 02_wind_on 1 163 2030 2000.0 1.0 0.0 +it 03_wind_off 1 163 2030 2000.0 1.0 0.0 +it 04_res 1 163 2030 2000.0 1.0 0.0 +it 05_nuclear 1 163 2030 2000.0 1.0 0.0 +it 06_coal 1 163 2030 2000.0 1.0 0.0 +it 07_gas 1 163 2030 2000.0 1.0 0.0 +it 08_non-res 1 163 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 163 2030 200.0 1.0 0.0 +it 01_solar 1 164 2030 2000.0 1.0 0.0 +it 02_wind_on 1 164 2030 2000.0 1.0 0.0 +it 03_wind_off 1 164 2030 2000.0 1.0 0.0 +it 04_res 1 164 2030 2000.0 1.0 0.0 +it 05_nuclear 1 164 2030 2000.0 1.0 0.0 +it 06_coal 1 164 2030 2000.0 1.0 0.0 +it 07_gas 1 164 2030 2000.0 1.0 0.0 +it 08_non-res 1 164 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 164 2030 300.0 1.0 0.0 +it 01_solar 1 165 2030 2000.0 1.0 0.0 +it 02_wind_on 1 165 2030 2000.0 1.0 0.0 +it 03_wind_off 1 165 2030 2000.0 1.0 0.0 +it 04_res 1 165 2030 2000.0 1.0 0.0 +it 05_nuclear 1 165 2030 2000.0 1.0 0.0 +it 06_coal 1 165 2030 2000.0 1.0 0.0 +it 07_gas 1 165 2030 2000.0 1.0 0.0 +it 08_non-res 1 165 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 165 2030 400.0 1.0 0.0 +it 01_solar 1 166 2030 2000.0 1.0 0.0 +it 02_wind_on 1 166 2030 2000.0 1.0 0.0 +it 03_wind_off 1 166 2030 2000.0 1.0 0.0 +it 04_res 1 166 2030 2000.0 1.0 0.0 +it 05_nuclear 1 166 2030 2000.0 1.0 0.0 +it 06_coal 1 166 2030 2000.0 1.0 0.0 +it 07_gas 1 166 2030 2000.0 1.0 0.0 +it 08_non-res 1 166 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 166 2030 500.0 1.0 0.0 +it 01_solar 1 167 2030 2000.0 1.0 0.0 +it 02_wind_on 1 167 2030 2000.0 1.0 0.0 +it 03_wind_off 1 167 2030 2000.0 1.0 0.0 +it 04_res 1 167 2030 2000.0 1.0 0.0 +it 05_nuclear 1 167 2030 2000.0 1.0 0.0 +it 06_coal 1 167 2030 2000.0 1.0 0.0 +it 07_gas 1 167 2030 2000.0 1.0 0.0 +it 08_non-res 1 167 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 167 2030 600.0 1.0 0.0 +it 01_solar 1 168 2030 2000.0 1.0 0.0 +it 02_wind_on 1 168 2030 2000.0 1.0 0.0 +it 03_wind_off 1 168 2030 2000.0 1.0 0.0 +it 04_res 1 168 2030 2000.0 1.0 0.0 +it 05_nuclear 1 168 2030 2000.0 1.0 0.0 +it 06_coal 1 168 2030 2000.0 1.0 0.0 +it 07_gas 1 168 2030 2000.0 1.0 0.0 +it 08_non-res 1 168 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 168 2030 700.0 1.0 0.0 +it 01_solar 1 169 2030 0.0 0.0 0.0 +it 02_wind_on 1 169 2030 0.0 0.0 0.0 +it 03_wind_off 1 169 2030 0.0 0.0 0.0 +it 04_res 1 169 2030 0.0 0.0 0.0 +it 05_nuclear 1 169 2030 0.0 0.0 0.0 +it 06_coal 1 169 2030 0.0 0.0 0.0 +it 07_gas 1 169 2030 0.0 0.0 0.0 +it 08_non-res 1 169 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 169 2030 0.0 0.0 0.0 +it 01_solar 1 170 2030 100.0 1.0 0.0 +it 02_wind_on 1 170 2030 0.0 0.0 0.0 +it 03_wind_off 1 170 2030 0.0 0.0 0.0 +it 04_res 1 170 2030 0.0 0.0 0.0 +it 05_nuclear 1 170 2030 0.0 0.0 0.0 +it 06_coal 1 170 2030 0.0 0.0 0.0 +it 07_gas 1 170 2030 0.0 0.0 0.0 +it 08_non-res 1 170 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 170 2030 0.0 0.0 0.0 +it 01_solar 1 171 2030 200.0 1.0 0.0 +it 02_wind_on 1 171 2030 0.0 0.0 0.0 +it 03_wind_off 1 171 2030 0.0 0.0 0.0 +it 04_res 1 171 2030 0.0 0.0 0.0 +it 05_nuclear 1 171 2030 0.0 0.0 0.0 +it 06_coal 1 171 2030 0.0 0.0 0.0 +it 07_gas 1 171 2030 0.0 0.0 0.0 +it 08_non-res 1 171 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 171 2030 0.0 0.0 0.0 +it 01_solar 1 172 2030 300.0 1.0 0.0 +it 02_wind_on 1 172 2030 0.0 0.0 0.0 +it 03_wind_off 1 172 2030 0.0 0.0 0.0 +it 04_res 1 172 2030 0.0 0.0 0.0 +it 05_nuclear 1 172 2030 0.0 0.0 0.0 +it 06_coal 1 172 2030 0.0 0.0 0.0 +it 07_gas 1 172 2030 0.0 0.0 0.0 +it 08_non-res 1 172 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 172 2030 0.0 0.0 0.0 +it 01_solar 1 173 2030 400.0 1.0 0.0 +it 02_wind_on 1 173 2030 0.0 0.0 0.0 +it 03_wind_off 1 173 2030 0.0 0.0 0.0 +it 04_res 1 173 2030 0.0 0.0 0.0 +it 05_nuclear 1 173 2030 0.0 0.0 0.0 +it 06_coal 1 173 2030 0.0 0.0 0.0 +it 07_gas 1 173 2030 0.0 0.0 0.0 +it 08_non-res 1 173 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 173 2030 0.0 0.0 0.0 +it 01_solar 1 174 2030 500.0 1.0 0.0 +it 02_wind_on 1 174 2030 0.0 0.0 0.0 +it 03_wind_off 1 174 2030 0.0 0.0 0.0 +it 04_res 1 174 2030 0.0 0.0 0.0 +it 05_nuclear 1 174 2030 0.0 0.0 0.0 +it 06_coal 1 174 2030 0.0 0.0 0.0 +it 07_gas 1 174 2030 0.0 0.0 0.0 +it 08_non-res 1 174 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 174 2030 0.0 0.0 0.0 +it 01_solar 1 175 2030 600.0 1.0 0.0 +it 02_wind_on 1 175 2030 0.0 0.0 0.0 +it 03_wind_off 1 175 2030 0.0 0.0 0.0 +it 04_res 1 175 2030 0.0 0.0 0.0 +it 05_nuclear 1 175 2030 0.0 0.0 0.0 +it 06_coal 1 175 2030 0.0 0.0 0.0 +it 07_gas 1 175 2030 0.0 0.0 0.0 +it 08_non-res 1 175 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 175 2030 0.0 0.0 0.0 +it 01_solar 1 176 2030 700.0 1.0 0.0 +it 02_wind_on 1 176 2030 0.0 0.0 0.0 +it 03_wind_off 1 176 2030 0.0 0.0 0.0 +it 04_res 1 176 2030 0.0 0.0 0.0 +it 05_nuclear 1 176 2030 0.0 0.0 0.0 +it 06_coal 1 176 2030 0.0 0.0 0.0 +it 07_gas 1 176 2030 0.0 0.0 0.0 +it 08_non-res 1 176 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 176 2030 0.0 0.0 0.0 +it 01_solar 1 177 2030 800.0 1.0 0.0 +it 02_wind_on 1 177 2030 0.0 0.0 0.0 +it 03_wind_off 1 177 2030 0.0 0.0 0.0 +it 04_res 1 177 2030 0.0 0.0 0.0 +it 05_nuclear 1 177 2030 0.0 0.0 0.0 +it 06_coal 1 177 2030 0.0 0.0 0.0 +it 07_gas 1 177 2030 0.0 0.0 0.0 +it 08_non-res 1 177 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 177 2030 0.0 0.0 0.0 +it 01_solar 1 178 2030 900.0 1.0 0.0 +it 02_wind_on 1 178 2030 0.0 0.0 0.0 +it 03_wind_off 1 178 2030 0.0 0.0 0.0 +it 04_res 1 178 2030 0.0 0.0 0.0 +it 05_nuclear 1 178 2030 0.0 0.0 0.0 +it 06_coal 1 178 2030 0.0 0.0 0.0 +it 07_gas 1 178 2030 0.0 0.0 0.0 +it 08_non-res 1 178 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 178 2030 0.0 0.0 0.0 +it 01_solar 1 179 2030 1000.0 1.0 0.0 +it 02_wind_on 1 179 2030 0.0 0.0 0.0 +it 03_wind_off 1 179 2030 0.0 0.0 0.0 +it 04_res 1 179 2030 0.0 0.0 0.0 +it 05_nuclear 1 179 2030 0.0 0.0 0.0 +it 06_coal 1 179 2030 0.0 0.0 0.0 +it 07_gas 1 179 2030 0.0 0.0 0.0 +it 08_non-res 1 179 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 179 2030 0.0 0.0 0.0 +it 01_solar 1 180 2030 1100.0 1.0 0.0 +it 02_wind_on 1 180 2030 0.0 0.0 0.0 +it 03_wind_off 1 180 2030 0.0 0.0 0.0 +it 04_res 1 180 2030 0.0 0.0 0.0 +it 05_nuclear 1 180 2030 0.0 0.0 0.0 +it 06_coal 1 180 2030 0.0 0.0 0.0 +it 07_gas 1 180 2030 0.0 0.0 0.0 +it 08_non-res 1 180 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 180 2030 0.0 0.0 0.0 +it 01_solar 1 181 2030 1200.0 1.0 0.0 +it 02_wind_on 1 181 2030 0.0 0.0 0.0 +it 03_wind_off 1 181 2030 0.0 0.0 0.0 +it 04_res 1 181 2030 0.0 0.0 0.0 +it 05_nuclear 1 181 2030 0.0 0.0 0.0 +it 06_coal 1 181 2030 0.0 0.0 0.0 +it 07_gas 1 181 2030 0.0 0.0 0.0 +it 08_non-res 1 181 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 181 2030 0.0 0.0 0.0 +it 01_solar 1 182 2030 1300.0 1.0 0.0 +it 02_wind_on 1 182 2030 0.0 0.0 0.0 +it 03_wind_off 1 182 2030 0.0 0.0 0.0 +it 04_res 1 182 2030 0.0 0.0 0.0 +it 05_nuclear 1 182 2030 0.0 0.0 0.0 +it 06_coal 1 182 2030 0.0 0.0 0.0 +it 07_gas 1 182 2030 0.0 0.0 0.0 +it 08_non-res 1 182 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 182 2030 0.0 0.0 0.0 +it 01_solar 1 183 2030 1400.0 1.0 0.0 +it 02_wind_on 1 183 2030 0.0 0.0 0.0 +it 03_wind_off 1 183 2030 0.0 0.0 0.0 +it 04_res 1 183 2030 0.0 0.0 0.0 +it 05_nuclear 1 183 2030 0.0 0.0 0.0 +it 06_coal 1 183 2030 0.0 0.0 0.0 +it 07_gas 1 183 2030 0.0 0.0 0.0 +it 08_non-res 1 183 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 183 2030 0.0 0.0 0.0 +it 01_solar 1 184 2030 1500.0 1.0 0.0 +it 02_wind_on 1 184 2030 0.0 0.0 0.0 +it 03_wind_off 1 184 2030 0.0 0.0 0.0 +it 04_res 1 184 2030 0.0 0.0 0.0 +it 05_nuclear 1 184 2030 0.0 0.0 0.0 +it 06_coal 1 184 2030 0.0 0.0 0.0 +it 07_gas 1 184 2030 0.0 0.0 0.0 +it 08_non-res 1 184 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 184 2030 0.0 0.0 0.0 +it 01_solar 1 185 2030 1600.0 1.0 0.0 +it 02_wind_on 1 185 2030 0.0 0.0 0.0 +it 03_wind_off 1 185 2030 0.0 0.0 0.0 +it 04_res 1 185 2030 0.0 0.0 0.0 +it 05_nuclear 1 185 2030 0.0 0.0 0.0 +it 06_coal 1 185 2030 0.0 0.0 0.0 +it 07_gas 1 185 2030 0.0 0.0 0.0 +it 08_non-res 1 185 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 185 2030 0.0 0.0 0.0 +it 01_solar 1 186 2030 1700.0 1.0 0.0 +it 02_wind_on 1 186 2030 0.0 0.0 0.0 +it 03_wind_off 1 186 2030 0.0 0.0 0.0 +it 04_res 1 186 2030 0.0 0.0 0.0 +it 05_nuclear 1 186 2030 0.0 0.0 0.0 +it 06_coal 1 186 2030 0.0 0.0 0.0 +it 07_gas 1 186 2030 0.0 0.0 0.0 +it 08_non-res 1 186 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 186 2030 0.0 0.0 0.0 +it 01_solar 1 187 2030 1800.0 1.0 0.0 +it 02_wind_on 1 187 2030 0.0 0.0 0.0 +it 03_wind_off 1 187 2030 0.0 0.0 0.0 +it 04_res 1 187 2030 0.0 0.0 0.0 +it 05_nuclear 1 187 2030 0.0 0.0 0.0 +it 06_coal 1 187 2030 0.0 0.0 0.0 +it 07_gas 1 187 2030 0.0 0.0 0.0 +it 08_non-res 1 187 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 187 2030 0.0 0.0 0.0 +it 01_solar 1 188 2030 1900.0 1.0 0.0 +it 02_wind_on 1 188 2030 0.0 0.0 0.0 +it 03_wind_off 1 188 2030 0.0 0.0 0.0 +it 04_res 1 188 2030 0.0 0.0 0.0 +it 05_nuclear 1 188 2030 0.0 0.0 0.0 +it 06_coal 1 188 2030 0.0 0.0 0.0 +it 07_gas 1 188 2030 0.0 0.0 0.0 +it 08_non-res 1 188 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 188 2030 0.0 0.0 0.0 +it 01_solar 1 189 2030 2000.0 1.0 0.0 +it 02_wind_on 1 189 2030 0.0 0.0 0.0 +it 03_wind_off 1 189 2030 0.0 0.0 0.0 +it 04_res 1 189 2030 0.0 0.0 0.0 +it 05_nuclear 1 189 2030 0.0 0.0 0.0 +it 06_coal 1 189 2030 0.0 0.0 0.0 +it 07_gas 1 189 2030 0.0 0.0 0.0 +it 08_non-res 1 189 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 189 2030 0.0 0.0 0.0 +it 01_solar 1 190 2030 2000.0 1.0 0.0 +it 02_wind_on 1 190 2030 100.0 1.0 0.0 +it 03_wind_off 1 190 2030 0.0 0.0 0.0 +it 04_res 1 190 2030 0.0 0.0 0.0 +it 05_nuclear 1 190 2030 0.0 0.0 0.0 +it 06_coal 1 190 2030 0.0 0.0 0.0 +it 07_gas 1 190 2030 0.0 0.0 0.0 +it 08_non-res 1 190 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 190 2030 0.0 0.0 0.0 +it 01_solar 1 191 2030 2000.0 1.0 0.0 +it 02_wind_on 1 191 2030 200.0 1.0 0.0 +it 03_wind_off 1 191 2030 0.0 0.0 0.0 +it 04_res 1 191 2030 0.0 0.0 0.0 +it 05_nuclear 1 191 2030 0.0 0.0 0.0 +it 06_coal 1 191 2030 0.0 0.0 0.0 +it 07_gas 1 191 2030 0.0 0.0 0.0 +it 08_non-res 1 191 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 191 2030 0.0 0.0 0.0 +it 01_solar 1 192 2030 2000.0 1.0 0.0 +it 02_wind_on 1 192 2030 300.0 1.0 0.0 +it 03_wind_off 1 192 2030 0.0 0.0 0.0 +it 04_res 1 192 2030 0.0 0.0 0.0 +it 05_nuclear 1 192 2030 0.0 0.0 0.0 +it 06_coal 1 192 2030 0.0 0.0 0.0 +it 07_gas 1 192 2030 0.0 0.0 0.0 +it 08_non-res 1 192 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 192 2030 0.0 0.0 0.0 +it 01_solar 1 193 2030 2000.0 1.0 0.0 +it 02_wind_on 1 193 2030 400.0 1.0 0.0 +it 03_wind_off 1 193 2030 0.0 0.0 0.0 +it 04_res 1 193 2030 0.0 0.0 0.0 +it 05_nuclear 1 193 2030 0.0 0.0 0.0 +it 06_coal 1 193 2030 0.0 0.0 0.0 +it 07_gas 1 193 2030 0.0 0.0 0.0 +it 08_non-res 1 193 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 193 2030 0.0 0.0 0.0 +it 01_solar 1 194 2030 2000.0 1.0 0.0 +it 02_wind_on 1 194 2030 500.0 1.0 0.0 +it 03_wind_off 1 194 2030 0.0 0.0 0.0 +it 04_res 1 194 2030 0.0 0.0 0.0 +it 05_nuclear 1 194 2030 0.0 0.0 0.0 +it 06_coal 1 194 2030 0.0 0.0 0.0 +it 07_gas 1 194 2030 0.0 0.0 0.0 +it 08_non-res 1 194 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 194 2030 0.0 0.0 0.0 +it 01_solar 1 195 2030 2000.0 1.0 0.0 +it 02_wind_on 1 195 2030 600.0 1.0 0.0 +it 03_wind_off 1 195 2030 0.0 0.0 0.0 +it 04_res 1 195 2030 0.0 0.0 0.0 +it 05_nuclear 1 195 2030 0.0 0.0 0.0 +it 06_coal 1 195 2030 0.0 0.0 0.0 +it 07_gas 1 195 2030 0.0 0.0 0.0 +it 08_non-res 1 195 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 195 2030 0.0 0.0 0.0 +it 01_solar 1 196 2030 2000.0 1.0 0.0 +it 02_wind_on 1 196 2030 700.0 1.0 0.0 +it 03_wind_off 1 196 2030 0.0 0.0 0.0 +it 04_res 1 196 2030 0.0 0.0 0.0 +it 05_nuclear 1 196 2030 0.0 0.0 0.0 +it 06_coal 1 196 2030 0.0 0.0 0.0 +it 07_gas 1 196 2030 0.0 0.0 0.0 +it 08_non-res 1 196 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 196 2030 0.0 0.0 0.0 +it 01_solar 1 197 2030 2000.0 1.0 0.0 +it 02_wind_on 1 197 2030 800.0 1.0 0.0 +it 03_wind_off 1 197 2030 0.0 0.0 0.0 +it 04_res 1 197 2030 0.0 0.0 0.0 +it 05_nuclear 1 197 2030 0.0 0.0 0.0 +it 06_coal 1 197 2030 0.0 0.0 0.0 +it 07_gas 1 197 2030 0.0 0.0 0.0 +it 08_non-res 1 197 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 197 2030 0.0 0.0 0.0 +it 01_solar 1 198 2030 2000.0 1.0 0.0 +it 02_wind_on 1 198 2030 900.0 1.0 0.0 +it 03_wind_off 1 198 2030 0.0 0.0 0.0 +it 04_res 1 198 2030 0.0 0.0 0.0 +it 05_nuclear 1 198 2030 0.0 0.0 0.0 +it 06_coal 1 198 2030 0.0 0.0 0.0 +it 07_gas 1 198 2030 0.0 0.0 0.0 +it 08_non-res 1 198 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 198 2030 0.0 0.0 0.0 +it 01_solar 1 199 2030 2000.0 1.0 0.0 +it 02_wind_on 1 199 2030 1000.0 1.0 0.0 +it 03_wind_off 1 199 2030 0.0 0.0 0.0 +it 04_res 1 199 2030 0.0 0.0 0.0 +it 05_nuclear 1 199 2030 0.0 0.0 0.0 +it 06_coal 1 199 2030 0.0 0.0 0.0 +it 07_gas 1 199 2030 0.0 0.0 0.0 +it 08_non-res 1 199 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 199 2030 0.0 0.0 0.0 +it 01_solar 1 200 2030 2000.0 1.0 0.0 +it 02_wind_on 1 200 2030 1100.0 1.0 0.0 +it 03_wind_off 1 200 2030 0.0 0.0 0.0 +it 04_res 1 200 2030 0.0 0.0 0.0 +it 05_nuclear 1 200 2030 0.0 0.0 0.0 +it 06_coal 1 200 2030 0.0 0.0 0.0 +it 07_gas 1 200 2030 0.0 0.0 0.0 +it 08_non-res 1 200 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 200 2030 0.0 0.0 0.0 +it 01_solar 1 201 2030 2000.0 1.0 0.0 +it 02_wind_on 1 201 2030 1200.0 1.0 0.0 +it 03_wind_off 1 201 2030 0.0 0.0 0.0 +it 04_res 1 201 2030 0.0 0.0 0.0 +it 05_nuclear 1 201 2030 0.0 0.0 0.0 +it 06_coal 1 201 2030 0.0 0.0 0.0 +it 07_gas 1 201 2030 0.0 0.0 0.0 +it 08_non-res 1 201 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 201 2030 0.0 0.0 0.0 +it 01_solar 1 202 2030 2000.0 1.0 0.0 +it 02_wind_on 1 202 2030 1300.0 1.0 0.0 +it 03_wind_off 1 202 2030 0.0 0.0 0.0 +it 04_res 1 202 2030 0.0 0.0 0.0 +it 05_nuclear 1 202 2030 0.0 0.0 0.0 +it 06_coal 1 202 2030 0.0 0.0 0.0 +it 07_gas 1 202 2030 0.0 0.0 0.0 +it 08_non-res 1 202 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 202 2030 0.0 0.0 0.0 +it 01_solar 1 203 2030 2000.0 1.0 0.0 +it 02_wind_on 1 203 2030 1400.0 1.0 0.0 +it 03_wind_off 1 203 2030 0.0 0.0 0.0 +it 04_res 1 203 2030 0.0 0.0 0.0 +it 05_nuclear 1 203 2030 0.0 0.0 0.0 +it 06_coal 1 203 2030 0.0 0.0 0.0 +it 07_gas 1 203 2030 0.0 0.0 0.0 +it 08_non-res 1 203 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 203 2030 0.0 0.0 0.0 +it 01_solar 1 204 2030 2000.0 1.0 0.0 +it 02_wind_on 1 204 2030 1500.0 1.0 0.0 +it 03_wind_off 1 204 2030 0.0 0.0 0.0 +it 04_res 1 204 2030 0.0 0.0 0.0 +it 05_nuclear 1 204 2030 0.0 0.0 0.0 +it 06_coal 1 204 2030 0.0 0.0 0.0 +it 07_gas 1 204 2030 0.0 0.0 0.0 +it 08_non-res 1 204 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 204 2030 0.0 0.0 0.0 +it 01_solar 1 205 2030 2000.0 1.0 0.0 +it 02_wind_on 1 205 2030 1600.0 1.0 0.0 +it 03_wind_off 1 205 2030 0.0 0.0 0.0 +it 04_res 1 205 2030 0.0 0.0 0.0 +it 05_nuclear 1 205 2030 0.0 0.0 0.0 +it 06_coal 1 205 2030 0.0 0.0 0.0 +it 07_gas 1 205 2030 0.0 0.0 0.0 +it 08_non-res 1 205 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 205 2030 0.0 0.0 0.0 +it 01_solar 1 206 2030 2000.0 1.0 0.0 +it 02_wind_on 1 206 2030 1700.0 1.0 0.0 +it 03_wind_off 1 206 2030 0.0 0.0 0.0 +it 04_res 1 206 2030 0.0 0.0 0.0 +it 05_nuclear 1 206 2030 0.0 0.0 0.0 +it 06_coal 1 206 2030 0.0 0.0 0.0 +it 07_gas 1 206 2030 0.0 0.0 0.0 +it 08_non-res 1 206 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 206 2030 0.0 0.0 0.0 +it 01_solar 1 207 2030 2000.0 1.0 0.0 +it 02_wind_on 1 207 2030 1800.0 1.0 0.0 +it 03_wind_off 1 207 2030 0.0 0.0 0.0 +it 04_res 1 207 2030 0.0 0.0 0.0 +it 05_nuclear 1 207 2030 0.0 0.0 0.0 +it 06_coal 1 207 2030 0.0 0.0 0.0 +it 07_gas 1 207 2030 0.0 0.0 0.0 +it 08_non-res 1 207 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 207 2030 0.0 0.0 0.0 +it 01_solar 1 208 2030 2000.0 1.0 0.0 +it 02_wind_on 1 208 2030 1900.0 1.0 0.0 +it 03_wind_off 1 208 2030 0.0 0.0 0.0 +it 04_res 1 208 2030 0.0 0.0 0.0 +it 05_nuclear 1 208 2030 0.0 0.0 0.0 +it 06_coal 1 208 2030 0.0 0.0 0.0 +it 07_gas 1 208 2030 0.0 0.0 0.0 +it 08_non-res 1 208 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 208 2030 0.0 0.0 0.0 +it 01_solar 1 209 2030 2000.0 1.0 0.0 +it 02_wind_on 1 209 2030 2000.0 1.0 0.0 +it 03_wind_off 1 209 2030 0.0 0.0 0.0 +it 04_res 1 209 2030 0.0 0.0 0.0 +it 05_nuclear 1 209 2030 0.0 0.0 0.0 +it 06_coal 1 209 2030 0.0 0.0 0.0 +it 07_gas 1 209 2030 0.0 0.0 0.0 +it 08_non-res 1 209 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 209 2030 0.0 0.0 0.0 +it 01_solar 1 210 2030 2000.0 1.0 0.0 +it 02_wind_on 1 210 2030 2000.0 1.0 0.0 +it 03_wind_off 1 210 2030 100.0 1.0 0.0 +it 04_res 1 210 2030 0.0 0.0 0.0 +it 05_nuclear 1 210 2030 0.0 0.0 0.0 +it 06_coal 1 210 2030 0.0 0.0 0.0 +it 07_gas 1 210 2030 0.0 0.0 0.0 +it 08_non-res 1 210 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 210 2030 0.0 0.0 0.0 +it 01_solar 1 211 2030 2000.0 1.0 0.0 +it 02_wind_on 1 211 2030 2000.0 1.0 0.0 +it 03_wind_off 1 211 2030 200.0 1.0 0.0 +it 04_res 1 211 2030 0.0 0.0 0.0 +it 05_nuclear 1 211 2030 0.0 0.0 0.0 +it 06_coal 1 211 2030 0.0 0.0 0.0 +it 07_gas 1 211 2030 0.0 0.0 0.0 +it 08_non-res 1 211 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 211 2030 0.0 0.0 0.0 +it 01_solar 1 212 2030 2000.0 1.0 0.0 +it 02_wind_on 1 212 2030 2000.0 1.0 0.0 +it 03_wind_off 1 212 2030 300.0 1.0 0.0 +it 04_res 1 212 2030 0.0 0.0 0.0 +it 05_nuclear 1 212 2030 0.0 0.0 0.0 +it 06_coal 1 212 2030 0.0 0.0 0.0 +it 07_gas 1 212 2030 0.0 0.0 0.0 +it 08_non-res 1 212 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 212 2030 0.0 0.0 0.0 +it 01_solar 1 213 2030 2000.0 1.0 0.0 +it 02_wind_on 1 213 2030 2000.0 1.0 0.0 +it 03_wind_off 1 213 2030 400.0 1.0 0.0 +it 04_res 1 213 2030 0.0 0.0 0.0 +it 05_nuclear 1 213 2030 0.0 0.0 0.0 +it 06_coal 1 213 2030 0.0 0.0 0.0 +it 07_gas 1 213 2030 0.0 0.0 0.0 +it 08_non-res 1 213 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 213 2030 0.0 0.0 0.0 +it 01_solar 1 214 2030 2000.0 1.0 0.0 +it 02_wind_on 1 214 2030 2000.0 1.0 0.0 +it 03_wind_off 1 214 2030 500.0 1.0 0.0 +it 04_res 1 214 2030 0.0 0.0 0.0 +it 05_nuclear 1 214 2030 0.0 0.0 0.0 +it 06_coal 1 214 2030 0.0 0.0 0.0 +it 07_gas 1 214 2030 0.0 0.0 0.0 +it 08_non-res 1 214 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 214 2030 0.0 0.0 0.0 +it 01_solar 1 215 2030 2000.0 1.0 0.0 +it 02_wind_on 1 215 2030 2000.0 1.0 0.0 +it 03_wind_off 1 215 2030 600.0 1.0 0.0 +it 04_res 1 215 2030 0.0 0.0 0.0 +it 05_nuclear 1 215 2030 0.0 0.0 0.0 +it 06_coal 1 215 2030 0.0 0.0 0.0 +it 07_gas 1 215 2030 0.0 0.0 0.0 +it 08_non-res 1 215 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 215 2030 0.0 0.0 0.0 +it 01_solar 1 216 2030 2000.0 1.0 0.0 +it 02_wind_on 1 216 2030 2000.0 1.0 0.0 +it 03_wind_off 1 216 2030 700.0 1.0 0.0 +it 04_res 1 216 2030 0.0 0.0 0.0 +it 05_nuclear 1 216 2030 0.0 0.0 0.0 +it 06_coal 1 216 2030 0.0 0.0 0.0 +it 07_gas 1 216 2030 0.0 0.0 0.0 +it 08_non-res 1 216 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 216 2030 0.0 0.0 0.0 +it 01_solar 1 217 2030 2000.0 1.0 0.0 +it 02_wind_on 1 217 2030 2000.0 1.0 0.0 +it 03_wind_off 1 217 2030 800.0 1.0 0.0 +it 04_res 1 217 2030 0.0 0.0 0.0 +it 05_nuclear 1 217 2030 0.0 0.0 0.0 +it 06_coal 1 217 2030 0.0 0.0 0.0 +it 07_gas 1 217 2030 0.0 0.0 0.0 +it 08_non-res 1 217 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 217 2030 0.0 0.0 0.0 +it 01_solar 1 218 2030 2000.0 1.0 0.0 +it 02_wind_on 1 218 2030 2000.0 1.0 0.0 +it 03_wind_off 1 218 2030 900.0 1.0 0.0 +it 04_res 1 218 2030 0.0 0.0 0.0 +it 05_nuclear 1 218 2030 0.0 0.0 0.0 +it 06_coal 1 218 2030 0.0 0.0 0.0 +it 07_gas 1 218 2030 0.0 0.0 0.0 +it 08_non-res 1 218 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 218 2030 0.0 0.0 0.0 +it 01_solar 1 219 2030 2000.0 1.0 0.0 +it 02_wind_on 1 219 2030 2000.0 1.0 0.0 +it 03_wind_off 1 219 2030 1000.0 1.0 0.0 +it 04_res 1 219 2030 0.0 0.0 0.0 +it 05_nuclear 1 219 2030 0.0 0.0 0.0 +it 06_coal 1 219 2030 0.0 0.0 0.0 +it 07_gas 1 219 2030 0.0 0.0 0.0 +it 08_non-res 1 219 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 219 2030 0.0 0.0 0.0 +it 01_solar 1 220 2030 2000.0 1.0 0.0 +it 02_wind_on 1 220 2030 2000.0 1.0 0.0 +it 03_wind_off 1 220 2030 1100.0 1.0 0.0 +it 04_res 1 220 2030 0.0 0.0 0.0 +it 05_nuclear 1 220 2030 0.0 0.0 0.0 +it 06_coal 1 220 2030 0.0 0.0 0.0 +it 07_gas 1 220 2030 0.0 0.0 0.0 +it 08_non-res 1 220 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 220 2030 0.0 0.0 0.0 +it 01_solar 1 221 2030 2000.0 1.0 0.0 +it 02_wind_on 1 221 2030 2000.0 1.0 0.0 +it 03_wind_off 1 221 2030 1200.0 1.0 0.0 +it 04_res 1 221 2030 0.0 0.0 0.0 +it 05_nuclear 1 221 2030 0.0 0.0 0.0 +it 06_coal 1 221 2030 0.0 0.0 0.0 +it 07_gas 1 221 2030 0.0 0.0 0.0 +it 08_non-res 1 221 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 221 2030 0.0 0.0 0.0 +it 01_solar 1 222 2030 2000.0 1.0 0.0 +it 02_wind_on 1 222 2030 2000.0 1.0 0.0 +it 03_wind_off 1 222 2030 1300.0 1.0 0.0 +it 04_res 1 222 2030 0.0 0.0 0.0 +it 05_nuclear 1 222 2030 0.0 0.0 0.0 +it 06_coal 1 222 2030 0.0 0.0 0.0 +it 07_gas 1 222 2030 0.0 0.0 0.0 +it 08_non-res 1 222 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 222 2030 0.0 0.0 0.0 +it 01_solar 1 223 2030 2000.0 1.0 0.0 +it 02_wind_on 1 223 2030 2000.0 1.0 0.0 +it 03_wind_off 1 223 2030 1400.0 1.0 0.0 +it 04_res 1 223 2030 0.0 0.0 0.0 +it 05_nuclear 1 223 2030 0.0 0.0 0.0 +it 06_coal 1 223 2030 0.0 0.0 0.0 +it 07_gas 1 223 2030 0.0 0.0 0.0 +it 08_non-res 1 223 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 223 2030 0.0 0.0 0.0 +it 01_solar 1 224 2030 2000.0 1.0 0.0 +it 02_wind_on 1 224 2030 2000.0 1.0 0.0 +it 03_wind_off 1 224 2030 1500.0 1.0 0.0 +it 04_res 1 224 2030 0.0 0.0 0.0 +it 05_nuclear 1 224 2030 0.0 0.0 0.0 +it 06_coal 1 224 2030 0.0 0.0 0.0 +it 07_gas 1 224 2030 0.0 0.0 0.0 +it 08_non-res 1 224 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 224 2030 0.0 0.0 0.0 +it 01_solar 1 225 2030 2000.0 1.0 0.0 +it 02_wind_on 1 225 2030 2000.0 1.0 0.0 +it 03_wind_off 1 225 2030 1600.0 1.0 0.0 +it 04_res 1 225 2030 0.0 0.0 0.0 +it 05_nuclear 1 225 2030 0.0 0.0 0.0 +it 06_coal 1 225 2030 0.0 0.0 0.0 +it 07_gas 1 225 2030 0.0 0.0 0.0 +it 08_non-res 1 225 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 225 2030 0.0 0.0 0.0 +it 01_solar 1 226 2030 2000.0 1.0 0.0 +it 02_wind_on 1 226 2030 2000.0 1.0 0.0 +it 03_wind_off 1 226 2030 1700.0 1.0 0.0 +it 04_res 1 226 2030 0.0 0.0 0.0 +it 05_nuclear 1 226 2030 0.0 0.0 0.0 +it 06_coal 1 226 2030 0.0 0.0 0.0 +it 07_gas 1 226 2030 0.0 0.0 0.0 +it 08_non-res 1 226 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 226 2030 0.0 0.0 0.0 +it 01_solar 1 227 2030 2000.0 1.0 0.0 +it 02_wind_on 1 227 2030 2000.0 1.0 0.0 +it 03_wind_off 1 227 2030 1800.0 1.0 0.0 +it 04_res 1 227 2030 0.0 0.0 0.0 +it 05_nuclear 1 227 2030 0.0 0.0 0.0 +it 06_coal 1 227 2030 0.0 0.0 0.0 +it 07_gas 1 227 2030 0.0 0.0 0.0 +it 08_non-res 1 227 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 227 2030 0.0 0.0 0.0 +it 01_solar 1 228 2030 2000.0 1.0 0.0 +it 02_wind_on 1 228 2030 2000.0 1.0 0.0 +it 03_wind_off 1 228 2030 1900.0 1.0 0.0 +it 04_res 1 228 2030 0.0 0.0 0.0 +it 05_nuclear 1 228 2030 0.0 0.0 0.0 +it 06_coal 1 228 2030 0.0 0.0 0.0 +it 07_gas 1 228 2030 0.0 0.0 0.0 +it 08_non-res 1 228 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 228 2030 0.0 0.0 0.0 +it 01_solar 1 229 2030 2000.0 1.0 0.0 +it 02_wind_on 1 229 2030 2000.0 1.0 0.0 +it 03_wind_off 1 229 2030 2000.0 1.0 0.0 +it 04_res 1 229 2030 0.0 0.0 0.0 +it 05_nuclear 1 229 2030 0.0 0.0 0.0 +it 06_coal 1 229 2030 0.0 0.0 0.0 +it 07_gas 1 229 2030 0.0 0.0 0.0 +it 08_non-res 1 229 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 229 2030 0.0 0.0 0.0 +it 01_solar 1 230 2030 2000.0 1.0 0.0 +it 02_wind_on 1 230 2030 2000.0 1.0 0.0 +it 03_wind_off 1 230 2030 2000.0 1.0 0.0 +it 04_res 1 230 2030 100.0 1.0 0.0 +it 05_nuclear 1 230 2030 0.0 0.0 0.0 +it 06_coal 1 230 2030 0.0 0.0 0.0 +it 07_gas 1 230 2030 0.0 0.0 0.0 +it 08_non-res 1 230 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 230 2030 0.0 0.0 0.0 +it 01_solar 1 231 2030 2000.0 1.0 0.0 +it 02_wind_on 1 231 2030 2000.0 1.0 0.0 +it 03_wind_off 1 231 2030 2000.0 1.0 0.0 +it 04_res 1 231 2030 200.0 1.0 0.0 +it 05_nuclear 1 231 2030 0.0 0.0 0.0 +it 06_coal 1 231 2030 0.0 0.0 0.0 +it 07_gas 1 231 2030 0.0 0.0 0.0 +it 08_non-res 1 231 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 231 2030 0.0 0.0 0.0 +it 01_solar 1 232 2030 2000.0 1.0 0.0 +it 02_wind_on 1 232 2030 2000.0 1.0 0.0 +it 03_wind_off 1 232 2030 2000.0 1.0 0.0 +it 04_res 1 232 2030 300.0 1.0 0.0 +it 05_nuclear 1 232 2030 0.0 0.0 0.0 +it 06_coal 1 232 2030 0.0 0.0 0.0 +it 07_gas 1 232 2030 0.0 0.0 0.0 +it 08_non-res 1 232 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 232 2030 0.0 0.0 0.0 +it 01_solar 1 233 2030 2000.0 1.0 0.0 +it 02_wind_on 1 233 2030 2000.0 1.0 0.0 +it 03_wind_off 1 233 2030 2000.0 1.0 0.0 +it 04_res 1 233 2030 400.0 1.0 0.0 +it 05_nuclear 1 233 2030 0.0 0.0 0.0 +it 06_coal 1 233 2030 0.0 0.0 0.0 +it 07_gas 1 233 2030 0.0 0.0 0.0 +it 08_non-res 1 233 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 233 2030 0.0 0.0 0.0 +it 01_solar 1 234 2030 2000.0 1.0 0.0 +it 02_wind_on 1 234 2030 2000.0 1.0 0.0 +it 03_wind_off 1 234 2030 2000.0 1.0 0.0 +it 04_res 1 234 2030 500.0 1.0 0.0 +it 05_nuclear 1 234 2030 0.0 0.0 0.0 +it 06_coal 1 234 2030 0.0 0.0 0.0 +it 07_gas 1 234 2030 0.0 0.0 0.0 +it 08_non-res 1 234 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 234 2030 0.0 0.0 0.0 +it 01_solar 1 235 2030 2000.0 1.0 0.0 +it 02_wind_on 1 235 2030 2000.0 1.0 0.0 +it 03_wind_off 1 235 2030 2000.0 1.0 0.0 +it 04_res 1 235 2030 600.0 1.0 0.0 +it 05_nuclear 1 235 2030 0.0 0.0 0.0 +it 06_coal 1 235 2030 0.0 0.0 0.0 +it 07_gas 1 235 2030 0.0 0.0 0.0 +it 08_non-res 1 235 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 235 2030 0.0 0.0 0.0 +it 01_solar 1 236 2030 2000.0 1.0 0.0 +it 02_wind_on 1 236 2030 2000.0 1.0 0.0 +it 03_wind_off 1 236 2030 2000.0 1.0 0.0 +it 04_res 1 236 2030 700.0 1.0 0.0 +it 05_nuclear 1 236 2030 0.0 0.0 0.0 +it 06_coal 1 236 2030 0.0 0.0 0.0 +it 07_gas 1 236 2030 0.0 0.0 0.0 +it 08_non-res 1 236 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 236 2030 0.0 0.0 0.0 +it 01_solar 1 237 2030 2000.0 1.0 0.0 +it 02_wind_on 1 237 2030 2000.0 1.0 0.0 +it 03_wind_off 1 237 2030 2000.0 1.0 0.0 +it 04_res 1 237 2030 800.0 1.0 0.0 +it 05_nuclear 1 237 2030 0.0 0.0 0.0 +it 06_coal 1 237 2030 0.0 0.0 0.0 +it 07_gas 1 237 2030 0.0 0.0 0.0 +it 08_non-res 1 237 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 237 2030 0.0 0.0 0.0 +it 01_solar 1 238 2030 2000.0 1.0 0.0 +it 02_wind_on 1 238 2030 2000.0 1.0 0.0 +it 03_wind_off 1 238 2030 2000.0 1.0 0.0 +it 04_res 1 238 2030 900.0 1.0 0.0 +it 05_nuclear 1 238 2030 0.0 0.0 0.0 +it 06_coal 1 238 2030 0.0 0.0 0.0 +it 07_gas 1 238 2030 0.0 0.0 0.0 +it 08_non-res 1 238 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 238 2030 0.0 0.0 0.0 +it 01_solar 1 239 2030 2000.0 1.0 0.0 +it 02_wind_on 1 239 2030 2000.0 1.0 0.0 +it 03_wind_off 1 239 2030 2000.0 1.0 0.0 +it 04_res 1 239 2030 1000.0 1.0 0.0 +it 05_nuclear 1 239 2030 0.0 0.0 0.0 +it 06_coal 1 239 2030 0.0 0.0 0.0 +it 07_gas 1 239 2030 0.0 0.0 0.0 +it 08_non-res 1 239 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 239 2030 0.0 0.0 0.0 +it 01_solar 1 240 2030 2000.0 1.0 0.0 +it 02_wind_on 1 240 2030 2000.0 1.0 0.0 +it 03_wind_off 1 240 2030 2000.0 1.0 0.0 +it 04_res 1 240 2030 1100.0 1.0 0.0 +it 05_nuclear 1 240 2030 0.0 0.0 0.0 +it 06_coal 1 240 2030 0.0 0.0 0.0 +it 07_gas 1 240 2030 0.0 0.0 0.0 +it 08_non-res 1 240 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 240 2030 0.0 0.0 0.0 +it 01_solar 1 241 2030 2000.0 1.0 0.0 +it 02_wind_on 1 241 2030 2000.0 1.0 0.0 +it 03_wind_off 1 241 2030 2000.0 1.0 0.0 +it 04_res 1 241 2030 1200.0 1.0 0.0 +it 05_nuclear 1 241 2030 0.0 0.0 0.0 +it 06_coal 1 241 2030 0.0 0.0 0.0 +it 07_gas 1 241 2030 0.0 0.0 0.0 +it 08_non-res 1 241 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 241 2030 0.0 0.0 0.0 +it 01_solar 1 242 2030 2000.0 1.0 0.0 +it 02_wind_on 1 242 2030 2000.0 1.0 0.0 +it 03_wind_off 1 242 2030 2000.0 1.0 0.0 +it 04_res 1 242 2030 1300.0 1.0 0.0 +it 05_nuclear 1 242 2030 0.0 0.0 0.0 +it 06_coal 1 242 2030 0.0 0.0 0.0 +it 07_gas 1 242 2030 0.0 0.0 0.0 +it 08_non-res 1 242 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 242 2030 0.0 0.0 0.0 +it 01_solar 1 243 2030 2000.0 1.0 0.0 +it 02_wind_on 1 243 2030 2000.0 1.0 0.0 +it 03_wind_off 1 243 2030 2000.0 1.0 0.0 +it 04_res 1 243 2030 1400.0 1.0 0.0 +it 05_nuclear 1 243 2030 0.0 0.0 0.0 +it 06_coal 1 243 2030 0.0 0.0 0.0 +it 07_gas 1 243 2030 0.0 0.0 0.0 +it 08_non-res 1 243 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 243 2030 0.0 0.0 0.0 +it 01_solar 1 244 2030 2000.0 1.0 0.0 +it 02_wind_on 1 244 2030 2000.0 1.0 0.0 +it 03_wind_off 1 244 2030 2000.0 1.0 0.0 +it 04_res 1 244 2030 1500.0 1.0 0.0 +it 05_nuclear 1 244 2030 0.0 0.0 0.0 +it 06_coal 1 244 2030 0.0 0.0 0.0 +it 07_gas 1 244 2030 0.0 0.0 0.0 +it 08_non-res 1 244 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 244 2030 0.0 0.0 0.0 +it 01_solar 1 245 2030 2000.0 1.0 0.0 +it 02_wind_on 1 245 2030 2000.0 1.0 0.0 +it 03_wind_off 1 245 2030 2000.0 1.0 0.0 +it 04_res 1 245 2030 1600.0 1.0 0.0 +it 05_nuclear 1 245 2030 0.0 0.0 0.0 +it 06_coal 1 245 2030 0.0 0.0 0.0 +it 07_gas 1 245 2030 0.0 0.0 0.0 +it 08_non-res 1 245 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 245 2030 0.0 0.0 0.0 +it 01_solar 1 246 2030 2000.0 1.0 0.0 +it 02_wind_on 1 246 2030 2000.0 1.0 0.0 +it 03_wind_off 1 246 2030 2000.0 1.0 0.0 +it 04_res 1 246 2030 1700.0 1.0 0.0 +it 05_nuclear 1 246 2030 0.0 0.0 0.0 +it 06_coal 1 246 2030 0.0 0.0 0.0 +it 07_gas 1 246 2030 0.0 0.0 0.0 +it 08_non-res 1 246 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 246 2030 0.0 0.0 0.0 +it 01_solar 1 247 2030 2000.0 1.0 0.0 +it 02_wind_on 1 247 2030 2000.0 1.0 0.0 +it 03_wind_off 1 247 2030 2000.0 1.0 0.0 +it 04_res 1 247 2030 1800.0 1.0 0.0 +it 05_nuclear 1 247 2030 0.0 0.0 0.0 +it 06_coal 1 247 2030 0.0 0.0 0.0 +it 07_gas 1 247 2030 0.0 0.0 0.0 +it 08_non-res 1 247 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 247 2030 0.0 0.0 0.0 +it 01_solar 1 248 2030 2000.0 1.0 0.0 +it 02_wind_on 1 248 2030 2000.0 1.0 0.0 +it 03_wind_off 1 248 2030 2000.0 1.0 0.0 +it 04_res 1 248 2030 1900.0 1.0 0.0 +it 05_nuclear 1 248 2030 0.0 0.0 0.0 +it 06_coal 1 248 2030 0.0 0.0 0.0 +it 07_gas 1 248 2030 0.0 0.0 0.0 +it 08_non-res 1 248 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 248 2030 0.0 0.0 0.0 +it 01_solar 1 249 2030 2000.0 1.0 0.0 +it 02_wind_on 1 249 2030 2000.0 1.0 0.0 +it 03_wind_off 1 249 2030 2000.0 1.0 0.0 +it 04_res 1 249 2030 2000.0 1.0 0.0 +it 05_nuclear 1 249 2030 0.0 0.0 0.0 +it 06_coal 1 249 2030 0.0 0.0 0.0 +it 07_gas 1 249 2030 0.0 0.0 0.0 +it 08_non-res 1 249 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 249 2030 0.0 0.0 0.0 +it 01_solar 1 250 2030 2000.0 1.0 0.0 +it 02_wind_on 1 250 2030 2000.0 1.0 0.0 +it 03_wind_off 1 250 2030 2000.0 1.0 0.0 +it 04_res 1 250 2030 2000.0 1.0 0.0 +it 05_nuclear 1 250 2030 100.0 1.0 0.0 +it 06_coal 1 250 2030 0.0 0.0 0.0 +it 07_gas 1 250 2030 0.0 0.0 0.0 +it 08_non-res 1 250 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 250 2030 0.0 0.0 0.0 +it 01_solar 1 251 2030 2000.0 1.0 0.0 +it 02_wind_on 1 251 2030 2000.0 1.0 0.0 +it 03_wind_off 1 251 2030 2000.0 1.0 0.0 +it 04_res 1 251 2030 2000.0 1.0 0.0 +it 05_nuclear 1 251 2030 200.0 1.0 0.0 +it 06_coal 1 251 2030 0.0 0.0 0.0 +it 07_gas 1 251 2030 0.0 0.0 0.0 +it 08_non-res 1 251 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 251 2030 0.0 0.0 0.0 +it 01_solar 1 252 2030 2000.0 1.0 0.0 +it 02_wind_on 1 252 2030 2000.0 1.0 0.0 +it 03_wind_off 1 252 2030 2000.0 1.0 0.0 +it 04_res 1 252 2030 2000.0 1.0 0.0 +it 05_nuclear 1 252 2030 300.0 1.0 0.0 +it 06_coal 1 252 2030 0.0 0.0 0.0 +it 07_gas 1 252 2030 0.0 0.0 0.0 +it 08_non-res 1 252 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 252 2030 0.0 0.0 0.0 +it 01_solar 1 253 2030 2000.0 1.0 0.0 +it 02_wind_on 1 253 2030 2000.0 1.0 0.0 +it 03_wind_off 1 253 2030 2000.0 1.0 0.0 +it 04_res 1 253 2030 2000.0 1.0 0.0 +it 05_nuclear 1 253 2030 400.0 1.0 0.0 +it 06_coal 1 253 2030 0.0 0.0 0.0 +it 07_gas 1 253 2030 0.0 0.0 0.0 +it 08_non-res 1 253 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 253 2030 0.0 0.0 0.0 +it 01_solar 1 254 2030 2000.0 1.0 0.0 +it 02_wind_on 1 254 2030 2000.0 1.0 0.0 +it 03_wind_off 1 254 2030 2000.0 1.0 0.0 +it 04_res 1 254 2030 2000.0 1.0 0.0 +it 05_nuclear 1 254 2030 500.0 1.0 0.0 +it 06_coal 1 254 2030 0.0 0.0 0.0 +it 07_gas 1 254 2030 0.0 0.0 0.0 +it 08_non-res 1 254 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 254 2030 0.0 0.0 0.0 +it 01_solar 1 255 2030 2000.0 1.0 0.0 +it 02_wind_on 1 255 2030 2000.0 1.0 0.0 +it 03_wind_off 1 255 2030 2000.0 1.0 0.0 +it 04_res 1 255 2030 2000.0 1.0 0.0 +it 05_nuclear 1 255 2030 600.0 1.0 0.0 +it 06_coal 1 255 2030 0.0 0.0 0.0 +it 07_gas 1 255 2030 0.0 0.0 0.0 +it 08_non-res 1 255 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 255 2030 0.0 0.0 0.0 +it 01_solar 1 256 2030 2000.0 1.0 0.0 +it 02_wind_on 1 256 2030 2000.0 1.0 0.0 +it 03_wind_off 1 256 2030 2000.0 1.0 0.0 +it 04_res 1 256 2030 2000.0 1.0 0.0 +it 05_nuclear 1 256 2030 700.0 1.0 0.0 +it 06_coal 1 256 2030 0.0 0.0 0.0 +it 07_gas 1 256 2030 0.0 0.0 0.0 +it 08_non-res 1 256 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 256 2030 0.0 0.0 0.0 +it 01_solar 1 257 2030 2000.0 1.0 0.0 +it 02_wind_on 1 257 2030 2000.0 1.0 0.0 +it 03_wind_off 1 257 2030 2000.0 1.0 0.0 +it 04_res 1 257 2030 2000.0 1.0 0.0 +it 05_nuclear 1 257 2030 800.0 1.0 0.0 +it 06_coal 1 257 2030 0.0 0.0 0.0 +it 07_gas 1 257 2030 0.0 0.0 0.0 +it 08_non-res 1 257 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 257 2030 0.0 0.0 0.0 +it 01_solar 1 258 2030 2000.0 1.0 0.0 +it 02_wind_on 1 258 2030 2000.0 1.0 0.0 +it 03_wind_off 1 258 2030 2000.0 1.0 0.0 +it 04_res 1 258 2030 2000.0 1.0 0.0 +it 05_nuclear 1 258 2030 900.0 1.0 0.0 +it 06_coal 1 258 2030 0.0 0.0 0.0 +it 07_gas 1 258 2030 0.0 0.0 0.0 +it 08_non-res 1 258 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 258 2030 0.0 0.0 0.0 +it 01_solar 1 259 2030 2000.0 1.0 0.0 +it 02_wind_on 1 259 2030 2000.0 1.0 0.0 +it 03_wind_off 1 259 2030 2000.0 1.0 0.0 +it 04_res 1 259 2030 2000.0 1.0 0.0 +it 05_nuclear 1 259 2030 1000.0 1.0 0.0 +it 06_coal 1 259 2030 0.0 0.0 0.0 +it 07_gas 1 259 2030 0.0 0.0 0.0 +it 08_non-res 1 259 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 259 2030 0.0 0.0 0.0 +it 01_solar 1 260 2030 2000.0 1.0 0.0 +it 02_wind_on 1 260 2030 2000.0 1.0 0.0 +it 03_wind_off 1 260 2030 2000.0 1.0 0.0 +it 04_res 1 260 2030 2000.0 1.0 0.0 +it 05_nuclear 1 260 2030 1100.0 1.0 0.0 +it 06_coal 1 260 2030 0.0 0.0 0.0 +it 07_gas 1 260 2030 0.0 0.0 0.0 +it 08_non-res 1 260 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 260 2030 0.0 0.0 0.0 +it 01_solar 1 261 2030 2000.0 1.0 0.0 +it 02_wind_on 1 261 2030 2000.0 1.0 0.0 +it 03_wind_off 1 261 2030 2000.0 1.0 0.0 +it 04_res 1 261 2030 2000.0 1.0 0.0 +it 05_nuclear 1 261 2030 1200.0 1.0 0.0 +it 06_coal 1 261 2030 0.0 0.0 0.0 +it 07_gas 1 261 2030 0.0 0.0 0.0 +it 08_non-res 1 261 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 261 2030 0.0 0.0 0.0 +it 01_solar 1 262 2030 2000.0 1.0 0.0 +it 02_wind_on 1 262 2030 2000.0 1.0 0.0 +it 03_wind_off 1 262 2030 2000.0 1.0 0.0 +it 04_res 1 262 2030 2000.0 1.0 0.0 +it 05_nuclear 1 262 2030 1300.0 1.0 0.0 +it 06_coal 1 262 2030 0.0 0.0 0.0 +it 07_gas 1 262 2030 0.0 0.0 0.0 +it 08_non-res 1 262 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 262 2030 0.0 0.0 0.0 +it 01_solar 1 263 2030 2000.0 1.0 0.0 +it 02_wind_on 1 263 2030 2000.0 1.0 0.0 +it 03_wind_off 1 263 2030 2000.0 1.0 0.0 +it 04_res 1 263 2030 2000.0 1.0 0.0 +it 05_nuclear 1 263 2030 1400.0 1.0 0.0 +it 06_coal 1 263 2030 0.0 0.0 0.0 +it 07_gas 1 263 2030 0.0 0.0 0.0 +it 08_non-res 1 263 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 263 2030 0.0 0.0 0.0 +it 01_solar 1 264 2030 2000.0 1.0 0.0 +it 02_wind_on 1 264 2030 2000.0 1.0 0.0 +it 03_wind_off 1 264 2030 2000.0 1.0 0.0 +it 04_res 1 264 2030 2000.0 1.0 0.0 +it 05_nuclear 1 264 2030 1500.0 1.0 0.0 +it 06_coal 1 264 2030 0.0 0.0 0.0 +it 07_gas 1 264 2030 0.0 0.0 0.0 +it 08_non-res 1 264 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 264 2030 0.0 0.0 0.0 +it 01_solar 1 265 2030 2000.0 1.0 0.0 +it 02_wind_on 1 265 2030 2000.0 1.0 0.0 +it 03_wind_off 1 265 2030 2000.0 1.0 0.0 +it 04_res 1 265 2030 2000.0 1.0 0.0 +it 05_nuclear 1 265 2030 1600.0 1.0 0.0 +it 06_coal 1 265 2030 0.0 0.0 0.0 +it 07_gas 1 265 2030 0.0 0.0 0.0 +it 08_non-res 1 265 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 265 2030 0.0 0.0 0.0 +it 01_solar 1 266 2030 2000.0 1.0 0.0 +it 02_wind_on 1 266 2030 2000.0 1.0 0.0 +it 03_wind_off 1 266 2030 2000.0 1.0 0.0 +it 04_res 1 266 2030 2000.0 1.0 0.0 +it 05_nuclear 1 266 2030 1700.0 1.0 0.0 +it 06_coal 1 266 2030 0.0 0.0 0.0 +it 07_gas 1 266 2030 0.0 0.0 0.0 +it 08_non-res 1 266 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 266 2030 0.0 0.0 0.0 +it 01_solar 1 267 2030 2000.0 1.0 0.0 +it 02_wind_on 1 267 2030 2000.0 1.0 0.0 +it 03_wind_off 1 267 2030 2000.0 1.0 0.0 +it 04_res 1 267 2030 2000.0 1.0 0.0 +it 05_nuclear 1 267 2030 1800.0 1.0 0.0 +it 06_coal 1 267 2030 0.0 0.0 0.0 +it 07_gas 1 267 2030 0.0 0.0 0.0 +it 08_non-res 1 267 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 267 2030 0.0 0.0 0.0 +it 01_solar 1 268 2030 2000.0 1.0 0.0 +it 02_wind_on 1 268 2030 2000.0 1.0 0.0 +it 03_wind_off 1 268 2030 2000.0 1.0 0.0 +it 04_res 1 268 2030 2000.0 1.0 0.0 +it 05_nuclear 1 268 2030 1900.0 1.0 0.0 +it 06_coal 1 268 2030 0.0 0.0 0.0 +it 07_gas 1 268 2030 0.0 0.0 0.0 +it 08_non-res 1 268 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 268 2030 0.0 0.0 0.0 +it 01_solar 1 269 2030 2000.0 1.0 0.0 +it 02_wind_on 1 269 2030 2000.0 1.0 0.0 +it 03_wind_off 1 269 2030 2000.0 1.0 0.0 +it 04_res 1 269 2030 2000.0 1.0 0.0 +it 05_nuclear 1 269 2030 2000.0 1.0 0.0 +it 06_coal 1 269 2030 0.0 0.0 0.0 +it 07_gas 1 269 2030 0.0 0.0 0.0 +it 08_non-res 1 269 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 269 2030 0.0 0.0 0.0 +it 01_solar 1 270 2030 2000.0 1.0 0.0 +it 02_wind_on 1 270 2030 2000.0 1.0 0.0 +it 03_wind_off 1 270 2030 2000.0 1.0 0.0 +it 04_res 1 270 2030 2000.0 1.0 0.0 +it 05_nuclear 1 270 2030 2000.0 1.0 0.0 +it 06_coal 1 270 2030 100.0 1.0 0.0 +it 07_gas 1 270 2030 0.0 0.0 0.0 +it 08_non-res 1 270 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 270 2030 0.0 0.0 0.0 +it 01_solar 1 271 2030 2000.0 1.0 0.0 +it 02_wind_on 1 271 2030 2000.0 1.0 0.0 +it 03_wind_off 1 271 2030 2000.0 1.0 0.0 +it 04_res 1 271 2030 2000.0 1.0 0.0 +it 05_nuclear 1 271 2030 2000.0 1.0 0.0 +it 06_coal 1 271 2030 200.0 1.0 0.0 +it 07_gas 1 271 2030 0.0 0.0 0.0 +it 08_non-res 1 271 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 271 2030 0.0 0.0 0.0 +it 01_solar 1 272 2030 2000.0 1.0 0.0 +it 02_wind_on 1 272 2030 2000.0 1.0 0.0 +it 03_wind_off 1 272 2030 2000.0 1.0 0.0 +it 04_res 1 272 2030 2000.0 1.0 0.0 +it 05_nuclear 1 272 2030 2000.0 1.0 0.0 +it 06_coal 1 272 2030 300.0 1.0 0.0 +it 07_gas 1 272 2030 0.0 0.0 0.0 +it 08_non-res 1 272 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 272 2030 0.0 0.0 0.0 +it 01_solar 1 273 2030 2000.0 1.0 0.0 +it 02_wind_on 1 273 2030 2000.0 1.0 0.0 +it 03_wind_off 1 273 2030 2000.0 1.0 0.0 +it 04_res 1 273 2030 2000.0 1.0 0.0 +it 05_nuclear 1 273 2030 2000.0 1.0 0.0 +it 06_coal 1 273 2030 400.0 1.0 0.0 +it 07_gas 1 273 2030 0.0 0.0 0.0 +it 08_non-res 1 273 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 273 2030 0.0 0.0 0.0 +it 01_solar 1 274 2030 2000.0 1.0 0.0 +it 02_wind_on 1 274 2030 2000.0 1.0 0.0 +it 03_wind_off 1 274 2030 2000.0 1.0 0.0 +it 04_res 1 274 2030 2000.0 1.0 0.0 +it 05_nuclear 1 274 2030 2000.0 1.0 0.0 +it 06_coal 1 274 2030 500.0 1.0 0.0 +it 07_gas 1 274 2030 0.0 0.0 0.0 +it 08_non-res 1 274 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 274 2030 0.0 0.0 0.0 +it 01_solar 1 275 2030 2000.0 1.0 0.0 +it 02_wind_on 1 275 2030 2000.0 1.0 0.0 +it 03_wind_off 1 275 2030 2000.0 1.0 0.0 +it 04_res 1 275 2030 2000.0 1.0 0.0 +it 05_nuclear 1 275 2030 2000.0 1.0 0.0 +it 06_coal 1 275 2030 600.0 1.0 0.0 +it 07_gas 1 275 2030 0.0 0.0 0.0 +it 08_non-res 1 275 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 275 2030 0.0 0.0 0.0 +it 01_solar 1 276 2030 2000.0 1.0 0.0 +it 02_wind_on 1 276 2030 2000.0 1.0 0.0 +it 03_wind_off 1 276 2030 2000.0 1.0 0.0 +it 04_res 1 276 2030 2000.0 1.0 0.0 +it 05_nuclear 1 276 2030 2000.0 1.0 0.0 +it 06_coal 1 276 2030 700.0 1.0 0.0 +it 07_gas 1 276 2030 0.0 0.0 0.0 +it 08_non-res 1 276 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 276 2030 0.0 0.0 0.0 +it 01_solar 1 277 2030 2000.0 1.0 0.0 +it 02_wind_on 1 277 2030 2000.0 1.0 0.0 +it 03_wind_off 1 277 2030 2000.0 1.0 0.0 +it 04_res 1 277 2030 2000.0 1.0 0.0 +it 05_nuclear 1 277 2030 2000.0 1.0 0.0 +it 06_coal 1 277 2030 800.0 1.0 0.0 +it 07_gas 1 277 2030 0.0 0.0 0.0 +it 08_non-res 1 277 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 277 2030 0.0 0.0 0.0 +it 01_solar 1 278 2030 2000.0 1.0 0.0 +it 02_wind_on 1 278 2030 2000.0 1.0 0.0 +it 03_wind_off 1 278 2030 2000.0 1.0 0.0 +it 04_res 1 278 2030 2000.0 1.0 0.0 +it 05_nuclear 1 278 2030 2000.0 1.0 0.0 +it 06_coal 1 278 2030 900.0 1.0 0.0 +it 07_gas 1 278 2030 0.0 0.0 0.0 +it 08_non-res 1 278 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 278 2030 0.0 0.0 0.0 +it 01_solar 1 279 2030 2000.0 1.0 0.0 +it 02_wind_on 1 279 2030 2000.0 1.0 0.0 +it 03_wind_off 1 279 2030 2000.0 1.0 0.0 +it 04_res 1 279 2030 2000.0 1.0 0.0 +it 05_nuclear 1 279 2030 2000.0 1.0 0.0 +it 06_coal 1 279 2030 1000.0 1.0 0.0 +it 07_gas 1 279 2030 0.0 0.0 0.0 +it 08_non-res 1 279 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 279 2030 0.0 0.0 0.0 +it 01_solar 1 280 2030 2000.0 1.0 0.0 +it 02_wind_on 1 280 2030 2000.0 1.0 0.0 +it 03_wind_off 1 280 2030 2000.0 1.0 0.0 +it 04_res 1 280 2030 2000.0 1.0 0.0 +it 05_nuclear 1 280 2030 2000.0 1.0 0.0 +it 06_coal 1 280 2030 1100.0 1.0 0.0 +it 07_gas 1 280 2030 0.0 0.0 0.0 +it 08_non-res 1 280 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 280 2030 0.0 0.0 0.0 +it 01_solar 1 281 2030 2000.0 1.0 0.0 +it 02_wind_on 1 281 2030 2000.0 1.0 0.0 +it 03_wind_off 1 281 2030 2000.0 1.0 0.0 +it 04_res 1 281 2030 2000.0 1.0 0.0 +it 05_nuclear 1 281 2030 2000.0 1.0 0.0 +it 06_coal 1 281 2030 1200.0 1.0 0.0 +it 07_gas 1 281 2030 0.0 0.0 0.0 +it 08_non-res 1 281 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 281 2030 0.0 0.0 0.0 +it 01_solar 1 282 2030 2000.0 1.0 0.0 +it 02_wind_on 1 282 2030 2000.0 1.0 0.0 +it 03_wind_off 1 282 2030 2000.0 1.0 0.0 +it 04_res 1 282 2030 2000.0 1.0 0.0 +it 05_nuclear 1 282 2030 2000.0 1.0 0.0 +it 06_coal 1 282 2030 1300.0 1.0 0.0 +it 07_gas 1 282 2030 0.0 0.0 0.0 +it 08_non-res 1 282 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 282 2030 0.0 0.0 0.0 +it 01_solar 1 283 2030 2000.0 1.0 0.0 +it 02_wind_on 1 283 2030 2000.0 1.0 0.0 +it 03_wind_off 1 283 2030 2000.0 1.0 0.0 +it 04_res 1 283 2030 2000.0 1.0 0.0 +it 05_nuclear 1 283 2030 2000.0 1.0 0.0 +it 06_coal 1 283 2030 1400.0 1.0 0.0 +it 07_gas 1 283 2030 0.0 0.0 0.0 +it 08_non-res 1 283 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 283 2030 0.0 0.0 0.0 +it 01_solar 1 284 2030 2000.0 1.0 0.0 +it 02_wind_on 1 284 2030 2000.0 1.0 0.0 +it 03_wind_off 1 284 2030 2000.0 1.0 0.0 +it 04_res 1 284 2030 2000.0 1.0 0.0 +it 05_nuclear 1 284 2030 2000.0 1.0 0.0 +it 06_coal 1 284 2030 1500.0 1.0 0.0 +it 07_gas 1 284 2030 0.0 0.0 0.0 +it 08_non-res 1 284 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 284 2030 0.0 0.0 0.0 +it 01_solar 1 285 2030 2000.0 1.0 0.0 +it 02_wind_on 1 285 2030 2000.0 1.0 0.0 +it 03_wind_off 1 285 2030 2000.0 1.0 0.0 +it 04_res 1 285 2030 2000.0 1.0 0.0 +it 05_nuclear 1 285 2030 2000.0 1.0 0.0 +it 06_coal 1 285 2030 1600.0 1.0 0.0 +it 07_gas 1 285 2030 0.0 0.0 0.0 +it 08_non-res 1 285 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 285 2030 0.0 0.0 0.0 +it 01_solar 1 286 2030 2000.0 1.0 0.0 +it 02_wind_on 1 286 2030 2000.0 1.0 0.0 +it 03_wind_off 1 286 2030 2000.0 1.0 0.0 +it 04_res 1 286 2030 2000.0 1.0 0.0 +it 05_nuclear 1 286 2030 2000.0 1.0 0.0 +it 06_coal 1 286 2030 1700.0 1.0 0.0 +it 07_gas 1 286 2030 0.0 0.0 0.0 +it 08_non-res 1 286 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 286 2030 0.0 0.0 0.0 +it 01_solar 1 287 2030 2000.0 1.0 0.0 +it 02_wind_on 1 287 2030 2000.0 1.0 0.0 +it 03_wind_off 1 287 2030 2000.0 1.0 0.0 +it 04_res 1 287 2030 2000.0 1.0 0.0 +it 05_nuclear 1 287 2030 2000.0 1.0 0.0 +it 06_coal 1 287 2030 1800.0 1.0 0.0 +it 07_gas 1 287 2030 0.0 0.0 0.0 +it 08_non-res 1 287 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 287 2030 0.0 0.0 0.0 +it 01_solar 1 288 2030 2000.0 1.0 0.0 +it 02_wind_on 1 288 2030 2000.0 1.0 0.0 +it 03_wind_off 1 288 2030 2000.0 1.0 0.0 +it 04_res 1 288 2030 2000.0 1.0 0.0 +it 05_nuclear 1 288 2030 2000.0 1.0 0.0 +it 06_coal 1 288 2030 1900.0 1.0 0.0 +it 07_gas 1 288 2030 0.0 0.0 0.0 +it 08_non-res 1 288 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 288 2030 0.0 0.0 0.0 +it 01_solar 1 289 2030 2000.0 1.0 0.0 +it 02_wind_on 1 289 2030 2000.0 1.0 0.0 +it 03_wind_off 1 289 2030 2000.0 1.0 0.0 +it 04_res 1 289 2030 2000.0 1.0 0.0 +it 05_nuclear 1 289 2030 2000.0 1.0 0.0 +it 06_coal 1 289 2030 2000.0 1.0 0.0 +it 07_gas 1 289 2030 0.0 0.0 0.0 +it 08_non-res 1 289 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 289 2030 0.0 0.0 0.0 +it 01_solar 1 290 2030 2000.0 1.0 0.0 +it 02_wind_on 1 290 2030 2000.0 1.0 0.0 +it 03_wind_off 1 290 2030 2000.0 1.0 0.0 +it 04_res 1 290 2030 2000.0 1.0 0.0 +it 05_nuclear 1 290 2030 2000.0 1.0 0.0 +it 06_coal 1 290 2030 2000.0 1.0 0.0 +it 07_gas 1 290 2030 100.0 1.0 0.0 +it 08_non-res 1 290 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 290 2030 0.0 0.0 0.0 +it 01_solar 1 291 2030 2000.0 1.0 0.0 +it 02_wind_on 1 291 2030 2000.0 1.0 0.0 +it 03_wind_off 1 291 2030 2000.0 1.0 0.0 +it 04_res 1 291 2030 2000.0 1.0 0.0 +it 05_nuclear 1 291 2030 2000.0 1.0 0.0 +it 06_coal 1 291 2030 2000.0 1.0 0.0 +it 07_gas 1 291 2030 200.0 1.0 0.0 +it 08_non-res 1 291 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 291 2030 0.0 0.0 0.0 +it 01_solar 1 292 2030 2000.0 1.0 0.0 +it 02_wind_on 1 292 2030 2000.0 1.0 0.0 +it 03_wind_off 1 292 2030 2000.0 1.0 0.0 +it 04_res 1 292 2030 2000.0 1.0 0.0 +it 05_nuclear 1 292 2030 2000.0 1.0 0.0 +it 06_coal 1 292 2030 2000.0 1.0 0.0 +it 07_gas 1 292 2030 300.0 1.0 0.0 +it 08_non-res 1 292 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 292 2030 0.0 0.0 0.0 +it 01_solar 1 293 2030 2000.0 1.0 0.0 +it 02_wind_on 1 293 2030 2000.0 1.0 0.0 +it 03_wind_off 1 293 2030 2000.0 1.0 0.0 +it 04_res 1 293 2030 2000.0 1.0 0.0 +it 05_nuclear 1 293 2030 2000.0 1.0 0.0 +it 06_coal 1 293 2030 2000.0 1.0 0.0 +it 07_gas 1 293 2030 400.0 1.0 0.0 +it 08_non-res 1 293 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 293 2030 0.0 0.0 0.0 +it 01_solar 1 294 2030 2000.0 1.0 0.0 +it 02_wind_on 1 294 2030 2000.0 1.0 0.0 +it 03_wind_off 1 294 2030 2000.0 1.0 0.0 +it 04_res 1 294 2030 2000.0 1.0 0.0 +it 05_nuclear 1 294 2030 2000.0 1.0 0.0 +it 06_coal 1 294 2030 2000.0 1.0 0.0 +it 07_gas 1 294 2030 500.0 1.0 0.0 +it 08_non-res 1 294 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 294 2030 0.0 0.0 0.0 +it 01_solar 1 295 2030 2000.0 1.0 0.0 +it 02_wind_on 1 295 2030 2000.0 1.0 0.0 +it 03_wind_off 1 295 2030 2000.0 1.0 0.0 +it 04_res 1 295 2030 2000.0 1.0 0.0 +it 05_nuclear 1 295 2030 2000.0 1.0 0.0 +it 06_coal 1 295 2030 2000.0 1.0 0.0 +it 07_gas 1 295 2030 600.0 1.0 0.0 +it 08_non-res 1 295 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 295 2030 0.0 0.0 0.0 +it 01_solar 1 296 2030 2000.0 1.0 0.0 +it 02_wind_on 1 296 2030 2000.0 1.0 0.0 +it 03_wind_off 1 296 2030 2000.0 1.0 0.0 +it 04_res 1 296 2030 2000.0 1.0 0.0 +it 05_nuclear 1 296 2030 2000.0 1.0 0.0 +it 06_coal 1 296 2030 2000.0 1.0 0.0 +it 07_gas 1 296 2030 700.0 1.0 0.0 +it 08_non-res 1 296 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 296 2030 0.0 0.0 0.0 +it 01_solar 1 297 2030 2000.0 1.0 0.0 +it 02_wind_on 1 297 2030 2000.0 1.0 0.0 +it 03_wind_off 1 297 2030 2000.0 1.0 0.0 +it 04_res 1 297 2030 2000.0 1.0 0.0 +it 05_nuclear 1 297 2030 2000.0 1.0 0.0 +it 06_coal 1 297 2030 2000.0 1.0 0.0 +it 07_gas 1 297 2030 800.0 1.0 0.0 +it 08_non-res 1 297 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 297 2030 0.0 0.0 0.0 +it 01_solar 1 298 2030 2000.0 1.0 0.0 +it 02_wind_on 1 298 2030 2000.0 1.0 0.0 +it 03_wind_off 1 298 2030 2000.0 1.0 0.0 +it 04_res 1 298 2030 2000.0 1.0 0.0 +it 05_nuclear 1 298 2030 2000.0 1.0 0.0 +it 06_coal 1 298 2030 2000.0 1.0 0.0 +it 07_gas 1 298 2030 900.0 1.0 0.0 +it 08_non-res 1 298 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 298 2030 0.0 0.0 0.0 +it 01_solar 1 299 2030 2000.0 1.0 0.0 +it 02_wind_on 1 299 2030 2000.0 1.0 0.0 +it 03_wind_off 1 299 2030 2000.0 1.0 0.0 +it 04_res 1 299 2030 2000.0 1.0 0.0 +it 05_nuclear 1 299 2030 2000.0 1.0 0.0 +it 06_coal 1 299 2030 2000.0 1.0 0.0 +it 07_gas 1 299 2030 1000.0 1.0 0.0 +it 08_non-res 1 299 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 299 2030 0.0 0.0 0.0 +it 01_solar 1 300 2030 2000.0 1.0 0.0 +it 02_wind_on 1 300 2030 2000.0 1.0 0.0 +it 03_wind_off 1 300 2030 2000.0 1.0 0.0 +it 04_res 1 300 2030 2000.0 1.0 0.0 +it 05_nuclear 1 300 2030 2000.0 1.0 0.0 +it 06_coal 1 300 2030 2000.0 1.0 0.0 +it 07_gas 1 300 2030 1100.0 1.0 0.0 +it 08_non-res 1 300 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 300 2030 0.0 0.0 0.0 +it 01_solar 1 301 2030 2000.0 1.0 0.0 +it 02_wind_on 1 301 2030 2000.0 1.0 0.0 +it 03_wind_off 1 301 2030 2000.0 1.0 0.0 +it 04_res 1 301 2030 2000.0 1.0 0.0 +it 05_nuclear 1 301 2030 2000.0 1.0 0.0 +it 06_coal 1 301 2030 2000.0 1.0 0.0 +it 07_gas 1 301 2030 1200.0 1.0 0.0 +it 08_non-res 1 301 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 301 2030 0.0 0.0 0.0 +it 01_solar 1 302 2030 2000.0 1.0 0.0 +it 02_wind_on 1 302 2030 2000.0 1.0 0.0 +it 03_wind_off 1 302 2030 2000.0 1.0 0.0 +it 04_res 1 302 2030 2000.0 1.0 0.0 +it 05_nuclear 1 302 2030 2000.0 1.0 0.0 +it 06_coal 1 302 2030 2000.0 1.0 0.0 +it 07_gas 1 302 2030 1300.0 1.0 0.0 +it 08_non-res 1 302 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 302 2030 0.0 0.0 0.0 +it 01_solar 1 303 2030 2000.0 1.0 0.0 +it 02_wind_on 1 303 2030 2000.0 1.0 0.0 +it 03_wind_off 1 303 2030 2000.0 1.0 0.0 +it 04_res 1 303 2030 2000.0 1.0 0.0 +it 05_nuclear 1 303 2030 2000.0 1.0 0.0 +it 06_coal 1 303 2030 2000.0 1.0 0.0 +it 07_gas 1 303 2030 1400.0 1.0 0.0 +it 08_non-res 1 303 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 303 2030 0.0 0.0 0.0 +it 01_solar 1 304 2030 2000.0 1.0 0.0 +it 02_wind_on 1 304 2030 2000.0 1.0 0.0 +it 03_wind_off 1 304 2030 2000.0 1.0 0.0 +it 04_res 1 304 2030 2000.0 1.0 0.0 +it 05_nuclear 1 304 2030 2000.0 1.0 0.0 +it 06_coal 1 304 2030 2000.0 1.0 0.0 +it 07_gas 1 304 2030 1500.0 1.0 0.0 +it 08_non-res 1 304 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 304 2030 0.0 0.0 0.0 +it 01_solar 1 305 2030 2000.0 1.0 0.0 +it 02_wind_on 1 305 2030 2000.0 1.0 0.0 +it 03_wind_off 1 305 2030 2000.0 1.0 0.0 +it 04_res 1 305 2030 2000.0 1.0 0.0 +it 05_nuclear 1 305 2030 2000.0 1.0 0.0 +it 06_coal 1 305 2030 2000.0 1.0 0.0 +it 07_gas 1 305 2030 1600.0 1.0 0.0 +it 08_non-res 1 305 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 305 2030 0.0 0.0 0.0 +it 01_solar 1 306 2030 2000.0 1.0 0.0 +it 02_wind_on 1 306 2030 2000.0 1.0 0.0 +it 03_wind_off 1 306 2030 2000.0 1.0 0.0 +it 04_res 1 306 2030 2000.0 1.0 0.0 +it 05_nuclear 1 306 2030 2000.0 1.0 0.0 +it 06_coal 1 306 2030 2000.0 1.0 0.0 +it 07_gas 1 306 2030 1700.0 1.0 0.0 +it 08_non-res 1 306 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 306 2030 0.0 0.0 0.0 +it 01_solar 1 307 2030 2000.0 1.0 0.0 +it 02_wind_on 1 307 2030 2000.0 1.0 0.0 +it 03_wind_off 1 307 2030 2000.0 1.0 0.0 +it 04_res 1 307 2030 2000.0 1.0 0.0 +it 05_nuclear 1 307 2030 2000.0 1.0 0.0 +it 06_coal 1 307 2030 2000.0 1.0 0.0 +it 07_gas 1 307 2030 1800.0 1.0 0.0 +it 08_non-res 1 307 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 307 2030 0.0 0.0 0.0 +it 01_solar 1 308 2030 2000.0 1.0 0.0 +it 02_wind_on 1 308 2030 2000.0 1.0 0.0 +it 03_wind_off 1 308 2030 2000.0 1.0 0.0 +it 04_res 1 308 2030 2000.0 1.0 0.0 +it 05_nuclear 1 308 2030 2000.0 1.0 0.0 +it 06_coal 1 308 2030 2000.0 1.0 0.0 +it 07_gas 1 308 2030 1900.0 1.0 0.0 +it 08_non-res 1 308 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 308 2030 0.0 0.0 0.0 +it 01_solar 1 309 2030 2000.0 1.0 0.0 +it 02_wind_on 1 309 2030 2000.0 1.0 0.0 +it 03_wind_off 1 309 2030 2000.0 1.0 0.0 +it 04_res 1 309 2030 2000.0 1.0 0.0 +it 05_nuclear 1 309 2030 2000.0 1.0 0.0 +it 06_coal 1 309 2030 2000.0 1.0 0.0 +it 07_gas 1 309 2030 2000.0 1.0 0.0 +it 08_non-res 1 309 2030 0.0 0.0 0.0 +it 09_hydro_pump 1 309 2030 0.0 0.0 0.0 +it 01_solar 1 310 2030 2000.0 1.0 0.0 +it 02_wind_on 1 310 2030 2000.0 1.0 0.0 +it 03_wind_off 1 310 2030 2000.0 1.0 0.0 +it 04_res 1 310 2030 2000.0 1.0 0.0 +it 05_nuclear 1 310 2030 2000.0 1.0 0.0 +it 06_coal 1 310 2030 2000.0 1.0 0.0 +it 07_gas 1 310 2030 2000.0 1.0 0.0 +it 08_non-res 1 310 2030 100.0 1.0 0.0 +it 09_hydro_pump 1 310 2030 0.0 0.0 0.0 +it 01_solar 1 311 2030 2000.0 1.0 0.0 +it 02_wind_on 1 311 2030 2000.0 1.0 0.0 +it 03_wind_off 1 311 2030 2000.0 1.0 0.0 +it 04_res 1 311 2030 2000.0 1.0 0.0 +it 05_nuclear 1 311 2030 2000.0 1.0 0.0 +it 06_coal 1 311 2030 2000.0 1.0 0.0 +it 07_gas 1 311 2030 2000.0 1.0 0.0 +it 08_non-res 1 311 2030 200.0 1.0 0.0 +it 09_hydro_pump 1 311 2030 0.0 0.0 0.0 +it 01_solar 1 312 2030 2000.0 1.0 0.0 +it 02_wind_on 1 312 2030 2000.0 1.0 0.0 +it 03_wind_off 1 312 2030 2000.0 1.0 0.0 +it 04_res 1 312 2030 2000.0 1.0 0.0 +it 05_nuclear 1 312 2030 2000.0 1.0 0.0 +it 06_coal 1 312 2030 2000.0 1.0 0.0 +it 07_gas 1 312 2030 2000.0 1.0 0.0 +it 08_non-res 1 312 2030 300.0 1.0 0.0 +it 09_hydro_pump 1 312 2030 0.0 0.0 0.0 +it 01_solar 1 313 2030 2000.0 1.0 0.0 +it 02_wind_on 1 313 2030 2000.0 1.0 0.0 +it 03_wind_off 1 313 2030 2000.0 1.0 0.0 +it 04_res 1 313 2030 2000.0 1.0 0.0 +it 05_nuclear 1 313 2030 2000.0 1.0 0.0 +it 06_coal 1 313 2030 2000.0 1.0 0.0 +it 07_gas 1 313 2030 2000.0 1.0 0.0 +it 08_non-res 1 313 2030 400.0 1.0 0.0 +it 09_hydro_pump 1 313 2030 0.0 0.0 0.0 +it 01_solar 1 314 2030 2000.0 1.0 0.0 +it 02_wind_on 1 314 2030 2000.0 1.0 0.0 +it 03_wind_off 1 314 2030 2000.0 1.0 0.0 +it 04_res 1 314 2030 2000.0 1.0 0.0 +it 05_nuclear 1 314 2030 2000.0 1.0 0.0 +it 06_coal 1 314 2030 2000.0 1.0 0.0 +it 07_gas 1 314 2030 2000.0 1.0 0.0 +it 08_non-res 1 314 2030 500.0 1.0 0.0 +it 09_hydro_pump 1 314 2030 0.0 0.0 0.0 +it 01_solar 1 315 2030 2000.0 1.0 0.0 +it 02_wind_on 1 315 2030 2000.0 1.0 0.0 +it 03_wind_off 1 315 2030 2000.0 1.0 0.0 +it 04_res 1 315 2030 2000.0 1.0 0.0 +it 05_nuclear 1 315 2030 2000.0 1.0 0.0 +it 06_coal 1 315 2030 2000.0 1.0 0.0 +it 07_gas 1 315 2030 2000.0 1.0 0.0 +it 08_non-res 1 315 2030 600.0 1.0 0.0 +it 09_hydro_pump 1 315 2030 0.0 0.0 0.0 +it 01_solar 1 316 2030 2000.0 1.0 0.0 +it 02_wind_on 1 316 2030 2000.0 1.0 0.0 +it 03_wind_off 1 316 2030 2000.0 1.0 0.0 +it 04_res 1 316 2030 2000.0 1.0 0.0 +it 05_nuclear 1 316 2030 2000.0 1.0 0.0 +it 06_coal 1 316 2030 2000.0 1.0 0.0 +it 07_gas 1 316 2030 2000.0 1.0 0.0 +it 08_non-res 1 316 2030 700.0 1.0 0.0 +it 09_hydro_pump 1 316 2030 0.0 0.0 0.0 +it 01_solar 1 317 2030 2000.0 1.0 0.0 +it 02_wind_on 1 317 2030 2000.0 1.0 0.0 +it 03_wind_off 1 317 2030 2000.0 1.0 0.0 +it 04_res 1 317 2030 2000.0 1.0 0.0 +it 05_nuclear 1 317 2030 2000.0 1.0 0.0 +it 06_coal 1 317 2030 2000.0 1.0 0.0 +it 07_gas 1 317 2030 2000.0 1.0 0.0 +it 08_non-res 1 317 2030 800.0 1.0 0.0 +it 09_hydro_pump 1 317 2030 0.0 0.0 0.0 +it 01_solar 1 318 2030 2000.0 1.0 0.0 +it 02_wind_on 1 318 2030 2000.0 1.0 0.0 +it 03_wind_off 1 318 2030 2000.0 1.0 0.0 +it 04_res 1 318 2030 2000.0 1.0 0.0 +it 05_nuclear 1 318 2030 2000.0 1.0 0.0 +it 06_coal 1 318 2030 2000.0 1.0 0.0 +it 07_gas 1 318 2030 2000.0 1.0 0.0 +it 08_non-res 1 318 2030 900.0 1.0 0.0 +it 09_hydro_pump 1 318 2030 0.0 0.0 0.0 +it 01_solar 1 319 2030 2000.0 1.0 0.0 +it 02_wind_on 1 319 2030 2000.0 1.0 0.0 +it 03_wind_off 1 319 2030 2000.0 1.0 0.0 +it 04_res 1 319 2030 2000.0 1.0 0.0 +it 05_nuclear 1 319 2030 2000.0 1.0 0.0 +it 06_coal 1 319 2030 2000.0 1.0 0.0 +it 07_gas 1 319 2030 2000.0 1.0 0.0 +it 08_non-res 1 319 2030 1000.0 1.0 0.0 +it 09_hydro_pump 1 319 2030 0.0 0.0 0.0 +it 01_solar 1 320 2030 2000.0 1.0 0.0 +it 02_wind_on 1 320 2030 2000.0 1.0 0.0 +it 03_wind_off 1 320 2030 2000.0 1.0 0.0 +it 04_res 1 320 2030 2000.0 1.0 0.0 +it 05_nuclear 1 320 2030 2000.0 1.0 0.0 +it 06_coal 1 320 2030 2000.0 1.0 0.0 +it 07_gas 1 320 2030 2000.0 1.0 0.0 +it 08_non-res 1 320 2030 1100.0 1.0 0.0 +it 09_hydro_pump 1 320 2030 0.0 0.0 0.0 +it 01_solar 1 321 2030 2000.0 1.0 0.0 +it 02_wind_on 1 321 2030 2000.0 1.0 0.0 +it 03_wind_off 1 321 2030 2000.0 1.0 0.0 +it 04_res 1 321 2030 2000.0 1.0 0.0 +it 05_nuclear 1 321 2030 2000.0 1.0 0.0 +it 06_coal 1 321 2030 2000.0 1.0 0.0 +it 07_gas 1 321 2030 2000.0 1.0 0.0 +it 08_non-res 1 321 2030 1200.0 1.0 0.0 +it 09_hydro_pump 1 321 2030 0.0 0.0 0.0 +it 01_solar 1 322 2030 2000.0 1.0 0.0 +it 02_wind_on 1 322 2030 2000.0 1.0 0.0 +it 03_wind_off 1 322 2030 2000.0 1.0 0.0 +it 04_res 1 322 2030 2000.0 1.0 0.0 +it 05_nuclear 1 322 2030 2000.0 1.0 0.0 +it 06_coal 1 322 2030 2000.0 1.0 0.0 +it 07_gas 1 322 2030 2000.0 1.0 0.0 +it 08_non-res 1 322 2030 1300.0 1.0 0.0 +it 09_hydro_pump 1 322 2030 0.0 0.0 0.0 +it 01_solar 1 323 2030 2000.0 1.0 0.0 +it 02_wind_on 1 323 2030 2000.0 1.0 0.0 +it 03_wind_off 1 323 2030 2000.0 1.0 0.0 +it 04_res 1 323 2030 2000.0 1.0 0.0 +it 05_nuclear 1 323 2030 2000.0 1.0 0.0 +it 06_coal 1 323 2030 2000.0 1.0 0.0 +it 07_gas 1 323 2030 2000.0 1.0 0.0 +it 08_non-res 1 323 2030 1400.0 1.0 0.0 +it 09_hydro_pump 1 323 2030 0.0 0.0 0.0 +it 01_solar 1 324 2030 2000.0 1.0 0.0 +it 02_wind_on 1 324 2030 2000.0 1.0 0.0 +it 03_wind_off 1 324 2030 2000.0 1.0 0.0 +it 04_res 1 324 2030 2000.0 1.0 0.0 +it 05_nuclear 1 324 2030 2000.0 1.0 0.0 +it 06_coal 1 324 2030 2000.0 1.0 0.0 +it 07_gas 1 324 2030 2000.0 1.0 0.0 +it 08_non-res 1 324 2030 1500.0 1.0 0.0 +it 09_hydro_pump 1 324 2030 0.0 0.0 0.0 +it 01_solar 1 325 2030 2000.0 1.0 0.0 +it 02_wind_on 1 325 2030 2000.0 1.0 0.0 +it 03_wind_off 1 325 2030 2000.0 1.0 0.0 +it 04_res 1 325 2030 2000.0 1.0 0.0 +it 05_nuclear 1 325 2030 2000.0 1.0 0.0 +it 06_coal 1 325 2030 2000.0 1.0 0.0 +it 07_gas 1 325 2030 2000.0 1.0 0.0 +it 08_non-res 1 325 2030 1600.0 1.0 0.0 +it 09_hydro_pump 1 325 2030 0.0 0.0 0.0 +it 01_solar 1 326 2030 2000.0 1.0 0.0 +it 02_wind_on 1 326 2030 2000.0 1.0 0.0 +it 03_wind_off 1 326 2030 2000.0 1.0 0.0 +it 04_res 1 326 2030 2000.0 1.0 0.0 +it 05_nuclear 1 326 2030 2000.0 1.0 0.0 +it 06_coal 1 326 2030 2000.0 1.0 0.0 +it 07_gas 1 326 2030 2000.0 1.0 0.0 +it 08_non-res 1 326 2030 1700.0 1.0 0.0 +it 09_hydro_pump 1 326 2030 0.0 0.0 0.0 +it 01_solar 1 327 2030 2000.0 1.0 0.0 +it 02_wind_on 1 327 2030 2000.0 1.0 0.0 +it 03_wind_off 1 327 2030 2000.0 1.0 0.0 +it 04_res 1 327 2030 2000.0 1.0 0.0 +it 05_nuclear 1 327 2030 2000.0 1.0 0.0 +it 06_coal 1 327 2030 2000.0 1.0 0.0 +it 07_gas 1 327 2030 2000.0 1.0 0.0 +it 08_non-res 1 327 2030 1800.0 1.0 0.0 +it 09_hydro_pump 1 327 2030 0.0 0.0 0.0 +it 01_solar 1 328 2030 2000.0 1.0 0.0 +it 02_wind_on 1 328 2030 2000.0 1.0 0.0 +it 03_wind_off 1 328 2030 2000.0 1.0 0.0 +it 04_res 1 328 2030 2000.0 1.0 0.0 +it 05_nuclear 1 328 2030 2000.0 1.0 0.0 +it 06_coal 1 328 2030 2000.0 1.0 0.0 +it 07_gas 1 328 2030 2000.0 1.0 0.0 +it 08_non-res 1 328 2030 1900.0 1.0 0.0 +it 09_hydro_pump 1 328 2030 0.0 0.0 0.0 +it 01_solar 1 329 2030 2000.0 1.0 0.0 +it 02_wind_on 1 329 2030 2000.0 1.0 0.0 +it 03_wind_off 1 329 2030 2000.0 1.0 0.0 +it 04_res 1 329 2030 2000.0 1.0 0.0 +it 05_nuclear 1 329 2030 2000.0 1.0 0.0 +it 06_coal 1 329 2030 2000.0 1.0 0.0 +it 07_gas 1 329 2030 2000.0 1.0 0.0 +it 08_non-res 1 329 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 329 2030 0.0 0.0 0.0 +it 01_solar 1 330 2030 2000.0 1.0 0.0 +it 02_wind_on 1 330 2030 2000.0 1.0 0.0 +it 03_wind_off 1 330 2030 2000.0 1.0 0.0 +it 04_res 1 330 2030 2000.0 1.0 0.0 +it 05_nuclear 1 330 2030 2000.0 1.0 0.0 +it 06_coal 1 330 2030 2000.0 1.0 0.0 +it 07_gas 1 330 2030 2000.0 1.0 0.0 +it 08_non-res 1 330 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 330 2030 100.0 1.0 0.0 +it 01_solar 1 331 2030 2000.0 1.0 0.0 +it 02_wind_on 1 331 2030 2000.0 1.0 0.0 +it 03_wind_off 1 331 2030 2000.0 1.0 0.0 +it 04_res 1 331 2030 2000.0 1.0 0.0 +it 05_nuclear 1 331 2030 2000.0 1.0 0.0 +it 06_coal 1 331 2030 2000.0 1.0 0.0 +it 07_gas 1 331 2030 2000.0 1.0 0.0 +it 08_non-res 1 331 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 331 2030 200.0 1.0 0.0 +it 01_solar 1 332 2030 2000.0 1.0 0.0 +it 02_wind_on 1 332 2030 2000.0 1.0 0.0 +it 03_wind_off 1 332 2030 2000.0 1.0 0.0 +it 04_res 1 332 2030 2000.0 1.0 0.0 +it 05_nuclear 1 332 2030 2000.0 1.0 0.0 +it 06_coal 1 332 2030 2000.0 1.0 0.0 +it 07_gas 1 332 2030 2000.0 1.0 0.0 +it 08_non-res 1 332 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 332 2030 300.0 1.0 0.0 +it 01_solar 1 333 2030 2000.0 1.0 0.0 +it 02_wind_on 1 333 2030 2000.0 1.0 0.0 +it 03_wind_off 1 333 2030 2000.0 1.0 0.0 +it 04_res 1 333 2030 2000.0 1.0 0.0 +it 05_nuclear 1 333 2030 2000.0 1.0 0.0 +it 06_coal 1 333 2030 2000.0 1.0 0.0 +it 07_gas 1 333 2030 2000.0 1.0 0.0 +it 08_non-res 1 333 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 333 2030 400.0 1.0 0.0 +it 01_solar 1 334 2030 2000.0 1.0 0.0 +it 02_wind_on 1 334 2030 2000.0 1.0 0.0 +it 03_wind_off 1 334 2030 2000.0 1.0 0.0 +it 04_res 1 334 2030 2000.0 1.0 0.0 +it 05_nuclear 1 334 2030 2000.0 1.0 0.0 +it 06_coal 1 334 2030 2000.0 1.0 0.0 +it 07_gas 1 334 2030 2000.0 1.0 0.0 +it 08_non-res 1 334 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 334 2030 500.0 1.0 0.0 +it 01_solar 1 335 2030 2000.0 1.0 0.0 +it 02_wind_on 1 335 2030 2000.0 1.0 0.0 +it 03_wind_off 1 335 2030 2000.0 1.0 0.0 +it 04_res 1 335 2030 2000.0 1.0 0.0 +it 05_nuclear 1 335 2030 2000.0 1.0 0.0 +it 06_coal 1 335 2030 2000.0 1.0 0.0 +it 07_gas 1 335 2030 2000.0 1.0 0.0 +it 08_non-res 1 335 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 335 2030 600.0 1.0 0.0 +it 01_solar 1 336 2030 2000.0 1.0 0.0 +it 02_wind_on 1 336 2030 2000.0 1.0 0.0 +it 03_wind_off 1 336 2030 2000.0 1.0 0.0 +it 04_res 1 336 2030 2000.0 1.0 0.0 +it 05_nuclear 1 336 2030 2000.0 1.0 0.0 +it 06_coal 1 336 2030 2000.0 1.0 0.0 +it 07_gas 1 336 2030 2000.0 1.0 0.0 +it 08_non-res 1 336 2030 2000.0 1.0 0.0 +it 09_hydro_pump 1 336 2030 700.0 1.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-03-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-03-all.result.tsv new file mode 100644 index 0000000000..4d0e4d75b0 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-03-all.result.tsv @@ -0,0 +1,15 @@ +area timeId time OP. COST EXP OP. COST STD OP. COST MIN OP. COST MAX MRG. PRICE EXP MRG. PRICE STD MRG. PRICE MIN MRG. PRICE MAX +de 1 2030 282000.0 0.0 282000.0 282000.0 11.66 0.0 11.66 11.66 +de 2 2030 1252000.0 0.0 1252000.0 1252000.0 23.33 0.0 23.33 23.33 +de 3 2030 2910000.0 0.0 2910000.0 2910000.0 35.0 0.0 35.0 35.0 +de 4 2030 5256000.0 0.0 5256000.0 5256000.0 46.67 0.0 46.67 46.67 +de 5 2030 8290000.0 0.0 8290000.0 8290000.0 58.33 0.0 58.33 58.33 +de 6 2030 12018000.0 0.0 12018000.0 12018000.0 71.67 0.0 71.67 71.67 +de 7 2030 16444000.0 0.0 16444000.0 16444000.0 83.33 0.0 83.33 83.33 +es 1 2030 282000.0 0.0 282000.0 282000.0 11.66 0.0 11.66 11.66 +es 2 2030 1252000.0 0.0 1252000.0 1252000.0 23.33 0.0 23.33 23.33 +es 3 2030 2910000.0 0.0 2910000.0 2910000.0 35.0 0.0 35.0 35.0 +es 4 2030 5256000.0 0.0 5256000.0 5256000.0 46.67 0.0 46.67 46.67 +es 5 2030 8290000.0 0.0 8290000.0 8290000.0 58.33 0.0 58.33 58.33 +es 6 2030 12018000.0 0.0 12018000.0 12018000.0 71.67 0.0 71.67 71.67 +es 7 2030 16444000.0 0.0 16444000.0 16444000.0 83.33 0.0 83.33 83.33 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-04-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-04-all.result.tsv new file mode 100644 index 0000000000..5232984b37 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-04-all.result.tsv @@ -0,0 +1,15 @@ +area timeId time OV. COST EXP OP. COST EXP OP. COST STD OP. COST MIN OP. COST MAX MRG. PRICE EXP MRG. PRICE STD MRG. PRICE MIN MRG. PRICE MAX CO2 EMIS. EXP BALANCE EXP BALANCE STD BALANCE MIN BALANCE MAX ROW BAL. VALUES PSP EXP MISC. NDG EXP LOAD EXP LOAD STD LOAD MIN LOAD MAX H. ROR EXP H. ROR STD H. ROR MIN H. ROR MAX WIND EXP WIND STD WIND MIN WIND MAX SOLAR EXP SOLAR STD SOLAR MIN SOLAR MAX NUCLEAR EXP NUCLEAR STD NUCLEAR MIN NUCLEAR MAX LIGNITE EXP LIGNITE STD LIGNITE MIN LIGNITE MAX COAL EXP COAL STD COAL MIN COAL MAX GAS EXP GAS STD GAS MIN GAS MAX OIL EXP OIL STD OIL MIN OIL MAX MIX. FUEL EXP MIX. FUEL STD MIX. FUEL MIN MIX. FUEL MAX MISC. DTG EXP MISC. DTG STD MISC. DTG MIN MISC. DTG MAX H. STOR EXP H. STOR STD H. STOR MIN H. STOR MAX H. PUMP EXP H. PUMP STD H. PUMP MIN H. PUMP MAX H. LEV EXP H. LEV STD H. LEV MIN H. LEV MAX H. INFL EXP H. INFL STD H. INFL MIN H. INFL MAX H. OVFL EXP H. OVFL STD H. OVFL MIN H. OVFL MAX H. VAL EXP H. VAL STD H. VAL MIN H. VAL MAX H. COST EXP H. COST STD H. COST MIN H. COST MAX UNSP. ENRG EXP UNSP. ENRG STD UNSP. ENRG MIN UNSP. ENRG MAX SPIL. ENRG EXP SPIL. ENRG STD SPIL. ENRG MIN SPIL. ENRG MAX LOLD EXP LOLD STD LOLD MIN LOLD MAX LOLP VALUES AVL DTG EXP AVL DTG STD AVL DTG MIN AVL DTG MAX DTG MRG EXP DTG MRG STD DTG MRG MIN DTG MRG MAX MAX MRG EXP MAX MRG STD MAX MRG MIN MAX MRG MAX NP COST EXP NP COST STD NP COST MIN NP COST MAX NODU EXP NODU STD NODU MIN NODU MAX +de 1 2030 282000.0 282000.0 0.0 282000.0 282000.0 11.66 0.0 11.66 11.66 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27600.0 0.0 27600.0 27600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27600.0 0.0 27600.0 27600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 404400.0 0.0 404400.0 404400.0 404400.0 0.0 404400.0 404400.0 0.0 0.0 0.0 0.0 26.0 0.0 26.0 26.0 +de 2 2030 1252000.0 1252000.0 0.0 1252000.0 1252000.0 23.33 0.0 23.33 23.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 85200.0 0.0 85200.0 85200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 85200.0 0.0 85200.0 85200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 346800.0 0.0 346800.0 346800.0 346800.0 0.0 346800.0 346800.0 0.0 0.0 0.0 0.0 55.0 0.0 55.0 55.0 +de 3 2030 2910000.0 2910000.0 0.0 2910000.0 2910000.0 35.0 0.0 35.0 35.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 142800.0 0.0 142800.0 142800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 142800.0 0.0 142800.0 142800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 289200.0 0.0 289200.0 289200.0 289200.0 0.0 289200.0 289200.0 0.0 0.0 0.0 0.0 83.0 0.0 83.0 83.0 +de 4 2030 5256000.0 5256000.0 0.0 5256000.0 5256000.0 46.67 0.0 46.67 46.67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200400.0 0.0 200400.0 200400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200400.0 0.0 200400.0 200400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 231600.0 0.0 231600.0 231600.0 231600.0 0.0 231600.0 231600.0 0.0 0.0 0.0 0.0 111.0 0.0 111.0 111.0 +de 5 2030 8290000.0 8290000.0 0.0 8290000.0 8290000.0 58.33 0.0 58.33 58.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 258000.0 0.0 258000.0 258000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 258000.0 0.0 258000.0 258000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 174000.0 0.0 174000.0 174000.0 174000.0 0.0 174000.0 174000.0 0.0 0.0 0.0 0.0 139.0 0.0 139.0 139.0 +de 6 2030 12018000.0 12018000.0 0.0 12018000.0 12018000.0 71.67 0.0 71.67 71.67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 315600.0 0.0 315600.0 315600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 315600.0 0.0 315600.0 315600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 116400.0 0.0 116400.0 116400.0 116400.0 0.0 116400.0 116400.0 0.0 0.0 0.0 0.0 170.0 0.0 170.0 170.0 +de 7 2030 16444000.0 16444000.0 0.0 16444000.0 16444000.0 83.33 0.0 83.33 83.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 373200.0 0.0 373200.0 373200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 373200.0 0.0 373200.0 373200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 58800.0 0.0 58800.0 58800.0 58800.0 0.0 58800.0 58800.0 0.0 0.0 0.0 0.0 199.0 0.0 199.0 199.0 +es 1 2030 282000.0 282000.0 0.0 282000.0 282000.0 11.66 0.0 11.66 11.66 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27600.0 0.0 27600.0 27600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27600.0 0.0 27600.0 27600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 404400.0 0.0 404400.0 404400.0 404400.0 0.0 404400.0 404400.0 0.0 0.0 0.0 0.0 26.0 0.0 26.0 26.0 +es 2 2030 1252000.0 1252000.0 0.0 1252000.0 1252000.0 23.33 0.0 23.33 23.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 85200.0 0.0 85200.0 85200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 85200.0 0.0 85200.0 85200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 346800.0 0.0 346800.0 346800.0 346800.0 0.0 346800.0 346800.0 0.0 0.0 0.0 0.0 55.0 0.0 55.0 55.0 +es 3 2030 2910000.0 2910000.0 0.0 2910000.0 2910000.0 35.0 0.0 35.0 35.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 142800.0 0.0 142800.0 142800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 142800.0 0.0 142800.0 142800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 289200.0 0.0 289200.0 289200.0 289200.0 0.0 289200.0 289200.0 0.0 0.0 0.0 0.0 83.0 0.0 83.0 83.0 +es 4 2030 5256000.0 5256000.0 0.0 5256000.0 5256000.0 46.67 0.0 46.67 46.67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200400.0 0.0 200400.0 200400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200400.0 0.0 200400.0 200400.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 231600.0 0.0 231600.0 231600.0 231600.0 0.0 231600.0 231600.0 0.0 0.0 0.0 0.0 111.0 0.0 111.0 111.0 +es 5 2030 8290000.0 8290000.0 0.0 8290000.0 8290000.0 58.33 0.0 58.33 58.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 258000.0 0.0 258000.0 258000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 258000.0 0.0 258000.0 258000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 174000.0 0.0 174000.0 174000.0 174000.0 0.0 174000.0 174000.0 0.0 0.0 0.0 0.0 139.0 0.0 139.0 139.0 +es 6 2030 12018000.0 12018000.0 0.0 12018000.0 12018000.0 71.67 0.0 71.67 71.67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 315600.0 0.0 315600.0 315600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 315600.0 0.0 315600.0 315600.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 116400.0 0.0 116400.0 116400.0 116400.0 0.0 116400.0 116400.0 0.0 0.0 0.0 0.0 170.0 0.0 170.0 170.0 +es 7 2030 16444000.0 16444000.0 0.0 16444000.0 16444000.0 83.33 0.0 83.33 83.33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 373200.0 0.0 373200.0 373200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 373200.0 0.0 373200.0 373200.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 432000.0 0.0 432000.0 432000.0 58800.0 0.0 58800.0 58800.0 58800.0 0.0 58800.0 58800.0 0.0 0.0 0.0 0.0 199.0 0.0 199.0 199.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-05-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-05-all.result.tsv new file mode 100644 index 0000000000..c4361bb160 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-05-all.result.tsv @@ -0,0 +1,3 @@ +area timeId time OV. COST EXP OP. COST EXP OP. COST STD OP. COST MIN OP. COST MAX MRG. PRICE EXP MRG. PRICE STD MRG. PRICE MIN MRG. PRICE MAX CO2 EMIS. EXP BALANCE EXP BALANCE STD BALANCE MIN BALANCE MAX ROW BAL. VALUES PSP EXP MISC. NDG EXP LOAD EXP LOAD STD LOAD MIN LOAD MAX H. ROR EXP H. ROR STD H. ROR MIN H. ROR MAX WIND EXP WIND STD WIND MIN WIND MAX SOLAR EXP SOLAR STD SOLAR MIN SOLAR MAX NUCLEAR EXP NUCLEAR STD NUCLEAR MIN NUCLEAR MAX LIGNITE EXP LIGNITE STD LIGNITE MIN LIGNITE MAX COAL EXP COAL STD COAL MIN COAL MAX GAS EXP GAS STD GAS MIN GAS MAX OIL EXP OIL STD OIL MIN OIL MAX MIX. FUEL EXP MIX. FUEL STD MIX. FUEL MIN MIX. FUEL MAX MISC. DTG EXP MISC. DTG STD MISC. DTG MIN MISC. DTG MAX H. STOR EXP H. STOR STD H. STOR MIN H. STOR MAX H. PUMP EXP H. PUMP STD H. PUMP MIN H. PUMP MAX H. LEV EXP H. LEV STD H. LEV MIN H. LEV MAX H. INFL EXP H. INFL STD H. INFL MIN H. INFL MAX H. OVFL EXP H. OVFL STD H. OVFL MIN H. OVFL MAX H. VAL EXP H. VAL STD H. VAL MIN H. VAL MAX H. COST EXP H. COST STD H. COST MIN H. COST MAX UNSP. ENRG EXP UNSP. ENRG STD UNSP. ENRG MIN UNSP. ENRG MAX SPIL. ENRG EXP SPIL. ENRG STD SPIL. ENRG MIN SPIL. ENRG MAX LOLD EXP LOLD STD LOLD MIN LOLD MAX LOLP VALUES AVL DTG EXP AVL DTG STD AVL DTG MIN AVL DTG MAX DTG MRG EXP DTG MRG STD DTG MRG MIN DTG MRG MAX MAX MRG EXP MAX MRG STD MAX MRG MIN MAX MRG MAX NP COST EXP NP COST STD NP COST MIN NP COST MAX NODU EXP NODU STD NODU MIN NODU MAX +de 1 2030 46452000.0 46452000.0 0.0 46452000.0 46452000.0 47.14 0.0 47.14 47.14 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1402800.0 0.0 1402800.0 1402800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1402800.0 0.0 1402800.0 1402800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3024000.0 0.0 3024000.0 3024000.0 1621200.0 0.0 1621200.0 1621200.0 1621200.0 0.0 1621200.0 1621200.0 0.0 0.0 0.0 0.0 783.0 0.0 783.0 783.0 +es 1 2030 46452000.0 46452000.0 0.0 46452000.0 46452000.0 47.14 0.0 47.14 47.14 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1402800.0 0.0 1402800.0 1402800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1402800.0 0.0 1402800.0 1402800.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3024000.0 0.0 3024000.0 3024000.0 1621200.0 0.0 1621200.0 1621200.0 1621200.0 0.0 1621200.0 1621200.0 0.0 0.0 0.0 0.0 783.0 0.0 783.0 783.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-06-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-06-all.result.tsv new file mode 100644 index 0000000000..67ce2dcb67 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-06-all.result.tsv @@ -0,0 +1,15 @@ +area timeId time OP. COST MIN OP. COST MAX MRG. PRICE MIN MRG. PRICE MAX BALANCE MIN BALANCE MAX LOAD MIN LOAD MAX H. ROR MIN H. ROR MAX WIND MIN WIND MAX SOLAR MIN SOLAR MAX NUCLEAR MIN NUCLEAR MAX LIGNITE MIN LIGNITE MAX COAL MIN COAL MAX GAS MIN GAS MAX OIL MIN OIL MAX MIX. FUEL MIN MIX. FUEL MAX MISC. DTG MIN MISC. DTG MAX H. STOR MIN H. STOR MAX H. PUMP MIN H. PUMP MAX H. LEV MIN H. LEV MAX H. INFL MIN H. INFL MAX H. OVFL MIN H. OVFL MAX H. VAL MIN H. VAL MAX H. COST MIN H. COST MAX UNSP. ENRG MIN UNSP. ENRG MAX SPIL. ENRG MIN SPIL. ENRG MAX LOLD MIN LOLD MAX AVL DTG MIN AVL DTG MAX DTG MRG MIN DTG MRG MAX MAX MRG MIN MAX MRG MAX NP COST MIN NP COST MAX NODU MIN NODU MAX +de 1 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de 2 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de 3 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de 4 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de 5 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de 6 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de 7 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +es 1 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +es 2 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +es 3 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +es 4 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +es 5 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +es 6 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +es 7 2030 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-06.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-06.result.tsv new file mode 100644 index 0000000000..8c166f1fe8 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-06.result.tsv @@ -0,0 +1,2689 @@ +area mcYear timeId time NODU +de 1 1 2030 0.0 +de 1 2 2030 1.0 +de 1 3 2030 1.0 +de 1 4 2030 1.0 +de 1 5 2030 1.0 +de 1 6 2030 1.0 +de 1 7 2030 1.0 +de 1 8 2030 1.0 +de 1 9 2030 1.0 +de 1 10 2030 1.0 +de 1 11 2030 1.0 +de 1 12 2030 1.0 +de 1 13 2030 1.0 +de 1 14 2030 1.0 +de 1 15 2030 1.0 +de 1 16 2030 1.0 +de 1 17 2030 1.0 +de 1 18 2030 1.0 +de 1 19 2030 1.0 +de 1 20 2030 1.0 +de 1 21 2030 1.0 +de 1 22 2030 2.0 +de 1 23 2030 2.0 +de 1 24 2030 2.0 +de 1 25 2030 2.0 +de 1 26 2030 2.0 +de 1 27 2030 2.0 +de 1 28 2030 2.0 +de 1 29 2030 2.0 +de 1 30 2030 2.0 +de 1 31 2030 2.0 +de 1 32 2030 2.0 +de 1 33 2030 2.0 +de 1 34 2030 2.0 +de 1 35 2030 2.0 +de 1 36 2030 2.0 +de 1 37 2030 2.0 +de 1 38 2030 2.0 +de 1 39 2030 2.0 +de 1 40 2030 2.0 +de 1 41 2030 2.0 +de 1 42 2030 3.0 +de 1 43 2030 3.0 +de 1 44 2030 3.0 +de 1 45 2030 3.0 +de 1 46 2030 3.0 +de 1 47 2030 3.0 +de 1 48 2030 3.0 +de 1 49 2030 3.0 +de 1 50 2030 3.0 +de 1 51 2030 3.0 +de 1 52 2030 3.0 +de 1 53 2030 3.0 +de 1 54 2030 3.0 +de 1 55 2030 3.0 +de 1 56 2030 3.0 +de 1 57 2030 3.0 +de 1 58 2030 3.0 +de 1 59 2030 3.0 +de 1 60 2030 3.0 +de 1 61 2030 3.0 +de 1 62 2030 4.0 +de 1 63 2030 4.0 +de 1 64 2030 4.0 +de 1 65 2030 4.0 +de 1 66 2030 4.0 +de 1 67 2030 4.0 +de 1 68 2030 4.0 +de 1 69 2030 4.0 +de 1 70 2030 4.0 +de 1 71 2030 4.0 +de 1 72 2030 4.0 +de 1 73 2030 4.0 +de 1 74 2030 4.0 +de 1 75 2030 4.0 +de 1 76 2030 4.0 +de 1 77 2030 4.0 +de 1 78 2030 4.0 +de 1 79 2030 4.0 +de 1 80 2030 4.0 +de 1 81 2030 4.0 +de 1 82 2030 5.0 +de 1 83 2030 5.0 +de 1 84 2030 5.0 +de 1 85 2030 5.0 +de 1 86 2030 5.0 +de 1 87 2030 5.0 +de 1 88 2030 5.0 +de 1 89 2030 5.0 +de 1 90 2030 5.0 +de 1 91 2030 5.0 +de 1 92 2030 5.0 +de 1 93 2030 5.0 +de 1 94 2030 5.0 +de 1 95 2030 5.0 +de 1 96 2030 5.0 +de 1 97 2030 5.0 +de 1 98 2030 5.0 +de 1 99 2030 5.0 +de 1 100 2030 5.0 +de 1 101 2030 5.0 +de 1 102 2030 6.0 +de 1 103 2030 6.0 +de 1 104 2030 6.0 +de 1 105 2030 6.0 +de 1 106 2030 6.0 +de 1 107 2030 6.0 +de 1 108 2030 6.0 +de 1 109 2030 6.0 +de 1 110 2030 6.0 +de 1 111 2030 6.0 +de 1 112 2030 6.0 +de 1 113 2030 6.0 +de 1 114 2030 6.0 +de 1 115 2030 6.0 +de 1 116 2030 6.0 +de 1 117 2030 6.0 +de 1 118 2030 6.0 +de 1 119 2030 6.0 +de 1 120 2030 6.0 +de 1 121 2030 6.0 +de 1 122 2030 7.0 +de 1 123 2030 7.0 +de 1 124 2030 7.0 +de 1 125 2030 7.0 +de 1 126 2030 7.0 +de 1 127 2030 7.0 +de 1 128 2030 7.0 +de 1 129 2030 7.0 +de 1 130 2030 7.0 +de 1 131 2030 7.0 +de 1 132 2030 7.0 +de 1 133 2030 7.0 +de 1 134 2030 7.0 +de 1 135 2030 7.0 +de 1 136 2030 7.0 +de 1 137 2030 7.0 +de 1 138 2030 7.0 +de 1 139 2030 7.0 +de 1 140 2030 7.0 +de 1 141 2030 7.0 +de 1 142 2030 8.0 +de 1 143 2030 8.0 +de 1 144 2030 8.0 +de 1 145 2030 8.0 +de 1 146 2030 8.0 +de 1 147 2030 8.0 +de 1 148 2030 8.0 +de 1 149 2030 8.0 +de 1 150 2030 8.0 +de 1 151 2030 8.0 +de 1 152 2030 8.0 +de 1 153 2030 8.0 +de 1 154 2030 8.0 +de 1 155 2030 8.0 +de 1 156 2030 8.0 +de 1 157 2030 8.0 +de 1 158 2030 8.0 +de 1 159 2030 8.0 +de 1 160 2030 8.0 +de 1 161 2030 8.0 +de 1 162 2030 9.0 +de 1 163 2030 9.0 +de 1 164 2030 9.0 +de 1 165 2030 9.0 +de 1 166 2030 9.0 +de 1 167 2030 9.0 +de 1 168 2030 9.0 +de 1 169 2030 0.0 +de 1 170 2030 1.0 +de 1 171 2030 1.0 +de 1 172 2030 1.0 +de 1 173 2030 1.0 +de 1 174 2030 1.0 +de 1 175 2030 1.0 +de 1 176 2030 1.0 +de 1 177 2030 1.0 +de 1 178 2030 1.0 +de 1 179 2030 1.0 +de 1 180 2030 1.0 +de 1 181 2030 1.0 +de 1 182 2030 1.0 +de 1 183 2030 1.0 +de 1 184 2030 1.0 +de 1 185 2030 1.0 +de 1 186 2030 1.0 +de 1 187 2030 1.0 +de 1 188 2030 1.0 +de 1 189 2030 1.0 +de 1 190 2030 2.0 +de 1 191 2030 2.0 +de 1 192 2030 2.0 +de 1 193 2030 2.0 +de 1 194 2030 2.0 +de 1 195 2030 2.0 +de 1 196 2030 2.0 +de 1 197 2030 2.0 +de 1 198 2030 2.0 +de 1 199 2030 2.0 +de 1 200 2030 2.0 +de 1 201 2030 2.0 +de 1 202 2030 2.0 +de 1 203 2030 2.0 +de 1 204 2030 2.0 +de 1 205 2030 2.0 +de 1 206 2030 2.0 +de 1 207 2030 2.0 +de 1 208 2030 2.0 +de 1 209 2030 2.0 +de 1 210 2030 3.0 +de 1 211 2030 3.0 +de 1 212 2030 3.0 +de 1 213 2030 3.0 +de 1 214 2030 3.0 +de 1 215 2030 3.0 +de 1 216 2030 3.0 +de 1 217 2030 3.0 +de 1 218 2030 3.0 +de 1 219 2030 3.0 +de 1 220 2030 3.0 +de 1 221 2030 3.0 +de 1 222 2030 3.0 +de 1 223 2030 3.0 +de 1 224 2030 3.0 +de 1 225 2030 3.0 +de 1 226 2030 3.0 +de 1 227 2030 3.0 +de 1 228 2030 3.0 +de 1 229 2030 3.0 +de 1 230 2030 4.0 +de 1 231 2030 4.0 +de 1 232 2030 4.0 +de 1 233 2030 4.0 +de 1 234 2030 4.0 +de 1 235 2030 4.0 +de 1 236 2030 4.0 +de 1 237 2030 4.0 +de 1 238 2030 4.0 +de 1 239 2030 4.0 +de 1 240 2030 4.0 +de 1 241 2030 4.0 +de 1 242 2030 4.0 +de 1 243 2030 4.0 +de 1 244 2030 4.0 +de 1 245 2030 4.0 +de 1 246 2030 4.0 +de 1 247 2030 4.0 +de 1 248 2030 4.0 +de 1 249 2030 4.0 +de 1 250 2030 5.0 +de 1 251 2030 5.0 +de 1 252 2030 5.0 +de 1 253 2030 5.0 +de 1 254 2030 5.0 +de 1 255 2030 5.0 +de 1 256 2030 5.0 +de 1 257 2030 5.0 +de 1 258 2030 5.0 +de 1 259 2030 5.0 +de 1 260 2030 5.0 +de 1 261 2030 5.0 +de 1 262 2030 5.0 +de 1 263 2030 5.0 +de 1 264 2030 5.0 +de 1 265 2030 5.0 +de 1 266 2030 5.0 +de 1 267 2030 5.0 +de 1 268 2030 5.0 +de 1 269 2030 5.0 +de 1 270 2030 6.0 +de 1 271 2030 6.0 +de 1 272 2030 6.0 +de 1 273 2030 6.0 +de 1 274 2030 6.0 +de 1 275 2030 6.0 +de 1 276 2030 6.0 +de 1 277 2030 6.0 +de 1 278 2030 6.0 +de 1 279 2030 6.0 +de 1 280 2030 6.0 +de 1 281 2030 6.0 +de 1 282 2030 6.0 +de 1 283 2030 6.0 +de 1 284 2030 6.0 +de 1 285 2030 6.0 +de 1 286 2030 6.0 +de 1 287 2030 6.0 +de 1 288 2030 6.0 +de 1 289 2030 6.0 +de 1 290 2030 7.0 +de 1 291 2030 7.0 +de 1 292 2030 7.0 +de 1 293 2030 7.0 +de 1 294 2030 7.0 +de 1 295 2030 7.0 +de 1 296 2030 7.0 +de 1 297 2030 7.0 +de 1 298 2030 7.0 +de 1 299 2030 7.0 +de 1 300 2030 7.0 +de 1 301 2030 7.0 +de 1 302 2030 7.0 +de 1 303 2030 7.0 +de 1 304 2030 7.0 +de 1 305 2030 7.0 +de 1 306 2030 7.0 +de 1 307 2030 7.0 +de 1 308 2030 7.0 +de 1 309 2030 7.0 +de 1 310 2030 8.0 +de 1 311 2030 8.0 +de 1 312 2030 8.0 +de 1 313 2030 8.0 +de 1 314 2030 8.0 +de 1 315 2030 8.0 +de 1 316 2030 8.0 +de 1 317 2030 8.0 +de 1 318 2030 8.0 +de 1 319 2030 8.0 +de 1 320 2030 8.0 +de 1 321 2030 8.0 +de 1 322 2030 8.0 +de 1 323 2030 8.0 +de 1 324 2030 8.0 +de 1 325 2030 8.0 +de 1 326 2030 8.0 +de 1 327 2030 8.0 +de 1 328 2030 8.0 +de 1 329 2030 8.0 +de 1 330 2030 9.0 +de 1 331 2030 9.0 +de 1 332 2030 9.0 +de 1 333 2030 9.0 +de 1 334 2030 9.0 +de 1 335 2030 9.0 +de 1 336 2030 9.0 +es 1 1 2030 0.0 +es 1 2 2030 1.0 +es 1 3 2030 1.0 +es 1 4 2030 1.0 +es 1 5 2030 1.0 +es 1 6 2030 1.0 +es 1 7 2030 1.0 +es 1 8 2030 1.0 +es 1 9 2030 1.0 +es 1 10 2030 1.0 +es 1 11 2030 1.0 +es 1 12 2030 1.0 +es 1 13 2030 1.0 +es 1 14 2030 1.0 +es 1 15 2030 1.0 +es 1 16 2030 1.0 +es 1 17 2030 1.0 +es 1 18 2030 1.0 +es 1 19 2030 1.0 +es 1 20 2030 1.0 +es 1 21 2030 1.0 +es 1 22 2030 2.0 +es 1 23 2030 2.0 +es 1 24 2030 2.0 +es 1 25 2030 2.0 +es 1 26 2030 2.0 +es 1 27 2030 2.0 +es 1 28 2030 2.0 +es 1 29 2030 2.0 +es 1 30 2030 2.0 +es 1 31 2030 2.0 +es 1 32 2030 2.0 +es 1 33 2030 2.0 +es 1 34 2030 2.0 +es 1 35 2030 2.0 +es 1 36 2030 2.0 +es 1 37 2030 2.0 +es 1 38 2030 2.0 +es 1 39 2030 2.0 +es 1 40 2030 2.0 +es 1 41 2030 2.0 +es 1 42 2030 3.0 +es 1 43 2030 3.0 +es 1 44 2030 3.0 +es 1 45 2030 3.0 +es 1 46 2030 3.0 +es 1 47 2030 3.0 +es 1 48 2030 3.0 +es 1 49 2030 3.0 +es 1 50 2030 3.0 +es 1 51 2030 3.0 +es 1 52 2030 3.0 +es 1 53 2030 3.0 +es 1 54 2030 3.0 +es 1 55 2030 3.0 +es 1 56 2030 3.0 +es 1 57 2030 3.0 +es 1 58 2030 3.0 +es 1 59 2030 3.0 +es 1 60 2030 3.0 +es 1 61 2030 3.0 +es 1 62 2030 4.0 +es 1 63 2030 4.0 +es 1 64 2030 4.0 +es 1 65 2030 4.0 +es 1 66 2030 4.0 +es 1 67 2030 4.0 +es 1 68 2030 4.0 +es 1 69 2030 4.0 +es 1 70 2030 4.0 +es 1 71 2030 4.0 +es 1 72 2030 4.0 +es 1 73 2030 4.0 +es 1 74 2030 4.0 +es 1 75 2030 4.0 +es 1 76 2030 4.0 +es 1 77 2030 4.0 +es 1 78 2030 4.0 +es 1 79 2030 4.0 +es 1 80 2030 4.0 +es 1 81 2030 4.0 +es 1 82 2030 5.0 +es 1 83 2030 5.0 +es 1 84 2030 5.0 +es 1 85 2030 5.0 +es 1 86 2030 5.0 +es 1 87 2030 5.0 +es 1 88 2030 5.0 +es 1 89 2030 5.0 +es 1 90 2030 5.0 +es 1 91 2030 5.0 +es 1 92 2030 5.0 +es 1 93 2030 5.0 +es 1 94 2030 5.0 +es 1 95 2030 5.0 +es 1 96 2030 5.0 +es 1 97 2030 5.0 +es 1 98 2030 5.0 +es 1 99 2030 5.0 +es 1 100 2030 5.0 +es 1 101 2030 5.0 +es 1 102 2030 6.0 +es 1 103 2030 6.0 +es 1 104 2030 6.0 +es 1 105 2030 6.0 +es 1 106 2030 6.0 +es 1 107 2030 6.0 +es 1 108 2030 6.0 +es 1 109 2030 6.0 +es 1 110 2030 6.0 +es 1 111 2030 6.0 +es 1 112 2030 6.0 +es 1 113 2030 6.0 +es 1 114 2030 6.0 +es 1 115 2030 6.0 +es 1 116 2030 6.0 +es 1 117 2030 6.0 +es 1 118 2030 6.0 +es 1 119 2030 6.0 +es 1 120 2030 6.0 +es 1 121 2030 6.0 +es 1 122 2030 7.0 +es 1 123 2030 7.0 +es 1 124 2030 7.0 +es 1 125 2030 7.0 +es 1 126 2030 7.0 +es 1 127 2030 7.0 +es 1 128 2030 7.0 +es 1 129 2030 7.0 +es 1 130 2030 7.0 +es 1 131 2030 7.0 +es 1 132 2030 7.0 +es 1 133 2030 7.0 +es 1 134 2030 7.0 +es 1 135 2030 7.0 +es 1 136 2030 7.0 +es 1 137 2030 7.0 +es 1 138 2030 7.0 +es 1 139 2030 7.0 +es 1 140 2030 7.0 +es 1 141 2030 7.0 +es 1 142 2030 8.0 +es 1 143 2030 8.0 +es 1 144 2030 8.0 +es 1 145 2030 8.0 +es 1 146 2030 8.0 +es 1 147 2030 8.0 +es 1 148 2030 8.0 +es 1 149 2030 8.0 +es 1 150 2030 8.0 +es 1 151 2030 8.0 +es 1 152 2030 8.0 +es 1 153 2030 8.0 +es 1 154 2030 8.0 +es 1 155 2030 8.0 +es 1 156 2030 8.0 +es 1 157 2030 8.0 +es 1 158 2030 8.0 +es 1 159 2030 8.0 +es 1 160 2030 8.0 +es 1 161 2030 8.0 +es 1 162 2030 9.0 +es 1 163 2030 9.0 +es 1 164 2030 9.0 +es 1 165 2030 9.0 +es 1 166 2030 9.0 +es 1 167 2030 9.0 +es 1 168 2030 9.0 +es 1 169 2030 0.0 +es 1 170 2030 1.0 +es 1 171 2030 1.0 +es 1 172 2030 1.0 +es 1 173 2030 1.0 +es 1 174 2030 1.0 +es 1 175 2030 1.0 +es 1 176 2030 1.0 +es 1 177 2030 1.0 +es 1 178 2030 1.0 +es 1 179 2030 1.0 +es 1 180 2030 1.0 +es 1 181 2030 1.0 +es 1 182 2030 1.0 +es 1 183 2030 1.0 +es 1 184 2030 1.0 +es 1 185 2030 1.0 +es 1 186 2030 1.0 +es 1 187 2030 1.0 +es 1 188 2030 1.0 +es 1 189 2030 1.0 +es 1 190 2030 2.0 +es 1 191 2030 2.0 +es 1 192 2030 2.0 +es 1 193 2030 2.0 +es 1 194 2030 2.0 +es 1 195 2030 2.0 +es 1 196 2030 2.0 +es 1 197 2030 2.0 +es 1 198 2030 2.0 +es 1 199 2030 2.0 +es 1 200 2030 2.0 +es 1 201 2030 2.0 +es 1 202 2030 2.0 +es 1 203 2030 2.0 +es 1 204 2030 2.0 +es 1 205 2030 2.0 +es 1 206 2030 2.0 +es 1 207 2030 2.0 +es 1 208 2030 2.0 +es 1 209 2030 2.0 +es 1 210 2030 3.0 +es 1 211 2030 3.0 +es 1 212 2030 3.0 +es 1 213 2030 3.0 +es 1 214 2030 3.0 +es 1 215 2030 3.0 +es 1 216 2030 3.0 +es 1 217 2030 3.0 +es 1 218 2030 3.0 +es 1 219 2030 3.0 +es 1 220 2030 3.0 +es 1 221 2030 3.0 +es 1 222 2030 3.0 +es 1 223 2030 3.0 +es 1 224 2030 3.0 +es 1 225 2030 3.0 +es 1 226 2030 3.0 +es 1 227 2030 3.0 +es 1 228 2030 3.0 +es 1 229 2030 3.0 +es 1 230 2030 4.0 +es 1 231 2030 4.0 +es 1 232 2030 4.0 +es 1 233 2030 4.0 +es 1 234 2030 4.0 +es 1 235 2030 4.0 +es 1 236 2030 4.0 +es 1 237 2030 4.0 +es 1 238 2030 4.0 +es 1 239 2030 4.0 +es 1 240 2030 4.0 +es 1 241 2030 4.0 +es 1 242 2030 4.0 +es 1 243 2030 4.0 +es 1 244 2030 4.0 +es 1 245 2030 4.0 +es 1 246 2030 4.0 +es 1 247 2030 4.0 +es 1 248 2030 4.0 +es 1 249 2030 4.0 +es 1 250 2030 5.0 +es 1 251 2030 5.0 +es 1 252 2030 5.0 +es 1 253 2030 5.0 +es 1 254 2030 5.0 +es 1 255 2030 5.0 +es 1 256 2030 5.0 +es 1 257 2030 5.0 +es 1 258 2030 5.0 +es 1 259 2030 5.0 +es 1 260 2030 5.0 +es 1 261 2030 5.0 +es 1 262 2030 5.0 +es 1 263 2030 5.0 +es 1 264 2030 5.0 +es 1 265 2030 5.0 +es 1 266 2030 5.0 +es 1 267 2030 5.0 +es 1 268 2030 5.0 +es 1 269 2030 5.0 +es 1 270 2030 6.0 +es 1 271 2030 6.0 +es 1 272 2030 6.0 +es 1 273 2030 6.0 +es 1 274 2030 6.0 +es 1 275 2030 6.0 +es 1 276 2030 6.0 +es 1 277 2030 6.0 +es 1 278 2030 6.0 +es 1 279 2030 6.0 +es 1 280 2030 6.0 +es 1 281 2030 6.0 +es 1 282 2030 6.0 +es 1 283 2030 6.0 +es 1 284 2030 6.0 +es 1 285 2030 6.0 +es 1 286 2030 6.0 +es 1 287 2030 6.0 +es 1 288 2030 6.0 +es 1 289 2030 6.0 +es 1 290 2030 7.0 +es 1 291 2030 7.0 +es 1 292 2030 7.0 +es 1 293 2030 7.0 +es 1 294 2030 7.0 +es 1 295 2030 7.0 +es 1 296 2030 7.0 +es 1 297 2030 7.0 +es 1 298 2030 7.0 +es 1 299 2030 7.0 +es 1 300 2030 7.0 +es 1 301 2030 7.0 +es 1 302 2030 7.0 +es 1 303 2030 7.0 +es 1 304 2030 7.0 +es 1 305 2030 7.0 +es 1 306 2030 7.0 +es 1 307 2030 7.0 +es 1 308 2030 7.0 +es 1 309 2030 7.0 +es 1 310 2030 8.0 +es 1 311 2030 8.0 +es 1 312 2030 8.0 +es 1 313 2030 8.0 +es 1 314 2030 8.0 +es 1 315 2030 8.0 +es 1 316 2030 8.0 +es 1 317 2030 8.0 +es 1 318 2030 8.0 +es 1 319 2030 8.0 +es 1 320 2030 8.0 +es 1 321 2030 8.0 +es 1 322 2030 8.0 +es 1 323 2030 8.0 +es 1 324 2030 8.0 +es 1 325 2030 8.0 +es 1 326 2030 8.0 +es 1 327 2030 8.0 +es 1 328 2030 8.0 +es 1 329 2030 8.0 +es 1 330 2030 9.0 +es 1 331 2030 9.0 +es 1 332 2030 9.0 +es 1 333 2030 9.0 +es 1 334 2030 9.0 +es 1 335 2030 9.0 +es 1 336 2030 9.0 +fr 1 1 2030 0.0 +fr 1 2 2030 1.0 +fr 1 3 2030 1.0 +fr 1 4 2030 1.0 +fr 1 5 2030 1.0 +fr 1 6 2030 1.0 +fr 1 7 2030 1.0 +fr 1 8 2030 1.0 +fr 1 9 2030 1.0 +fr 1 10 2030 1.0 +fr 1 11 2030 1.0 +fr 1 12 2030 1.0 +fr 1 13 2030 1.0 +fr 1 14 2030 1.0 +fr 1 15 2030 1.0 +fr 1 16 2030 1.0 +fr 1 17 2030 1.0 +fr 1 18 2030 1.0 +fr 1 19 2030 1.0 +fr 1 20 2030 1.0 +fr 1 21 2030 1.0 +fr 1 22 2030 2.0 +fr 1 23 2030 2.0 +fr 1 24 2030 2.0 +fr 1 25 2030 2.0 +fr 1 26 2030 2.0 +fr 1 27 2030 2.0 +fr 1 28 2030 2.0 +fr 1 29 2030 2.0 +fr 1 30 2030 2.0 +fr 1 31 2030 2.0 +fr 1 32 2030 2.0 +fr 1 33 2030 2.0 +fr 1 34 2030 2.0 +fr 1 35 2030 2.0 +fr 1 36 2030 2.0 +fr 1 37 2030 2.0 +fr 1 38 2030 2.0 +fr 1 39 2030 2.0 +fr 1 40 2030 2.0 +fr 1 41 2030 2.0 +fr 1 42 2030 3.0 +fr 1 43 2030 3.0 +fr 1 44 2030 3.0 +fr 1 45 2030 3.0 +fr 1 46 2030 3.0 +fr 1 47 2030 3.0 +fr 1 48 2030 3.0 +fr 1 49 2030 3.0 +fr 1 50 2030 3.0 +fr 1 51 2030 3.0 +fr 1 52 2030 3.0 +fr 1 53 2030 3.0 +fr 1 54 2030 3.0 +fr 1 55 2030 3.0 +fr 1 56 2030 3.0 +fr 1 57 2030 3.0 +fr 1 58 2030 3.0 +fr 1 59 2030 3.0 +fr 1 60 2030 3.0 +fr 1 61 2030 3.0 +fr 1 62 2030 4.0 +fr 1 63 2030 4.0 +fr 1 64 2030 4.0 +fr 1 65 2030 4.0 +fr 1 66 2030 4.0 +fr 1 67 2030 4.0 +fr 1 68 2030 4.0 +fr 1 69 2030 4.0 +fr 1 70 2030 4.0 +fr 1 71 2030 4.0 +fr 1 72 2030 4.0 +fr 1 73 2030 4.0 +fr 1 74 2030 4.0 +fr 1 75 2030 4.0 +fr 1 76 2030 4.0 +fr 1 77 2030 4.0 +fr 1 78 2030 4.0 +fr 1 79 2030 4.0 +fr 1 80 2030 4.0 +fr 1 81 2030 4.0 +fr 1 82 2030 5.0 +fr 1 83 2030 5.0 +fr 1 84 2030 5.0 +fr 1 85 2030 5.0 +fr 1 86 2030 5.0 +fr 1 87 2030 5.0 +fr 1 88 2030 5.0 +fr 1 89 2030 5.0 +fr 1 90 2030 5.0 +fr 1 91 2030 5.0 +fr 1 92 2030 5.0 +fr 1 93 2030 5.0 +fr 1 94 2030 5.0 +fr 1 95 2030 5.0 +fr 1 96 2030 5.0 +fr 1 97 2030 5.0 +fr 1 98 2030 5.0 +fr 1 99 2030 5.0 +fr 1 100 2030 5.0 +fr 1 101 2030 5.0 +fr 1 102 2030 6.0 +fr 1 103 2030 6.0 +fr 1 104 2030 6.0 +fr 1 105 2030 6.0 +fr 1 106 2030 6.0 +fr 1 107 2030 6.0 +fr 1 108 2030 6.0 +fr 1 109 2030 6.0 +fr 1 110 2030 6.0 +fr 1 111 2030 6.0 +fr 1 112 2030 6.0 +fr 1 113 2030 6.0 +fr 1 114 2030 6.0 +fr 1 115 2030 6.0 +fr 1 116 2030 6.0 +fr 1 117 2030 6.0 +fr 1 118 2030 6.0 +fr 1 119 2030 6.0 +fr 1 120 2030 6.0 +fr 1 121 2030 6.0 +fr 1 122 2030 7.0 +fr 1 123 2030 7.0 +fr 1 124 2030 7.0 +fr 1 125 2030 7.0 +fr 1 126 2030 7.0 +fr 1 127 2030 7.0 +fr 1 128 2030 7.0 +fr 1 129 2030 7.0 +fr 1 130 2030 7.0 +fr 1 131 2030 7.0 +fr 1 132 2030 7.0 +fr 1 133 2030 7.0 +fr 1 134 2030 7.0 +fr 1 135 2030 7.0 +fr 1 136 2030 7.0 +fr 1 137 2030 7.0 +fr 1 138 2030 7.0 +fr 1 139 2030 7.0 +fr 1 140 2030 7.0 +fr 1 141 2030 7.0 +fr 1 142 2030 8.0 +fr 1 143 2030 8.0 +fr 1 144 2030 8.0 +fr 1 145 2030 8.0 +fr 1 146 2030 8.0 +fr 1 147 2030 8.0 +fr 1 148 2030 8.0 +fr 1 149 2030 8.0 +fr 1 150 2030 8.0 +fr 1 151 2030 8.0 +fr 1 152 2030 8.0 +fr 1 153 2030 8.0 +fr 1 154 2030 8.0 +fr 1 155 2030 8.0 +fr 1 156 2030 8.0 +fr 1 157 2030 8.0 +fr 1 158 2030 8.0 +fr 1 159 2030 8.0 +fr 1 160 2030 8.0 +fr 1 161 2030 8.0 +fr 1 162 2030 9.0 +fr 1 163 2030 9.0 +fr 1 164 2030 9.0 +fr 1 165 2030 9.0 +fr 1 166 2030 9.0 +fr 1 167 2030 9.0 +fr 1 168 2030 9.0 +fr 1 169 2030 0.0 +fr 1 170 2030 1.0 +fr 1 171 2030 1.0 +fr 1 172 2030 1.0 +fr 1 173 2030 1.0 +fr 1 174 2030 1.0 +fr 1 175 2030 1.0 +fr 1 176 2030 1.0 +fr 1 177 2030 1.0 +fr 1 178 2030 1.0 +fr 1 179 2030 1.0 +fr 1 180 2030 1.0 +fr 1 181 2030 1.0 +fr 1 182 2030 1.0 +fr 1 183 2030 1.0 +fr 1 184 2030 1.0 +fr 1 185 2030 1.0 +fr 1 186 2030 1.0 +fr 1 187 2030 1.0 +fr 1 188 2030 1.0 +fr 1 189 2030 1.0 +fr 1 190 2030 2.0 +fr 1 191 2030 2.0 +fr 1 192 2030 2.0 +fr 1 193 2030 2.0 +fr 1 194 2030 2.0 +fr 1 195 2030 2.0 +fr 1 196 2030 2.0 +fr 1 197 2030 2.0 +fr 1 198 2030 2.0 +fr 1 199 2030 2.0 +fr 1 200 2030 2.0 +fr 1 201 2030 2.0 +fr 1 202 2030 2.0 +fr 1 203 2030 2.0 +fr 1 204 2030 2.0 +fr 1 205 2030 2.0 +fr 1 206 2030 2.0 +fr 1 207 2030 2.0 +fr 1 208 2030 2.0 +fr 1 209 2030 2.0 +fr 1 210 2030 3.0 +fr 1 211 2030 3.0 +fr 1 212 2030 3.0 +fr 1 213 2030 3.0 +fr 1 214 2030 3.0 +fr 1 215 2030 3.0 +fr 1 216 2030 3.0 +fr 1 217 2030 3.0 +fr 1 218 2030 3.0 +fr 1 219 2030 3.0 +fr 1 220 2030 3.0 +fr 1 221 2030 3.0 +fr 1 222 2030 3.0 +fr 1 223 2030 3.0 +fr 1 224 2030 3.0 +fr 1 225 2030 3.0 +fr 1 226 2030 3.0 +fr 1 227 2030 3.0 +fr 1 228 2030 3.0 +fr 1 229 2030 3.0 +fr 1 230 2030 4.0 +fr 1 231 2030 4.0 +fr 1 232 2030 4.0 +fr 1 233 2030 4.0 +fr 1 234 2030 4.0 +fr 1 235 2030 4.0 +fr 1 236 2030 4.0 +fr 1 237 2030 4.0 +fr 1 238 2030 4.0 +fr 1 239 2030 4.0 +fr 1 240 2030 4.0 +fr 1 241 2030 4.0 +fr 1 242 2030 4.0 +fr 1 243 2030 4.0 +fr 1 244 2030 4.0 +fr 1 245 2030 4.0 +fr 1 246 2030 4.0 +fr 1 247 2030 4.0 +fr 1 248 2030 4.0 +fr 1 249 2030 4.0 +fr 1 250 2030 5.0 +fr 1 251 2030 5.0 +fr 1 252 2030 5.0 +fr 1 253 2030 5.0 +fr 1 254 2030 5.0 +fr 1 255 2030 5.0 +fr 1 256 2030 5.0 +fr 1 257 2030 5.0 +fr 1 258 2030 5.0 +fr 1 259 2030 5.0 +fr 1 260 2030 5.0 +fr 1 261 2030 5.0 +fr 1 262 2030 5.0 +fr 1 263 2030 5.0 +fr 1 264 2030 5.0 +fr 1 265 2030 5.0 +fr 1 266 2030 5.0 +fr 1 267 2030 5.0 +fr 1 268 2030 5.0 +fr 1 269 2030 5.0 +fr 1 270 2030 6.0 +fr 1 271 2030 6.0 +fr 1 272 2030 6.0 +fr 1 273 2030 6.0 +fr 1 274 2030 6.0 +fr 1 275 2030 6.0 +fr 1 276 2030 6.0 +fr 1 277 2030 6.0 +fr 1 278 2030 6.0 +fr 1 279 2030 6.0 +fr 1 280 2030 6.0 +fr 1 281 2030 6.0 +fr 1 282 2030 6.0 +fr 1 283 2030 6.0 +fr 1 284 2030 6.0 +fr 1 285 2030 6.0 +fr 1 286 2030 6.0 +fr 1 287 2030 6.0 +fr 1 288 2030 6.0 +fr 1 289 2030 6.0 +fr 1 290 2030 7.0 +fr 1 291 2030 7.0 +fr 1 292 2030 7.0 +fr 1 293 2030 7.0 +fr 1 294 2030 7.0 +fr 1 295 2030 7.0 +fr 1 296 2030 7.0 +fr 1 297 2030 7.0 +fr 1 298 2030 7.0 +fr 1 299 2030 7.0 +fr 1 300 2030 7.0 +fr 1 301 2030 7.0 +fr 1 302 2030 7.0 +fr 1 303 2030 7.0 +fr 1 304 2030 7.0 +fr 1 305 2030 7.0 +fr 1 306 2030 7.0 +fr 1 307 2030 7.0 +fr 1 308 2030 7.0 +fr 1 309 2030 7.0 +fr 1 310 2030 8.0 +fr 1 311 2030 8.0 +fr 1 312 2030 8.0 +fr 1 313 2030 8.0 +fr 1 314 2030 8.0 +fr 1 315 2030 8.0 +fr 1 316 2030 8.0 +fr 1 317 2030 8.0 +fr 1 318 2030 8.0 +fr 1 319 2030 8.0 +fr 1 320 2030 8.0 +fr 1 321 2030 8.0 +fr 1 322 2030 8.0 +fr 1 323 2030 8.0 +fr 1 324 2030 8.0 +fr 1 325 2030 8.0 +fr 1 326 2030 8.0 +fr 1 327 2030 8.0 +fr 1 328 2030 8.0 +fr 1 329 2030 8.0 +fr 1 330 2030 9.0 +fr 1 331 2030 9.0 +fr 1 332 2030 9.0 +fr 1 333 2030 9.0 +fr 1 334 2030 9.0 +fr 1 335 2030 9.0 +fr 1 336 2030 9.0 +it 1 1 2030 0.0 +it 1 2 2030 1.0 +it 1 3 2030 1.0 +it 1 4 2030 1.0 +it 1 5 2030 1.0 +it 1 6 2030 1.0 +it 1 7 2030 1.0 +it 1 8 2030 1.0 +it 1 9 2030 1.0 +it 1 10 2030 1.0 +it 1 11 2030 1.0 +it 1 12 2030 1.0 +it 1 13 2030 1.0 +it 1 14 2030 1.0 +it 1 15 2030 1.0 +it 1 16 2030 1.0 +it 1 17 2030 1.0 +it 1 18 2030 1.0 +it 1 19 2030 1.0 +it 1 20 2030 1.0 +it 1 21 2030 1.0 +it 1 22 2030 2.0 +it 1 23 2030 2.0 +it 1 24 2030 2.0 +it 1 25 2030 2.0 +it 1 26 2030 2.0 +it 1 27 2030 2.0 +it 1 28 2030 2.0 +it 1 29 2030 2.0 +it 1 30 2030 2.0 +it 1 31 2030 2.0 +it 1 32 2030 2.0 +it 1 33 2030 2.0 +it 1 34 2030 2.0 +it 1 35 2030 2.0 +it 1 36 2030 2.0 +it 1 37 2030 2.0 +it 1 38 2030 2.0 +it 1 39 2030 2.0 +it 1 40 2030 2.0 +it 1 41 2030 2.0 +it 1 42 2030 3.0 +it 1 43 2030 3.0 +it 1 44 2030 3.0 +it 1 45 2030 3.0 +it 1 46 2030 3.0 +it 1 47 2030 3.0 +it 1 48 2030 3.0 +it 1 49 2030 3.0 +it 1 50 2030 3.0 +it 1 51 2030 3.0 +it 1 52 2030 3.0 +it 1 53 2030 3.0 +it 1 54 2030 3.0 +it 1 55 2030 3.0 +it 1 56 2030 3.0 +it 1 57 2030 3.0 +it 1 58 2030 3.0 +it 1 59 2030 3.0 +it 1 60 2030 3.0 +it 1 61 2030 3.0 +it 1 62 2030 4.0 +it 1 63 2030 4.0 +it 1 64 2030 4.0 +it 1 65 2030 4.0 +it 1 66 2030 4.0 +it 1 67 2030 4.0 +it 1 68 2030 4.0 +it 1 69 2030 4.0 +it 1 70 2030 4.0 +it 1 71 2030 4.0 +it 1 72 2030 4.0 +it 1 73 2030 4.0 +it 1 74 2030 4.0 +it 1 75 2030 4.0 +it 1 76 2030 4.0 +it 1 77 2030 4.0 +it 1 78 2030 4.0 +it 1 79 2030 4.0 +it 1 80 2030 4.0 +it 1 81 2030 4.0 +it 1 82 2030 5.0 +it 1 83 2030 5.0 +it 1 84 2030 5.0 +it 1 85 2030 5.0 +it 1 86 2030 5.0 +it 1 87 2030 5.0 +it 1 88 2030 5.0 +it 1 89 2030 5.0 +it 1 90 2030 5.0 +it 1 91 2030 5.0 +it 1 92 2030 5.0 +it 1 93 2030 5.0 +it 1 94 2030 5.0 +it 1 95 2030 5.0 +it 1 96 2030 5.0 +it 1 97 2030 5.0 +it 1 98 2030 5.0 +it 1 99 2030 5.0 +it 1 100 2030 5.0 +it 1 101 2030 5.0 +it 1 102 2030 6.0 +it 1 103 2030 6.0 +it 1 104 2030 6.0 +it 1 105 2030 6.0 +it 1 106 2030 6.0 +it 1 107 2030 6.0 +it 1 108 2030 6.0 +it 1 109 2030 6.0 +it 1 110 2030 6.0 +it 1 111 2030 6.0 +it 1 112 2030 6.0 +it 1 113 2030 6.0 +it 1 114 2030 6.0 +it 1 115 2030 6.0 +it 1 116 2030 6.0 +it 1 117 2030 6.0 +it 1 118 2030 6.0 +it 1 119 2030 6.0 +it 1 120 2030 6.0 +it 1 121 2030 6.0 +it 1 122 2030 7.0 +it 1 123 2030 7.0 +it 1 124 2030 7.0 +it 1 125 2030 7.0 +it 1 126 2030 7.0 +it 1 127 2030 7.0 +it 1 128 2030 7.0 +it 1 129 2030 7.0 +it 1 130 2030 7.0 +it 1 131 2030 7.0 +it 1 132 2030 7.0 +it 1 133 2030 7.0 +it 1 134 2030 7.0 +it 1 135 2030 7.0 +it 1 136 2030 7.0 +it 1 137 2030 7.0 +it 1 138 2030 7.0 +it 1 139 2030 7.0 +it 1 140 2030 7.0 +it 1 141 2030 7.0 +it 1 142 2030 8.0 +it 1 143 2030 8.0 +it 1 144 2030 8.0 +it 1 145 2030 8.0 +it 1 146 2030 8.0 +it 1 147 2030 8.0 +it 1 148 2030 8.0 +it 1 149 2030 8.0 +it 1 150 2030 8.0 +it 1 151 2030 8.0 +it 1 152 2030 8.0 +it 1 153 2030 8.0 +it 1 154 2030 8.0 +it 1 155 2030 8.0 +it 1 156 2030 8.0 +it 1 157 2030 8.0 +it 1 158 2030 8.0 +it 1 159 2030 8.0 +it 1 160 2030 8.0 +it 1 161 2030 8.0 +it 1 162 2030 9.0 +it 1 163 2030 9.0 +it 1 164 2030 9.0 +it 1 165 2030 9.0 +it 1 166 2030 9.0 +it 1 167 2030 9.0 +it 1 168 2030 9.0 +it 1 169 2030 0.0 +it 1 170 2030 1.0 +it 1 171 2030 1.0 +it 1 172 2030 1.0 +it 1 173 2030 1.0 +it 1 174 2030 1.0 +it 1 175 2030 1.0 +it 1 176 2030 1.0 +it 1 177 2030 1.0 +it 1 178 2030 1.0 +it 1 179 2030 1.0 +it 1 180 2030 1.0 +it 1 181 2030 1.0 +it 1 182 2030 1.0 +it 1 183 2030 1.0 +it 1 184 2030 1.0 +it 1 185 2030 1.0 +it 1 186 2030 1.0 +it 1 187 2030 1.0 +it 1 188 2030 1.0 +it 1 189 2030 1.0 +it 1 190 2030 2.0 +it 1 191 2030 2.0 +it 1 192 2030 2.0 +it 1 193 2030 2.0 +it 1 194 2030 2.0 +it 1 195 2030 2.0 +it 1 196 2030 2.0 +it 1 197 2030 2.0 +it 1 198 2030 2.0 +it 1 199 2030 2.0 +it 1 200 2030 2.0 +it 1 201 2030 2.0 +it 1 202 2030 2.0 +it 1 203 2030 2.0 +it 1 204 2030 2.0 +it 1 205 2030 2.0 +it 1 206 2030 2.0 +it 1 207 2030 2.0 +it 1 208 2030 2.0 +it 1 209 2030 2.0 +it 1 210 2030 3.0 +it 1 211 2030 3.0 +it 1 212 2030 3.0 +it 1 213 2030 3.0 +it 1 214 2030 3.0 +it 1 215 2030 3.0 +it 1 216 2030 3.0 +it 1 217 2030 3.0 +it 1 218 2030 3.0 +it 1 219 2030 3.0 +it 1 220 2030 3.0 +it 1 221 2030 3.0 +it 1 222 2030 3.0 +it 1 223 2030 3.0 +it 1 224 2030 3.0 +it 1 225 2030 3.0 +it 1 226 2030 3.0 +it 1 227 2030 3.0 +it 1 228 2030 3.0 +it 1 229 2030 3.0 +it 1 230 2030 4.0 +it 1 231 2030 4.0 +it 1 232 2030 4.0 +it 1 233 2030 4.0 +it 1 234 2030 4.0 +it 1 235 2030 4.0 +it 1 236 2030 4.0 +it 1 237 2030 4.0 +it 1 238 2030 4.0 +it 1 239 2030 4.0 +it 1 240 2030 4.0 +it 1 241 2030 4.0 +it 1 242 2030 4.0 +it 1 243 2030 4.0 +it 1 244 2030 4.0 +it 1 245 2030 4.0 +it 1 246 2030 4.0 +it 1 247 2030 4.0 +it 1 248 2030 4.0 +it 1 249 2030 4.0 +it 1 250 2030 5.0 +it 1 251 2030 5.0 +it 1 252 2030 5.0 +it 1 253 2030 5.0 +it 1 254 2030 5.0 +it 1 255 2030 5.0 +it 1 256 2030 5.0 +it 1 257 2030 5.0 +it 1 258 2030 5.0 +it 1 259 2030 5.0 +it 1 260 2030 5.0 +it 1 261 2030 5.0 +it 1 262 2030 5.0 +it 1 263 2030 5.0 +it 1 264 2030 5.0 +it 1 265 2030 5.0 +it 1 266 2030 5.0 +it 1 267 2030 5.0 +it 1 268 2030 5.0 +it 1 269 2030 5.0 +it 1 270 2030 6.0 +it 1 271 2030 6.0 +it 1 272 2030 6.0 +it 1 273 2030 6.0 +it 1 274 2030 6.0 +it 1 275 2030 6.0 +it 1 276 2030 6.0 +it 1 277 2030 6.0 +it 1 278 2030 6.0 +it 1 279 2030 6.0 +it 1 280 2030 6.0 +it 1 281 2030 6.0 +it 1 282 2030 6.0 +it 1 283 2030 6.0 +it 1 284 2030 6.0 +it 1 285 2030 6.0 +it 1 286 2030 6.0 +it 1 287 2030 6.0 +it 1 288 2030 6.0 +it 1 289 2030 6.0 +it 1 290 2030 7.0 +it 1 291 2030 7.0 +it 1 292 2030 7.0 +it 1 293 2030 7.0 +it 1 294 2030 7.0 +it 1 295 2030 7.0 +it 1 296 2030 7.0 +it 1 297 2030 7.0 +it 1 298 2030 7.0 +it 1 299 2030 7.0 +it 1 300 2030 7.0 +it 1 301 2030 7.0 +it 1 302 2030 7.0 +it 1 303 2030 7.0 +it 1 304 2030 7.0 +it 1 305 2030 7.0 +it 1 306 2030 7.0 +it 1 307 2030 7.0 +it 1 308 2030 7.0 +it 1 309 2030 7.0 +it 1 310 2030 8.0 +it 1 311 2030 8.0 +it 1 312 2030 8.0 +it 1 313 2030 8.0 +it 1 314 2030 8.0 +it 1 315 2030 8.0 +it 1 316 2030 8.0 +it 1 317 2030 8.0 +it 1 318 2030 8.0 +it 1 319 2030 8.0 +it 1 320 2030 8.0 +it 1 321 2030 8.0 +it 1 322 2030 8.0 +it 1 323 2030 8.0 +it 1 324 2030 8.0 +it 1 325 2030 8.0 +it 1 326 2030 8.0 +it 1 327 2030 8.0 +it 1 328 2030 8.0 +it 1 329 2030 8.0 +it 1 330 2030 9.0 +it 1 331 2030 9.0 +it 1 332 2030 9.0 +it 1 333 2030 9.0 +it 1 334 2030 9.0 +it 1 335 2030 9.0 +it 1 336 2030 9.0 +de 2 1 2030 0.0 +de 2 2 2030 1.0 +de 2 3 2030 1.0 +de 2 4 2030 1.0 +de 2 5 2030 1.0 +de 2 6 2030 1.0 +de 2 7 2030 1.0 +de 2 8 2030 1.0 +de 2 9 2030 1.0 +de 2 10 2030 1.0 +de 2 11 2030 1.0 +de 2 12 2030 1.0 +de 2 13 2030 1.0 +de 2 14 2030 1.0 +de 2 15 2030 1.0 +de 2 16 2030 1.0 +de 2 17 2030 1.0 +de 2 18 2030 1.0 +de 2 19 2030 1.0 +de 2 20 2030 1.0 +de 2 21 2030 1.0 +de 2 22 2030 2.0 +de 2 23 2030 2.0 +de 2 24 2030 2.0 +de 2 25 2030 2.0 +de 2 26 2030 2.0 +de 2 27 2030 2.0 +de 2 28 2030 2.0 +de 2 29 2030 2.0 +de 2 30 2030 2.0 +de 2 31 2030 2.0 +de 2 32 2030 2.0 +de 2 33 2030 2.0 +de 2 34 2030 2.0 +de 2 35 2030 2.0 +de 2 36 2030 2.0 +de 2 37 2030 2.0 +de 2 38 2030 2.0 +de 2 39 2030 2.0 +de 2 40 2030 2.0 +de 2 41 2030 2.0 +de 2 42 2030 3.0 +de 2 43 2030 3.0 +de 2 44 2030 3.0 +de 2 45 2030 3.0 +de 2 46 2030 3.0 +de 2 47 2030 3.0 +de 2 48 2030 3.0 +de 2 49 2030 3.0 +de 2 50 2030 3.0 +de 2 51 2030 3.0 +de 2 52 2030 3.0 +de 2 53 2030 3.0 +de 2 54 2030 3.0 +de 2 55 2030 3.0 +de 2 56 2030 3.0 +de 2 57 2030 3.0 +de 2 58 2030 3.0 +de 2 59 2030 3.0 +de 2 60 2030 3.0 +de 2 61 2030 3.0 +de 2 62 2030 4.0 +de 2 63 2030 4.0 +de 2 64 2030 4.0 +de 2 65 2030 4.0 +de 2 66 2030 4.0 +de 2 67 2030 4.0 +de 2 68 2030 4.0 +de 2 69 2030 4.0 +de 2 70 2030 4.0 +de 2 71 2030 4.0 +de 2 72 2030 4.0 +de 2 73 2030 4.0 +de 2 74 2030 4.0 +de 2 75 2030 4.0 +de 2 76 2030 4.0 +de 2 77 2030 4.0 +de 2 78 2030 4.0 +de 2 79 2030 4.0 +de 2 80 2030 4.0 +de 2 81 2030 4.0 +de 2 82 2030 5.0 +de 2 83 2030 5.0 +de 2 84 2030 5.0 +de 2 85 2030 5.0 +de 2 86 2030 5.0 +de 2 87 2030 5.0 +de 2 88 2030 5.0 +de 2 89 2030 5.0 +de 2 90 2030 5.0 +de 2 91 2030 5.0 +de 2 92 2030 5.0 +de 2 93 2030 5.0 +de 2 94 2030 5.0 +de 2 95 2030 5.0 +de 2 96 2030 5.0 +de 2 97 2030 5.0 +de 2 98 2030 5.0 +de 2 99 2030 5.0 +de 2 100 2030 5.0 +de 2 101 2030 5.0 +de 2 102 2030 6.0 +de 2 103 2030 6.0 +de 2 104 2030 6.0 +de 2 105 2030 6.0 +de 2 106 2030 6.0 +de 2 107 2030 6.0 +de 2 108 2030 6.0 +de 2 109 2030 6.0 +de 2 110 2030 6.0 +de 2 111 2030 6.0 +de 2 112 2030 6.0 +de 2 113 2030 6.0 +de 2 114 2030 6.0 +de 2 115 2030 6.0 +de 2 116 2030 6.0 +de 2 117 2030 6.0 +de 2 118 2030 6.0 +de 2 119 2030 6.0 +de 2 120 2030 6.0 +de 2 121 2030 6.0 +de 2 122 2030 7.0 +de 2 123 2030 7.0 +de 2 124 2030 7.0 +de 2 125 2030 7.0 +de 2 126 2030 7.0 +de 2 127 2030 7.0 +de 2 128 2030 7.0 +de 2 129 2030 7.0 +de 2 130 2030 7.0 +de 2 131 2030 7.0 +de 2 132 2030 7.0 +de 2 133 2030 7.0 +de 2 134 2030 7.0 +de 2 135 2030 7.0 +de 2 136 2030 7.0 +de 2 137 2030 7.0 +de 2 138 2030 7.0 +de 2 139 2030 7.0 +de 2 140 2030 7.0 +de 2 141 2030 7.0 +de 2 142 2030 8.0 +de 2 143 2030 8.0 +de 2 144 2030 8.0 +de 2 145 2030 8.0 +de 2 146 2030 8.0 +de 2 147 2030 8.0 +de 2 148 2030 8.0 +de 2 149 2030 8.0 +de 2 150 2030 8.0 +de 2 151 2030 8.0 +de 2 152 2030 8.0 +de 2 153 2030 8.0 +de 2 154 2030 8.0 +de 2 155 2030 8.0 +de 2 156 2030 8.0 +de 2 157 2030 8.0 +de 2 158 2030 8.0 +de 2 159 2030 8.0 +de 2 160 2030 8.0 +de 2 161 2030 8.0 +de 2 162 2030 9.0 +de 2 163 2030 9.0 +de 2 164 2030 9.0 +de 2 165 2030 9.0 +de 2 166 2030 9.0 +de 2 167 2030 9.0 +de 2 168 2030 9.0 +de 2 169 2030 0.0 +de 2 170 2030 1.0 +de 2 171 2030 1.0 +de 2 172 2030 1.0 +de 2 173 2030 1.0 +de 2 174 2030 1.0 +de 2 175 2030 1.0 +de 2 176 2030 1.0 +de 2 177 2030 1.0 +de 2 178 2030 1.0 +de 2 179 2030 1.0 +de 2 180 2030 1.0 +de 2 181 2030 1.0 +de 2 182 2030 1.0 +de 2 183 2030 1.0 +de 2 184 2030 1.0 +de 2 185 2030 1.0 +de 2 186 2030 1.0 +de 2 187 2030 1.0 +de 2 188 2030 1.0 +de 2 189 2030 1.0 +de 2 190 2030 2.0 +de 2 191 2030 2.0 +de 2 192 2030 2.0 +de 2 193 2030 2.0 +de 2 194 2030 2.0 +de 2 195 2030 2.0 +de 2 196 2030 2.0 +de 2 197 2030 2.0 +de 2 198 2030 2.0 +de 2 199 2030 2.0 +de 2 200 2030 2.0 +de 2 201 2030 2.0 +de 2 202 2030 2.0 +de 2 203 2030 2.0 +de 2 204 2030 2.0 +de 2 205 2030 2.0 +de 2 206 2030 2.0 +de 2 207 2030 2.0 +de 2 208 2030 2.0 +de 2 209 2030 2.0 +de 2 210 2030 3.0 +de 2 211 2030 3.0 +de 2 212 2030 3.0 +de 2 213 2030 3.0 +de 2 214 2030 3.0 +de 2 215 2030 3.0 +de 2 216 2030 3.0 +de 2 217 2030 3.0 +de 2 218 2030 3.0 +de 2 219 2030 3.0 +de 2 220 2030 3.0 +de 2 221 2030 3.0 +de 2 222 2030 3.0 +de 2 223 2030 3.0 +de 2 224 2030 3.0 +de 2 225 2030 3.0 +de 2 226 2030 3.0 +de 2 227 2030 3.0 +de 2 228 2030 3.0 +de 2 229 2030 3.0 +de 2 230 2030 4.0 +de 2 231 2030 4.0 +de 2 232 2030 4.0 +de 2 233 2030 4.0 +de 2 234 2030 4.0 +de 2 235 2030 4.0 +de 2 236 2030 4.0 +de 2 237 2030 4.0 +de 2 238 2030 4.0 +de 2 239 2030 4.0 +de 2 240 2030 4.0 +de 2 241 2030 4.0 +de 2 242 2030 4.0 +de 2 243 2030 4.0 +de 2 244 2030 4.0 +de 2 245 2030 4.0 +de 2 246 2030 4.0 +de 2 247 2030 4.0 +de 2 248 2030 4.0 +de 2 249 2030 4.0 +de 2 250 2030 5.0 +de 2 251 2030 5.0 +de 2 252 2030 5.0 +de 2 253 2030 5.0 +de 2 254 2030 5.0 +de 2 255 2030 5.0 +de 2 256 2030 5.0 +de 2 257 2030 5.0 +de 2 258 2030 5.0 +de 2 259 2030 5.0 +de 2 260 2030 5.0 +de 2 261 2030 5.0 +de 2 262 2030 5.0 +de 2 263 2030 5.0 +de 2 264 2030 5.0 +de 2 265 2030 5.0 +de 2 266 2030 5.0 +de 2 267 2030 5.0 +de 2 268 2030 5.0 +de 2 269 2030 5.0 +de 2 270 2030 6.0 +de 2 271 2030 6.0 +de 2 272 2030 6.0 +de 2 273 2030 6.0 +de 2 274 2030 6.0 +de 2 275 2030 6.0 +de 2 276 2030 6.0 +de 2 277 2030 6.0 +de 2 278 2030 6.0 +de 2 279 2030 6.0 +de 2 280 2030 6.0 +de 2 281 2030 6.0 +de 2 282 2030 6.0 +de 2 283 2030 6.0 +de 2 284 2030 6.0 +de 2 285 2030 6.0 +de 2 286 2030 6.0 +de 2 287 2030 6.0 +de 2 288 2030 6.0 +de 2 289 2030 6.0 +de 2 290 2030 7.0 +de 2 291 2030 7.0 +de 2 292 2030 7.0 +de 2 293 2030 7.0 +de 2 294 2030 7.0 +de 2 295 2030 7.0 +de 2 296 2030 7.0 +de 2 297 2030 7.0 +de 2 298 2030 7.0 +de 2 299 2030 7.0 +de 2 300 2030 7.0 +de 2 301 2030 7.0 +de 2 302 2030 7.0 +de 2 303 2030 7.0 +de 2 304 2030 7.0 +de 2 305 2030 7.0 +de 2 306 2030 7.0 +de 2 307 2030 7.0 +de 2 308 2030 7.0 +de 2 309 2030 7.0 +de 2 310 2030 8.0 +de 2 311 2030 8.0 +de 2 312 2030 8.0 +de 2 313 2030 8.0 +de 2 314 2030 8.0 +de 2 315 2030 8.0 +de 2 316 2030 8.0 +de 2 317 2030 8.0 +de 2 318 2030 8.0 +de 2 319 2030 8.0 +de 2 320 2030 8.0 +de 2 321 2030 8.0 +de 2 322 2030 8.0 +de 2 323 2030 8.0 +de 2 324 2030 8.0 +de 2 325 2030 8.0 +de 2 326 2030 8.0 +de 2 327 2030 8.0 +de 2 328 2030 8.0 +de 2 329 2030 8.0 +de 2 330 2030 9.0 +de 2 331 2030 9.0 +de 2 332 2030 9.0 +de 2 333 2030 9.0 +de 2 334 2030 9.0 +de 2 335 2030 9.0 +de 2 336 2030 9.0 +es 2 1 2030 0.0 +es 2 2 2030 1.0 +es 2 3 2030 1.0 +es 2 4 2030 1.0 +es 2 5 2030 1.0 +es 2 6 2030 1.0 +es 2 7 2030 1.0 +es 2 8 2030 1.0 +es 2 9 2030 1.0 +es 2 10 2030 1.0 +es 2 11 2030 1.0 +es 2 12 2030 1.0 +es 2 13 2030 1.0 +es 2 14 2030 1.0 +es 2 15 2030 1.0 +es 2 16 2030 1.0 +es 2 17 2030 1.0 +es 2 18 2030 1.0 +es 2 19 2030 1.0 +es 2 20 2030 1.0 +es 2 21 2030 1.0 +es 2 22 2030 2.0 +es 2 23 2030 2.0 +es 2 24 2030 2.0 +es 2 25 2030 2.0 +es 2 26 2030 2.0 +es 2 27 2030 2.0 +es 2 28 2030 2.0 +es 2 29 2030 2.0 +es 2 30 2030 2.0 +es 2 31 2030 2.0 +es 2 32 2030 2.0 +es 2 33 2030 2.0 +es 2 34 2030 2.0 +es 2 35 2030 2.0 +es 2 36 2030 2.0 +es 2 37 2030 2.0 +es 2 38 2030 2.0 +es 2 39 2030 2.0 +es 2 40 2030 2.0 +es 2 41 2030 2.0 +es 2 42 2030 3.0 +es 2 43 2030 3.0 +es 2 44 2030 3.0 +es 2 45 2030 3.0 +es 2 46 2030 3.0 +es 2 47 2030 3.0 +es 2 48 2030 3.0 +es 2 49 2030 3.0 +es 2 50 2030 3.0 +es 2 51 2030 3.0 +es 2 52 2030 3.0 +es 2 53 2030 3.0 +es 2 54 2030 3.0 +es 2 55 2030 3.0 +es 2 56 2030 3.0 +es 2 57 2030 3.0 +es 2 58 2030 3.0 +es 2 59 2030 3.0 +es 2 60 2030 3.0 +es 2 61 2030 3.0 +es 2 62 2030 4.0 +es 2 63 2030 4.0 +es 2 64 2030 4.0 +es 2 65 2030 4.0 +es 2 66 2030 4.0 +es 2 67 2030 4.0 +es 2 68 2030 4.0 +es 2 69 2030 4.0 +es 2 70 2030 4.0 +es 2 71 2030 4.0 +es 2 72 2030 4.0 +es 2 73 2030 4.0 +es 2 74 2030 4.0 +es 2 75 2030 4.0 +es 2 76 2030 4.0 +es 2 77 2030 4.0 +es 2 78 2030 4.0 +es 2 79 2030 4.0 +es 2 80 2030 4.0 +es 2 81 2030 4.0 +es 2 82 2030 5.0 +es 2 83 2030 5.0 +es 2 84 2030 5.0 +es 2 85 2030 5.0 +es 2 86 2030 5.0 +es 2 87 2030 5.0 +es 2 88 2030 5.0 +es 2 89 2030 5.0 +es 2 90 2030 5.0 +es 2 91 2030 5.0 +es 2 92 2030 5.0 +es 2 93 2030 5.0 +es 2 94 2030 5.0 +es 2 95 2030 5.0 +es 2 96 2030 5.0 +es 2 97 2030 5.0 +es 2 98 2030 5.0 +es 2 99 2030 5.0 +es 2 100 2030 5.0 +es 2 101 2030 5.0 +es 2 102 2030 6.0 +es 2 103 2030 6.0 +es 2 104 2030 6.0 +es 2 105 2030 6.0 +es 2 106 2030 6.0 +es 2 107 2030 6.0 +es 2 108 2030 6.0 +es 2 109 2030 6.0 +es 2 110 2030 6.0 +es 2 111 2030 6.0 +es 2 112 2030 6.0 +es 2 113 2030 6.0 +es 2 114 2030 6.0 +es 2 115 2030 6.0 +es 2 116 2030 6.0 +es 2 117 2030 6.0 +es 2 118 2030 6.0 +es 2 119 2030 6.0 +es 2 120 2030 6.0 +es 2 121 2030 6.0 +es 2 122 2030 7.0 +es 2 123 2030 7.0 +es 2 124 2030 7.0 +es 2 125 2030 7.0 +es 2 126 2030 7.0 +es 2 127 2030 7.0 +es 2 128 2030 7.0 +es 2 129 2030 7.0 +es 2 130 2030 7.0 +es 2 131 2030 7.0 +es 2 132 2030 7.0 +es 2 133 2030 7.0 +es 2 134 2030 7.0 +es 2 135 2030 7.0 +es 2 136 2030 7.0 +es 2 137 2030 7.0 +es 2 138 2030 7.0 +es 2 139 2030 7.0 +es 2 140 2030 7.0 +es 2 141 2030 7.0 +es 2 142 2030 8.0 +es 2 143 2030 8.0 +es 2 144 2030 8.0 +es 2 145 2030 8.0 +es 2 146 2030 8.0 +es 2 147 2030 8.0 +es 2 148 2030 8.0 +es 2 149 2030 8.0 +es 2 150 2030 8.0 +es 2 151 2030 8.0 +es 2 152 2030 8.0 +es 2 153 2030 8.0 +es 2 154 2030 8.0 +es 2 155 2030 8.0 +es 2 156 2030 8.0 +es 2 157 2030 8.0 +es 2 158 2030 8.0 +es 2 159 2030 8.0 +es 2 160 2030 8.0 +es 2 161 2030 8.0 +es 2 162 2030 9.0 +es 2 163 2030 9.0 +es 2 164 2030 9.0 +es 2 165 2030 9.0 +es 2 166 2030 9.0 +es 2 167 2030 9.0 +es 2 168 2030 9.0 +es 2 169 2030 0.0 +es 2 170 2030 1.0 +es 2 171 2030 1.0 +es 2 172 2030 1.0 +es 2 173 2030 1.0 +es 2 174 2030 1.0 +es 2 175 2030 1.0 +es 2 176 2030 1.0 +es 2 177 2030 1.0 +es 2 178 2030 1.0 +es 2 179 2030 1.0 +es 2 180 2030 1.0 +es 2 181 2030 1.0 +es 2 182 2030 1.0 +es 2 183 2030 1.0 +es 2 184 2030 1.0 +es 2 185 2030 1.0 +es 2 186 2030 1.0 +es 2 187 2030 1.0 +es 2 188 2030 1.0 +es 2 189 2030 1.0 +es 2 190 2030 2.0 +es 2 191 2030 2.0 +es 2 192 2030 2.0 +es 2 193 2030 2.0 +es 2 194 2030 2.0 +es 2 195 2030 2.0 +es 2 196 2030 2.0 +es 2 197 2030 2.0 +es 2 198 2030 2.0 +es 2 199 2030 2.0 +es 2 200 2030 2.0 +es 2 201 2030 2.0 +es 2 202 2030 2.0 +es 2 203 2030 2.0 +es 2 204 2030 2.0 +es 2 205 2030 2.0 +es 2 206 2030 2.0 +es 2 207 2030 2.0 +es 2 208 2030 2.0 +es 2 209 2030 2.0 +es 2 210 2030 3.0 +es 2 211 2030 3.0 +es 2 212 2030 3.0 +es 2 213 2030 3.0 +es 2 214 2030 3.0 +es 2 215 2030 3.0 +es 2 216 2030 3.0 +es 2 217 2030 3.0 +es 2 218 2030 3.0 +es 2 219 2030 3.0 +es 2 220 2030 3.0 +es 2 221 2030 3.0 +es 2 222 2030 3.0 +es 2 223 2030 3.0 +es 2 224 2030 3.0 +es 2 225 2030 3.0 +es 2 226 2030 3.0 +es 2 227 2030 3.0 +es 2 228 2030 3.0 +es 2 229 2030 3.0 +es 2 230 2030 4.0 +es 2 231 2030 4.0 +es 2 232 2030 4.0 +es 2 233 2030 4.0 +es 2 234 2030 4.0 +es 2 235 2030 4.0 +es 2 236 2030 4.0 +es 2 237 2030 4.0 +es 2 238 2030 4.0 +es 2 239 2030 4.0 +es 2 240 2030 4.0 +es 2 241 2030 4.0 +es 2 242 2030 4.0 +es 2 243 2030 4.0 +es 2 244 2030 4.0 +es 2 245 2030 4.0 +es 2 246 2030 4.0 +es 2 247 2030 4.0 +es 2 248 2030 4.0 +es 2 249 2030 4.0 +es 2 250 2030 5.0 +es 2 251 2030 5.0 +es 2 252 2030 5.0 +es 2 253 2030 5.0 +es 2 254 2030 5.0 +es 2 255 2030 5.0 +es 2 256 2030 5.0 +es 2 257 2030 5.0 +es 2 258 2030 5.0 +es 2 259 2030 5.0 +es 2 260 2030 5.0 +es 2 261 2030 5.0 +es 2 262 2030 5.0 +es 2 263 2030 5.0 +es 2 264 2030 5.0 +es 2 265 2030 5.0 +es 2 266 2030 5.0 +es 2 267 2030 5.0 +es 2 268 2030 5.0 +es 2 269 2030 5.0 +es 2 270 2030 6.0 +es 2 271 2030 6.0 +es 2 272 2030 6.0 +es 2 273 2030 6.0 +es 2 274 2030 6.0 +es 2 275 2030 6.0 +es 2 276 2030 6.0 +es 2 277 2030 6.0 +es 2 278 2030 6.0 +es 2 279 2030 6.0 +es 2 280 2030 6.0 +es 2 281 2030 6.0 +es 2 282 2030 6.0 +es 2 283 2030 6.0 +es 2 284 2030 6.0 +es 2 285 2030 6.0 +es 2 286 2030 6.0 +es 2 287 2030 6.0 +es 2 288 2030 6.0 +es 2 289 2030 6.0 +es 2 290 2030 7.0 +es 2 291 2030 7.0 +es 2 292 2030 7.0 +es 2 293 2030 7.0 +es 2 294 2030 7.0 +es 2 295 2030 7.0 +es 2 296 2030 7.0 +es 2 297 2030 7.0 +es 2 298 2030 7.0 +es 2 299 2030 7.0 +es 2 300 2030 7.0 +es 2 301 2030 7.0 +es 2 302 2030 7.0 +es 2 303 2030 7.0 +es 2 304 2030 7.0 +es 2 305 2030 7.0 +es 2 306 2030 7.0 +es 2 307 2030 7.0 +es 2 308 2030 7.0 +es 2 309 2030 7.0 +es 2 310 2030 8.0 +es 2 311 2030 8.0 +es 2 312 2030 8.0 +es 2 313 2030 8.0 +es 2 314 2030 8.0 +es 2 315 2030 8.0 +es 2 316 2030 8.0 +es 2 317 2030 8.0 +es 2 318 2030 8.0 +es 2 319 2030 8.0 +es 2 320 2030 8.0 +es 2 321 2030 8.0 +es 2 322 2030 8.0 +es 2 323 2030 8.0 +es 2 324 2030 8.0 +es 2 325 2030 8.0 +es 2 326 2030 8.0 +es 2 327 2030 8.0 +es 2 328 2030 8.0 +es 2 329 2030 8.0 +es 2 330 2030 9.0 +es 2 331 2030 9.0 +es 2 332 2030 9.0 +es 2 333 2030 9.0 +es 2 334 2030 9.0 +es 2 335 2030 9.0 +es 2 336 2030 9.0 +fr 2 1 2030 0.0 +fr 2 2 2030 1.0 +fr 2 3 2030 1.0 +fr 2 4 2030 1.0 +fr 2 5 2030 1.0 +fr 2 6 2030 1.0 +fr 2 7 2030 1.0 +fr 2 8 2030 1.0 +fr 2 9 2030 1.0 +fr 2 10 2030 1.0 +fr 2 11 2030 1.0 +fr 2 12 2030 1.0 +fr 2 13 2030 1.0 +fr 2 14 2030 1.0 +fr 2 15 2030 1.0 +fr 2 16 2030 1.0 +fr 2 17 2030 1.0 +fr 2 18 2030 1.0 +fr 2 19 2030 1.0 +fr 2 20 2030 1.0 +fr 2 21 2030 1.0 +fr 2 22 2030 2.0 +fr 2 23 2030 2.0 +fr 2 24 2030 2.0 +fr 2 25 2030 2.0 +fr 2 26 2030 2.0 +fr 2 27 2030 2.0 +fr 2 28 2030 2.0 +fr 2 29 2030 2.0 +fr 2 30 2030 2.0 +fr 2 31 2030 2.0 +fr 2 32 2030 2.0 +fr 2 33 2030 2.0 +fr 2 34 2030 2.0 +fr 2 35 2030 2.0 +fr 2 36 2030 2.0 +fr 2 37 2030 2.0 +fr 2 38 2030 2.0 +fr 2 39 2030 2.0 +fr 2 40 2030 2.0 +fr 2 41 2030 2.0 +fr 2 42 2030 3.0 +fr 2 43 2030 3.0 +fr 2 44 2030 3.0 +fr 2 45 2030 3.0 +fr 2 46 2030 3.0 +fr 2 47 2030 3.0 +fr 2 48 2030 3.0 +fr 2 49 2030 3.0 +fr 2 50 2030 3.0 +fr 2 51 2030 3.0 +fr 2 52 2030 3.0 +fr 2 53 2030 3.0 +fr 2 54 2030 3.0 +fr 2 55 2030 3.0 +fr 2 56 2030 3.0 +fr 2 57 2030 3.0 +fr 2 58 2030 3.0 +fr 2 59 2030 3.0 +fr 2 60 2030 3.0 +fr 2 61 2030 3.0 +fr 2 62 2030 4.0 +fr 2 63 2030 4.0 +fr 2 64 2030 4.0 +fr 2 65 2030 4.0 +fr 2 66 2030 4.0 +fr 2 67 2030 4.0 +fr 2 68 2030 4.0 +fr 2 69 2030 4.0 +fr 2 70 2030 4.0 +fr 2 71 2030 4.0 +fr 2 72 2030 4.0 +fr 2 73 2030 4.0 +fr 2 74 2030 4.0 +fr 2 75 2030 4.0 +fr 2 76 2030 4.0 +fr 2 77 2030 4.0 +fr 2 78 2030 4.0 +fr 2 79 2030 4.0 +fr 2 80 2030 4.0 +fr 2 81 2030 4.0 +fr 2 82 2030 5.0 +fr 2 83 2030 5.0 +fr 2 84 2030 5.0 +fr 2 85 2030 5.0 +fr 2 86 2030 5.0 +fr 2 87 2030 5.0 +fr 2 88 2030 5.0 +fr 2 89 2030 5.0 +fr 2 90 2030 5.0 +fr 2 91 2030 5.0 +fr 2 92 2030 5.0 +fr 2 93 2030 5.0 +fr 2 94 2030 5.0 +fr 2 95 2030 5.0 +fr 2 96 2030 5.0 +fr 2 97 2030 5.0 +fr 2 98 2030 5.0 +fr 2 99 2030 5.0 +fr 2 100 2030 5.0 +fr 2 101 2030 5.0 +fr 2 102 2030 6.0 +fr 2 103 2030 6.0 +fr 2 104 2030 6.0 +fr 2 105 2030 6.0 +fr 2 106 2030 6.0 +fr 2 107 2030 6.0 +fr 2 108 2030 6.0 +fr 2 109 2030 6.0 +fr 2 110 2030 6.0 +fr 2 111 2030 6.0 +fr 2 112 2030 6.0 +fr 2 113 2030 6.0 +fr 2 114 2030 6.0 +fr 2 115 2030 6.0 +fr 2 116 2030 6.0 +fr 2 117 2030 6.0 +fr 2 118 2030 6.0 +fr 2 119 2030 6.0 +fr 2 120 2030 6.0 +fr 2 121 2030 6.0 +fr 2 122 2030 7.0 +fr 2 123 2030 7.0 +fr 2 124 2030 7.0 +fr 2 125 2030 7.0 +fr 2 126 2030 7.0 +fr 2 127 2030 7.0 +fr 2 128 2030 7.0 +fr 2 129 2030 7.0 +fr 2 130 2030 7.0 +fr 2 131 2030 7.0 +fr 2 132 2030 7.0 +fr 2 133 2030 7.0 +fr 2 134 2030 7.0 +fr 2 135 2030 7.0 +fr 2 136 2030 7.0 +fr 2 137 2030 7.0 +fr 2 138 2030 7.0 +fr 2 139 2030 7.0 +fr 2 140 2030 7.0 +fr 2 141 2030 7.0 +fr 2 142 2030 8.0 +fr 2 143 2030 8.0 +fr 2 144 2030 8.0 +fr 2 145 2030 8.0 +fr 2 146 2030 8.0 +fr 2 147 2030 8.0 +fr 2 148 2030 8.0 +fr 2 149 2030 8.0 +fr 2 150 2030 8.0 +fr 2 151 2030 8.0 +fr 2 152 2030 8.0 +fr 2 153 2030 8.0 +fr 2 154 2030 8.0 +fr 2 155 2030 8.0 +fr 2 156 2030 8.0 +fr 2 157 2030 8.0 +fr 2 158 2030 8.0 +fr 2 159 2030 8.0 +fr 2 160 2030 8.0 +fr 2 161 2030 8.0 +fr 2 162 2030 9.0 +fr 2 163 2030 9.0 +fr 2 164 2030 9.0 +fr 2 165 2030 9.0 +fr 2 166 2030 9.0 +fr 2 167 2030 9.0 +fr 2 168 2030 9.0 +fr 2 169 2030 0.0 +fr 2 170 2030 1.0 +fr 2 171 2030 1.0 +fr 2 172 2030 1.0 +fr 2 173 2030 1.0 +fr 2 174 2030 1.0 +fr 2 175 2030 1.0 +fr 2 176 2030 1.0 +fr 2 177 2030 1.0 +fr 2 178 2030 1.0 +fr 2 179 2030 1.0 +fr 2 180 2030 1.0 +fr 2 181 2030 1.0 +fr 2 182 2030 1.0 +fr 2 183 2030 1.0 +fr 2 184 2030 1.0 +fr 2 185 2030 1.0 +fr 2 186 2030 1.0 +fr 2 187 2030 1.0 +fr 2 188 2030 1.0 +fr 2 189 2030 1.0 +fr 2 190 2030 2.0 +fr 2 191 2030 2.0 +fr 2 192 2030 2.0 +fr 2 193 2030 2.0 +fr 2 194 2030 2.0 +fr 2 195 2030 2.0 +fr 2 196 2030 2.0 +fr 2 197 2030 2.0 +fr 2 198 2030 2.0 +fr 2 199 2030 2.0 +fr 2 200 2030 2.0 +fr 2 201 2030 2.0 +fr 2 202 2030 2.0 +fr 2 203 2030 2.0 +fr 2 204 2030 2.0 +fr 2 205 2030 2.0 +fr 2 206 2030 2.0 +fr 2 207 2030 2.0 +fr 2 208 2030 2.0 +fr 2 209 2030 2.0 +fr 2 210 2030 3.0 +fr 2 211 2030 3.0 +fr 2 212 2030 3.0 +fr 2 213 2030 3.0 +fr 2 214 2030 3.0 +fr 2 215 2030 3.0 +fr 2 216 2030 3.0 +fr 2 217 2030 3.0 +fr 2 218 2030 3.0 +fr 2 219 2030 3.0 +fr 2 220 2030 3.0 +fr 2 221 2030 3.0 +fr 2 222 2030 3.0 +fr 2 223 2030 3.0 +fr 2 224 2030 3.0 +fr 2 225 2030 3.0 +fr 2 226 2030 3.0 +fr 2 227 2030 3.0 +fr 2 228 2030 3.0 +fr 2 229 2030 3.0 +fr 2 230 2030 4.0 +fr 2 231 2030 4.0 +fr 2 232 2030 4.0 +fr 2 233 2030 4.0 +fr 2 234 2030 4.0 +fr 2 235 2030 4.0 +fr 2 236 2030 4.0 +fr 2 237 2030 4.0 +fr 2 238 2030 4.0 +fr 2 239 2030 4.0 +fr 2 240 2030 4.0 +fr 2 241 2030 4.0 +fr 2 242 2030 4.0 +fr 2 243 2030 4.0 +fr 2 244 2030 4.0 +fr 2 245 2030 4.0 +fr 2 246 2030 4.0 +fr 2 247 2030 4.0 +fr 2 248 2030 4.0 +fr 2 249 2030 4.0 +fr 2 250 2030 5.0 +fr 2 251 2030 5.0 +fr 2 252 2030 5.0 +fr 2 253 2030 5.0 +fr 2 254 2030 5.0 +fr 2 255 2030 5.0 +fr 2 256 2030 5.0 +fr 2 257 2030 5.0 +fr 2 258 2030 5.0 +fr 2 259 2030 5.0 +fr 2 260 2030 5.0 +fr 2 261 2030 5.0 +fr 2 262 2030 5.0 +fr 2 263 2030 5.0 +fr 2 264 2030 5.0 +fr 2 265 2030 5.0 +fr 2 266 2030 5.0 +fr 2 267 2030 5.0 +fr 2 268 2030 5.0 +fr 2 269 2030 5.0 +fr 2 270 2030 6.0 +fr 2 271 2030 6.0 +fr 2 272 2030 6.0 +fr 2 273 2030 6.0 +fr 2 274 2030 6.0 +fr 2 275 2030 6.0 +fr 2 276 2030 6.0 +fr 2 277 2030 6.0 +fr 2 278 2030 6.0 +fr 2 279 2030 6.0 +fr 2 280 2030 6.0 +fr 2 281 2030 6.0 +fr 2 282 2030 6.0 +fr 2 283 2030 6.0 +fr 2 284 2030 6.0 +fr 2 285 2030 6.0 +fr 2 286 2030 6.0 +fr 2 287 2030 6.0 +fr 2 288 2030 6.0 +fr 2 289 2030 6.0 +fr 2 290 2030 7.0 +fr 2 291 2030 7.0 +fr 2 292 2030 7.0 +fr 2 293 2030 7.0 +fr 2 294 2030 7.0 +fr 2 295 2030 7.0 +fr 2 296 2030 7.0 +fr 2 297 2030 7.0 +fr 2 298 2030 7.0 +fr 2 299 2030 7.0 +fr 2 300 2030 7.0 +fr 2 301 2030 7.0 +fr 2 302 2030 7.0 +fr 2 303 2030 7.0 +fr 2 304 2030 7.0 +fr 2 305 2030 7.0 +fr 2 306 2030 7.0 +fr 2 307 2030 7.0 +fr 2 308 2030 7.0 +fr 2 309 2030 7.0 +fr 2 310 2030 8.0 +fr 2 311 2030 8.0 +fr 2 312 2030 8.0 +fr 2 313 2030 8.0 +fr 2 314 2030 8.0 +fr 2 315 2030 8.0 +fr 2 316 2030 8.0 +fr 2 317 2030 8.0 +fr 2 318 2030 8.0 +fr 2 319 2030 8.0 +fr 2 320 2030 8.0 +fr 2 321 2030 8.0 +fr 2 322 2030 8.0 +fr 2 323 2030 8.0 +fr 2 324 2030 8.0 +fr 2 325 2030 8.0 +fr 2 326 2030 8.0 +fr 2 327 2030 8.0 +fr 2 328 2030 8.0 +fr 2 329 2030 8.0 +fr 2 330 2030 9.0 +fr 2 331 2030 9.0 +fr 2 332 2030 9.0 +fr 2 333 2030 9.0 +fr 2 334 2030 9.0 +fr 2 335 2030 9.0 +fr 2 336 2030 9.0 +it 2 1 2030 0.0 +it 2 2 2030 1.0 +it 2 3 2030 1.0 +it 2 4 2030 1.0 +it 2 5 2030 1.0 +it 2 6 2030 1.0 +it 2 7 2030 1.0 +it 2 8 2030 1.0 +it 2 9 2030 1.0 +it 2 10 2030 1.0 +it 2 11 2030 1.0 +it 2 12 2030 1.0 +it 2 13 2030 1.0 +it 2 14 2030 1.0 +it 2 15 2030 1.0 +it 2 16 2030 1.0 +it 2 17 2030 1.0 +it 2 18 2030 1.0 +it 2 19 2030 1.0 +it 2 20 2030 1.0 +it 2 21 2030 1.0 +it 2 22 2030 2.0 +it 2 23 2030 2.0 +it 2 24 2030 2.0 +it 2 25 2030 2.0 +it 2 26 2030 2.0 +it 2 27 2030 2.0 +it 2 28 2030 2.0 +it 2 29 2030 2.0 +it 2 30 2030 2.0 +it 2 31 2030 2.0 +it 2 32 2030 2.0 +it 2 33 2030 2.0 +it 2 34 2030 2.0 +it 2 35 2030 2.0 +it 2 36 2030 2.0 +it 2 37 2030 2.0 +it 2 38 2030 2.0 +it 2 39 2030 2.0 +it 2 40 2030 2.0 +it 2 41 2030 2.0 +it 2 42 2030 3.0 +it 2 43 2030 3.0 +it 2 44 2030 3.0 +it 2 45 2030 3.0 +it 2 46 2030 3.0 +it 2 47 2030 3.0 +it 2 48 2030 3.0 +it 2 49 2030 3.0 +it 2 50 2030 3.0 +it 2 51 2030 3.0 +it 2 52 2030 3.0 +it 2 53 2030 3.0 +it 2 54 2030 3.0 +it 2 55 2030 3.0 +it 2 56 2030 3.0 +it 2 57 2030 3.0 +it 2 58 2030 3.0 +it 2 59 2030 3.0 +it 2 60 2030 3.0 +it 2 61 2030 3.0 +it 2 62 2030 4.0 +it 2 63 2030 4.0 +it 2 64 2030 4.0 +it 2 65 2030 4.0 +it 2 66 2030 4.0 +it 2 67 2030 4.0 +it 2 68 2030 4.0 +it 2 69 2030 4.0 +it 2 70 2030 4.0 +it 2 71 2030 4.0 +it 2 72 2030 4.0 +it 2 73 2030 4.0 +it 2 74 2030 4.0 +it 2 75 2030 4.0 +it 2 76 2030 4.0 +it 2 77 2030 4.0 +it 2 78 2030 4.0 +it 2 79 2030 4.0 +it 2 80 2030 4.0 +it 2 81 2030 4.0 +it 2 82 2030 5.0 +it 2 83 2030 5.0 +it 2 84 2030 5.0 +it 2 85 2030 5.0 +it 2 86 2030 5.0 +it 2 87 2030 5.0 +it 2 88 2030 5.0 +it 2 89 2030 5.0 +it 2 90 2030 5.0 +it 2 91 2030 5.0 +it 2 92 2030 5.0 +it 2 93 2030 5.0 +it 2 94 2030 5.0 +it 2 95 2030 5.0 +it 2 96 2030 5.0 +it 2 97 2030 5.0 +it 2 98 2030 5.0 +it 2 99 2030 5.0 +it 2 100 2030 5.0 +it 2 101 2030 5.0 +it 2 102 2030 6.0 +it 2 103 2030 6.0 +it 2 104 2030 6.0 +it 2 105 2030 6.0 +it 2 106 2030 6.0 +it 2 107 2030 6.0 +it 2 108 2030 6.0 +it 2 109 2030 6.0 +it 2 110 2030 6.0 +it 2 111 2030 6.0 +it 2 112 2030 6.0 +it 2 113 2030 6.0 +it 2 114 2030 6.0 +it 2 115 2030 6.0 +it 2 116 2030 6.0 +it 2 117 2030 6.0 +it 2 118 2030 6.0 +it 2 119 2030 6.0 +it 2 120 2030 6.0 +it 2 121 2030 6.0 +it 2 122 2030 7.0 +it 2 123 2030 7.0 +it 2 124 2030 7.0 +it 2 125 2030 7.0 +it 2 126 2030 7.0 +it 2 127 2030 7.0 +it 2 128 2030 7.0 +it 2 129 2030 7.0 +it 2 130 2030 7.0 +it 2 131 2030 7.0 +it 2 132 2030 7.0 +it 2 133 2030 7.0 +it 2 134 2030 7.0 +it 2 135 2030 7.0 +it 2 136 2030 7.0 +it 2 137 2030 7.0 +it 2 138 2030 7.0 +it 2 139 2030 7.0 +it 2 140 2030 7.0 +it 2 141 2030 7.0 +it 2 142 2030 8.0 +it 2 143 2030 8.0 +it 2 144 2030 8.0 +it 2 145 2030 8.0 +it 2 146 2030 8.0 +it 2 147 2030 8.0 +it 2 148 2030 8.0 +it 2 149 2030 8.0 +it 2 150 2030 8.0 +it 2 151 2030 8.0 +it 2 152 2030 8.0 +it 2 153 2030 8.0 +it 2 154 2030 8.0 +it 2 155 2030 8.0 +it 2 156 2030 8.0 +it 2 157 2030 8.0 +it 2 158 2030 8.0 +it 2 159 2030 8.0 +it 2 160 2030 8.0 +it 2 161 2030 8.0 +it 2 162 2030 9.0 +it 2 163 2030 9.0 +it 2 164 2030 9.0 +it 2 165 2030 9.0 +it 2 166 2030 9.0 +it 2 167 2030 9.0 +it 2 168 2030 9.0 +it 2 169 2030 0.0 +it 2 170 2030 1.0 +it 2 171 2030 1.0 +it 2 172 2030 1.0 +it 2 173 2030 1.0 +it 2 174 2030 1.0 +it 2 175 2030 1.0 +it 2 176 2030 1.0 +it 2 177 2030 1.0 +it 2 178 2030 1.0 +it 2 179 2030 1.0 +it 2 180 2030 1.0 +it 2 181 2030 1.0 +it 2 182 2030 1.0 +it 2 183 2030 1.0 +it 2 184 2030 1.0 +it 2 185 2030 1.0 +it 2 186 2030 1.0 +it 2 187 2030 1.0 +it 2 188 2030 1.0 +it 2 189 2030 1.0 +it 2 190 2030 2.0 +it 2 191 2030 2.0 +it 2 192 2030 2.0 +it 2 193 2030 2.0 +it 2 194 2030 2.0 +it 2 195 2030 2.0 +it 2 196 2030 2.0 +it 2 197 2030 2.0 +it 2 198 2030 2.0 +it 2 199 2030 2.0 +it 2 200 2030 2.0 +it 2 201 2030 2.0 +it 2 202 2030 2.0 +it 2 203 2030 2.0 +it 2 204 2030 2.0 +it 2 205 2030 2.0 +it 2 206 2030 2.0 +it 2 207 2030 2.0 +it 2 208 2030 2.0 +it 2 209 2030 2.0 +it 2 210 2030 3.0 +it 2 211 2030 3.0 +it 2 212 2030 3.0 +it 2 213 2030 3.0 +it 2 214 2030 3.0 +it 2 215 2030 3.0 +it 2 216 2030 3.0 +it 2 217 2030 3.0 +it 2 218 2030 3.0 +it 2 219 2030 3.0 +it 2 220 2030 3.0 +it 2 221 2030 3.0 +it 2 222 2030 3.0 +it 2 223 2030 3.0 +it 2 224 2030 3.0 +it 2 225 2030 3.0 +it 2 226 2030 3.0 +it 2 227 2030 3.0 +it 2 228 2030 3.0 +it 2 229 2030 3.0 +it 2 230 2030 4.0 +it 2 231 2030 4.0 +it 2 232 2030 4.0 +it 2 233 2030 4.0 +it 2 234 2030 4.0 +it 2 235 2030 4.0 +it 2 236 2030 4.0 +it 2 237 2030 4.0 +it 2 238 2030 4.0 +it 2 239 2030 4.0 +it 2 240 2030 4.0 +it 2 241 2030 4.0 +it 2 242 2030 4.0 +it 2 243 2030 4.0 +it 2 244 2030 4.0 +it 2 245 2030 4.0 +it 2 246 2030 4.0 +it 2 247 2030 4.0 +it 2 248 2030 4.0 +it 2 249 2030 4.0 +it 2 250 2030 5.0 +it 2 251 2030 5.0 +it 2 252 2030 5.0 +it 2 253 2030 5.0 +it 2 254 2030 5.0 +it 2 255 2030 5.0 +it 2 256 2030 5.0 +it 2 257 2030 5.0 +it 2 258 2030 5.0 +it 2 259 2030 5.0 +it 2 260 2030 5.0 +it 2 261 2030 5.0 +it 2 262 2030 5.0 +it 2 263 2030 5.0 +it 2 264 2030 5.0 +it 2 265 2030 5.0 +it 2 266 2030 5.0 +it 2 267 2030 5.0 +it 2 268 2030 5.0 +it 2 269 2030 5.0 +it 2 270 2030 6.0 +it 2 271 2030 6.0 +it 2 272 2030 6.0 +it 2 273 2030 6.0 +it 2 274 2030 6.0 +it 2 275 2030 6.0 +it 2 276 2030 6.0 +it 2 277 2030 6.0 +it 2 278 2030 6.0 +it 2 279 2030 6.0 +it 2 280 2030 6.0 +it 2 281 2030 6.0 +it 2 282 2030 6.0 +it 2 283 2030 6.0 +it 2 284 2030 6.0 +it 2 285 2030 6.0 +it 2 286 2030 6.0 +it 2 287 2030 6.0 +it 2 288 2030 6.0 +it 2 289 2030 6.0 +it 2 290 2030 7.0 +it 2 291 2030 7.0 +it 2 292 2030 7.0 +it 2 293 2030 7.0 +it 2 294 2030 7.0 +it 2 295 2030 7.0 +it 2 296 2030 7.0 +it 2 297 2030 7.0 +it 2 298 2030 7.0 +it 2 299 2030 7.0 +it 2 300 2030 7.0 +it 2 301 2030 7.0 +it 2 302 2030 7.0 +it 2 303 2030 7.0 +it 2 304 2030 7.0 +it 2 305 2030 7.0 +it 2 306 2030 7.0 +it 2 307 2030 7.0 +it 2 308 2030 7.0 +it 2 309 2030 7.0 +it 2 310 2030 8.0 +it 2 311 2030 8.0 +it 2 312 2030 8.0 +it 2 313 2030 8.0 +it 2 314 2030 8.0 +it 2 315 2030 8.0 +it 2 316 2030 8.0 +it 2 317 2030 8.0 +it 2 318 2030 8.0 +it 2 319 2030 8.0 +it 2 320 2030 8.0 +it 2 321 2030 8.0 +it 2 322 2030 8.0 +it 2 323 2030 8.0 +it 2 324 2030 8.0 +it 2 325 2030 8.0 +it 2 326 2030 8.0 +it 2 327 2030 8.0 +it 2 328 2030 8.0 +it 2 329 2030 8.0 +it 2 330 2030 9.0 +it 2 331 2030 9.0 +it 2 332 2030 9.0 +it 2 333 2030 9.0 +it 2 334 2030 9.0 +it 2 335 2030 9.0 +it 2 336 2030 9.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-07-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-07-all.result.tsv new file mode 100644 index 0000000000..f658354e14 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-07-all.result.tsv @@ -0,0 +1,15 @@ +area timeId time OV. COST EXP OP. COST EXP OP. COST STD OP. COST MIN OP. COST MAX H. COST EXP H. COST STD H. COST MIN H. COST MAX NP COST EXP NP COST STD NP COST MIN NP COST MAX NODU EXP NODU STD NODU MIN NODU MAX +de 1 2030 282000.0 282000.0 0.0 282000.0 282000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 26.0 0.0 26.0 26.0 +de 2 2030 1252000.0 1252000.0 0.0 1252000.0 1252000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 55.0 0.0 55.0 55.0 +de 3 2030 2910000.0 2910000.0 0.0 2910000.0 2910000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 83.0 0.0 83.0 83.0 +de 4 2030 5256000.0 5256000.0 0.0 5256000.0 5256000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 111.0 0.0 111.0 111.0 +de 5 2030 8290000.0 8290000.0 0.0 8290000.0 8290000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 139.0 0.0 139.0 139.0 +de 6 2030 12018000.0 12018000.0 0.0 12018000.0 12018000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 170.0 0.0 170.0 170.0 +de 7 2030 16444000.0 16444000.0 0.0 16444000.0 16444000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 199.0 0.0 199.0 199.0 +es 1 2030 282000.0 282000.0 0.0 282000.0 282000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 26.0 0.0 26.0 26.0 +es 2 2030 1252000.0 1252000.0 0.0 1252000.0 1252000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 55.0 0.0 55.0 55.0 +es 3 2030 2910000.0 2910000.0 0.0 2910000.0 2910000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 83.0 0.0 83.0 83.0 +es 4 2030 5256000.0 5256000.0 0.0 5256000.0 5256000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 111.0 0.0 111.0 111.0 +es 5 2030 8290000.0 8290000.0 0.0 8290000.0 8290000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 139.0 0.0 139.0 139.0 +es 6 2030 12018000.0 12018000.0 0.0 12018000.0 12018000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 170.0 0.0 170.0 170.0 +es 7 2030 16444000.0 16444000.0 0.0 16444000.0 16444000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 199.0 0.0 199.0 199.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-07.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-07.result.tsv new file mode 100644 index 0000000000..0b3974c655 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-07.result.tsv @@ -0,0 +1,24193 @@ +area cluster mcYear timeId time NODU NP Cost - Euro +de 01_solar 1 1 2030 0.0 0.0 +de 02_wind_on 1 1 2030 0.0 0.0 +de 03_wind_off 1 1 2030 0.0 0.0 +de 04_res 1 1 2030 0.0 0.0 +de 05_nuclear 1 1 2030 0.0 0.0 +de 06_coal 1 1 2030 0.0 0.0 +de 07_gas 1 1 2030 0.0 0.0 +de 08_non-res 1 1 2030 0.0 0.0 +de 09_hydro_pump 1 1 2030 0.0 0.0 +de 01_solar 1 2 2030 1.0 0.0 +de 02_wind_on 1 2 2030 0.0 0.0 +de 03_wind_off 1 2 2030 0.0 0.0 +de 04_res 1 2 2030 0.0 0.0 +de 05_nuclear 1 2 2030 0.0 0.0 +de 06_coal 1 2 2030 0.0 0.0 +de 07_gas 1 2 2030 0.0 0.0 +de 08_non-res 1 2 2030 0.0 0.0 +de 09_hydro_pump 1 2 2030 0.0 0.0 +de 01_solar 1 3 2030 1.0 0.0 +de 02_wind_on 1 3 2030 0.0 0.0 +de 03_wind_off 1 3 2030 0.0 0.0 +de 04_res 1 3 2030 0.0 0.0 +de 05_nuclear 1 3 2030 0.0 0.0 +de 06_coal 1 3 2030 0.0 0.0 +de 07_gas 1 3 2030 0.0 0.0 +de 08_non-res 1 3 2030 0.0 0.0 +de 09_hydro_pump 1 3 2030 0.0 0.0 +de 01_solar 1 4 2030 1.0 0.0 +de 02_wind_on 1 4 2030 0.0 0.0 +de 03_wind_off 1 4 2030 0.0 0.0 +de 04_res 1 4 2030 0.0 0.0 +de 05_nuclear 1 4 2030 0.0 0.0 +de 06_coal 1 4 2030 0.0 0.0 +de 07_gas 1 4 2030 0.0 0.0 +de 08_non-res 1 4 2030 0.0 0.0 +de 09_hydro_pump 1 4 2030 0.0 0.0 +de 01_solar 1 5 2030 1.0 0.0 +de 02_wind_on 1 5 2030 0.0 0.0 +de 03_wind_off 1 5 2030 0.0 0.0 +de 04_res 1 5 2030 0.0 0.0 +de 05_nuclear 1 5 2030 0.0 0.0 +de 06_coal 1 5 2030 0.0 0.0 +de 07_gas 1 5 2030 0.0 0.0 +de 08_non-res 1 5 2030 0.0 0.0 +de 09_hydro_pump 1 5 2030 0.0 0.0 +de 01_solar 1 6 2030 1.0 0.0 +de 02_wind_on 1 6 2030 0.0 0.0 +de 03_wind_off 1 6 2030 0.0 0.0 +de 04_res 1 6 2030 0.0 0.0 +de 05_nuclear 1 6 2030 0.0 0.0 +de 06_coal 1 6 2030 0.0 0.0 +de 07_gas 1 6 2030 0.0 0.0 +de 08_non-res 1 6 2030 0.0 0.0 +de 09_hydro_pump 1 6 2030 0.0 0.0 +de 01_solar 1 7 2030 1.0 0.0 +de 02_wind_on 1 7 2030 0.0 0.0 +de 03_wind_off 1 7 2030 0.0 0.0 +de 04_res 1 7 2030 0.0 0.0 +de 05_nuclear 1 7 2030 0.0 0.0 +de 06_coal 1 7 2030 0.0 0.0 +de 07_gas 1 7 2030 0.0 0.0 +de 08_non-res 1 7 2030 0.0 0.0 +de 09_hydro_pump 1 7 2030 0.0 0.0 +de 01_solar 1 8 2030 1.0 0.0 +de 02_wind_on 1 8 2030 0.0 0.0 +de 03_wind_off 1 8 2030 0.0 0.0 +de 04_res 1 8 2030 0.0 0.0 +de 05_nuclear 1 8 2030 0.0 0.0 +de 06_coal 1 8 2030 0.0 0.0 +de 07_gas 1 8 2030 0.0 0.0 +de 08_non-res 1 8 2030 0.0 0.0 +de 09_hydro_pump 1 8 2030 0.0 0.0 +de 01_solar 1 9 2030 1.0 0.0 +de 02_wind_on 1 9 2030 0.0 0.0 +de 03_wind_off 1 9 2030 0.0 0.0 +de 04_res 1 9 2030 0.0 0.0 +de 05_nuclear 1 9 2030 0.0 0.0 +de 06_coal 1 9 2030 0.0 0.0 +de 07_gas 1 9 2030 0.0 0.0 +de 08_non-res 1 9 2030 0.0 0.0 +de 09_hydro_pump 1 9 2030 0.0 0.0 +de 01_solar 1 10 2030 1.0 0.0 +de 02_wind_on 1 10 2030 0.0 0.0 +de 03_wind_off 1 10 2030 0.0 0.0 +de 04_res 1 10 2030 0.0 0.0 +de 05_nuclear 1 10 2030 0.0 0.0 +de 06_coal 1 10 2030 0.0 0.0 +de 07_gas 1 10 2030 0.0 0.0 +de 08_non-res 1 10 2030 0.0 0.0 +de 09_hydro_pump 1 10 2030 0.0 0.0 +de 01_solar 1 11 2030 1.0 0.0 +de 02_wind_on 1 11 2030 0.0 0.0 +de 03_wind_off 1 11 2030 0.0 0.0 +de 04_res 1 11 2030 0.0 0.0 +de 05_nuclear 1 11 2030 0.0 0.0 +de 06_coal 1 11 2030 0.0 0.0 +de 07_gas 1 11 2030 0.0 0.0 +de 08_non-res 1 11 2030 0.0 0.0 +de 09_hydro_pump 1 11 2030 0.0 0.0 +de 01_solar 1 12 2030 1.0 0.0 +de 02_wind_on 1 12 2030 0.0 0.0 +de 03_wind_off 1 12 2030 0.0 0.0 +de 04_res 1 12 2030 0.0 0.0 +de 05_nuclear 1 12 2030 0.0 0.0 +de 06_coal 1 12 2030 0.0 0.0 +de 07_gas 1 12 2030 0.0 0.0 +de 08_non-res 1 12 2030 0.0 0.0 +de 09_hydro_pump 1 12 2030 0.0 0.0 +de 01_solar 1 13 2030 1.0 0.0 +de 02_wind_on 1 13 2030 0.0 0.0 +de 03_wind_off 1 13 2030 0.0 0.0 +de 04_res 1 13 2030 0.0 0.0 +de 05_nuclear 1 13 2030 0.0 0.0 +de 06_coal 1 13 2030 0.0 0.0 +de 07_gas 1 13 2030 0.0 0.0 +de 08_non-res 1 13 2030 0.0 0.0 +de 09_hydro_pump 1 13 2030 0.0 0.0 +de 01_solar 1 14 2030 1.0 0.0 +de 02_wind_on 1 14 2030 0.0 0.0 +de 03_wind_off 1 14 2030 0.0 0.0 +de 04_res 1 14 2030 0.0 0.0 +de 05_nuclear 1 14 2030 0.0 0.0 +de 06_coal 1 14 2030 0.0 0.0 +de 07_gas 1 14 2030 0.0 0.0 +de 08_non-res 1 14 2030 0.0 0.0 +de 09_hydro_pump 1 14 2030 0.0 0.0 +de 01_solar 1 15 2030 1.0 0.0 +de 02_wind_on 1 15 2030 0.0 0.0 +de 03_wind_off 1 15 2030 0.0 0.0 +de 04_res 1 15 2030 0.0 0.0 +de 05_nuclear 1 15 2030 0.0 0.0 +de 06_coal 1 15 2030 0.0 0.0 +de 07_gas 1 15 2030 0.0 0.0 +de 08_non-res 1 15 2030 0.0 0.0 +de 09_hydro_pump 1 15 2030 0.0 0.0 +de 01_solar 1 16 2030 1.0 0.0 +de 02_wind_on 1 16 2030 0.0 0.0 +de 03_wind_off 1 16 2030 0.0 0.0 +de 04_res 1 16 2030 0.0 0.0 +de 05_nuclear 1 16 2030 0.0 0.0 +de 06_coal 1 16 2030 0.0 0.0 +de 07_gas 1 16 2030 0.0 0.0 +de 08_non-res 1 16 2030 0.0 0.0 +de 09_hydro_pump 1 16 2030 0.0 0.0 +de 01_solar 1 17 2030 1.0 0.0 +de 02_wind_on 1 17 2030 0.0 0.0 +de 03_wind_off 1 17 2030 0.0 0.0 +de 04_res 1 17 2030 0.0 0.0 +de 05_nuclear 1 17 2030 0.0 0.0 +de 06_coal 1 17 2030 0.0 0.0 +de 07_gas 1 17 2030 0.0 0.0 +de 08_non-res 1 17 2030 0.0 0.0 +de 09_hydro_pump 1 17 2030 0.0 0.0 +de 01_solar 1 18 2030 1.0 0.0 +de 02_wind_on 1 18 2030 0.0 0.0 +de 03_wind_off 1 18 2030 0.0 0.0 +de 04_res 1 18 2030 0.0 0.0 +de 05_nuclear 1 18 2030 0.0 0.0 +de 06_coal 1 18 2030 0.0 0.0 +de 07_gas 1 18 2030 0.0 0.0 +de 08_non-res 1 18 2030 0.0 0.0 +de 09_hydro_pump 1 18 2030 0.0 0.0 +de 01_solar 1 19 2030 1.0 0.0 +de 02_wind_on 1 19 2030 0.0 0.0 +de 03_wind_off 1 19 2030 0.0 0.0 +de 04_res 1 19 2030 0.0 0.0 +de 05_nuclear 1 19 2030 0.0 0.0 +de 06_coal 1 19 2030 0.0 0.0 +de 07_gas 1 19 2030 0.0 0.0 +de 08_non-res 1 19 2030 0.0 0.0 +de 09_hydro_pump 1 19 2030 0.0 0.0 +de 01_solar 1 20 2030 1.0 0.0 +de 02_wind_on 1 20 2030 0.0 0.0 +de 03_wind_off 1 20 2030 0.0 0.0 +de 04_res 1 20 2030 0.0 0.0 +de 05_nuclear 1 20 2030 0.0 0.0 +de 06_coal 1 20 2030 0.0 0.0 +de 07_gas 1 20 2030 0.0 0.0 +de 08_non-res 1 20 2030 0.0 0.0 +de 09_hydro_pump 1 20 2030 0.0 0.0 +de 01_solar 1 21 2030 1.0 0.0 +de 02_wind_on 1 21 2030 0.0 0.0 +de 03_wind_off 1 21 2030 0.0 0.0 +de 04_res 1 21 2030 0.0 0.0 +de 05_nuclear 1 21 2030 0.0 0.0 +de 06_coal 1 21 2030 0.0 0.0 +de 07_gas 1 21 2030 0.0 0.0 +de 08_non-res 1 21 2030 0.0 0.0 +de 09_hydro_pump 1 21 2030 0.0 0.0 +de 01_solar 1 22 2030 1.0 0.0 +de 02_wind_on 1 22 2030 1.0 0.0 +de 03_wind_off 1 22 2030 0.0 0.0 +de 04_res 1 22 2030 0.0 0.0 +de 05_nuclear 1 22 2030 0.0 0.0 +de 06_coal 1 22 2030 0.0 0.0 +de 07_gas 1 22 2030 0.0 0.0 +de 08_non-res 1 22 2030 0.0 0.0 +de 09_hydro_pump 1 22 2030 0.0 0.0 +de 01_solar 1 23 2030 1.0 0.0 +de 02_wind_on 1 23 2030 1.0 0.0 +de 03_wind_off 1 23 2030 0.0 0.0 +de 04_res 1 23 2030 0.0 0.0 +de 05_nuclear 1 23 2030 0.0 0.0 +de 06_coal 1 23 2030 0.0 0.0 +de 07_gas 1 23 2030 0.0 0.0 +de 08_non-res 1 23 2030 0.0 0.0 +de 09_hydro_pump 1 23 2030 0.0 0.0 +de 01_solar 1 24 2030 1.0 0.0 +de 02_wind_on 1 24 2030 1.0 0.0 +de 03_wind_off 1 24 2030 0.0 0.0 +de 04_res 1 24 2030 0.0 0.0 +de 05_nuclear 1 24 2030 0.0 0.0 +de 06_coal 1 24 2030 0.0 0.0 +de 07_gas 1 24 2030 0.0 0.0 +de 08_non-res 1 24 2030 0.0 0.0 +de 09_hydro_pump 1 24 2030 0.0 0.0 +de 01_solar 1 25 2030 1.0 0.0 +de 02_wind_on 1 25 2030 1.0 0.0 +de 03_wind_off 1 25 2030 0.0 0.0 +de 04_res 1 25 2030 0.0 0.0 +de 05_nuclear 1 25 2030 0.0 0.0 +de 06_coal 1 25 2030 0.0 0.0 +de 07_gas 1 25 2030 0.0 0.0 +de 08_non-res 1 25 2030 0.0 0.0 +de 09_hydro_pump 1 25 2030 0.0 0.0 +de 01_solar 1 26 2030 1.0 0.0 +de 02_wind_on 1 26 2030 1.0 0.0 +de 03_wind_off 1 26 2030 0.0 0.0 +de 04_res 1 26 2030 0.0 0.0 +de 05_nuclear 1 26 2030 0.0 0.0 +de 06_coal 1 26 2030 0.0 0.0 +de 07_gas 1 26 2030 0.0 0.0 +de 08_non-res 1 26 2030 0.0 0.0 +de 09_hydro_pump 1 26 2030 0.0 0.0 +de 01_solar 1 27 2030 1.0 0.0 +de 02_wind_on 1 27 2030 1.0 0.0 +de 03_wind_off 1 27 2030 0.0 0.0 +de 04_res 1 27 2030 0.0 0.0 +de 05_nuclear 1 27 2030 0.0 0.0 +de 06_coal 1 27 2030 0.0 0.0 +de 07_gas 1 27 2030 0.0 0.0 +de 08_non-res 1 27 2030 0.0 0.0 +de 09_hydro_pump 1 27 2030 0.0 0.0 +de 01_solar 1 28 2030 1.0 0.0 +de 02_wind_on 1 28 2030 1.0 0.0 +de 03_wind_off 1 28 2030 0.0 0.0 +de 04_res 1 28 2030 0.0 0.0 +de 05_nuclear 1 28 2030 0.0 0.0 +de 06_coal 1 28 2030 0.0 0.0 +de 07_gas 1 28 2030 0.0 0.0 +de 08_non-res 1 28 2030 0.0 0.0 +de 09_hydro_pump 1 28 2030 0.0 0.0 +de 01_solar 1 29 2030 1.0 0.0 +de 02_wind_on 1 29 2030 1.0 0.0 +de 03_wind_off 1 29 2030 0.0 0.0 +de 04_res 1 29 2030 0.0 0.0 +de 05_nuclear 1 29 2030 0.0 0.0 +de 06_coal 1 29 2030 0.0 0.0 +de 07_gas 1 29 2030 0.0 0.0 +de 08_non-res 1 29 2030 0.0 0.0 +de 09_hydro_pump 1 29 2030 0.0 0.0 +de 01_solar 1 30 2030 1.0 0.0 +de 02_wind_on 1 30 2030 1.0 0.0 +de 03_wind_off 1 30 2030 0.0 0.0 +de 04_res 1 30 2030 0.0 0.0 +de 05_nuclear 1 30 2030 0.0 0.0 +de 06_coal 1 30 2030 0.0 0.0 +de 07_gas 1 30 2030 0.0 0.0 +de 08_non-res 1 30 2030 0.0 0.0 +de 09_hydro_pump 1 30 2030 0.0 0.0 +de 01_solar 1 31 2030 1.0 0.0 +de 02_wind_on 1 31 2030 1.0 0.0 +de 03_wind_off 1 31 2030 0.0 0.0 +de 04_res 1 31 2030 0.0 0.0 +de 05_nuclear 1 31 2030 0.0 0.0 +de 06_coal 1 31 2030 0.0 0.0 +de 07_gas 1 31 2030 0.0 0.0 +de 08_non-res 1 31 2030 0.0 0.0 +de 09_hydro_pump 1 31 2030 0.0 0.0 +de 01_solar 1 32 2030 1.0 0.0 +de 02_wind_on 1 32 2030 1.0 0.0 +de 03_wind_off 1 32 2030 0.0 0.0 +de 04_res 1 32 2030 0.0 0.0 +de 05_nuclear 1 32 2030 0.0 0.0 +de 06_coal 1 32 2030 0.0 0.0 +de 07_gas 1 32 2030 0.0 0.0 +de 08_non-res 1 32 2030 0.0 0.0 +de 09_hydro_pump 1 32 2030 0.0 0.0 +de 01_solar 1 33 2030 1.0 0.0 +de 02_wind_on 1 33 2030 1.0 0.0 +de 03_wind_off 1 33 2030 0.0 0.0 +de 04_res 1 33 2030 0.0 0.0 +de 05_nuclear 1 33 2030 0.0 0.0 +de 06_coal 1 33 2030 0.0 0.0 +de 07_gas 1 33 2030 0.0 0.0 +de 08_non-res 1 33 2030 0.0 0.0 +de 09_hydro_pump 1 33 2030 0.0 0.0 +de 01_solar 1 34 2030 1.0 0.0 +de 02_wind_on 1 34 2030 1.0 0.0 +de 03_wind_off 1 34 2030 0.0 0.0 +de 04_res 1 34 2030 0.0 0.0 +de 05_nuclear 1 34 2030 0.0 0.0 +de 06_coal 1 34 2030 0.0 0.0 +de 07_gas 1 34 2030 0.0 0.0 +de 08_non-res 1 34 2030 0.0 0.0 +de 09_hydro_pump 1 34 2030 0.0 0.0 +de 01_solar 1 35 2030 1.0 0.0 +de 02_wind_on 1 35 2030 1.0 0.0 +de 03_wind_off 1 35 2030 0.0 0.0 +de 04_res 1 35 2030 0.0 0.0 +de 05_nuclear 1 35 2030 0.0 0.0 +de 06_coal 1 35 2030 0.0 0.0 +de 07_gas 1 35 2030 0.0 0.0 +de 08_non-res 1 35 2030 0.0 0.0 +de 09_hydro_pump 1 35 2030 0.0 0.0 +de 01_solar 1 36 2030 1.0 0.0 +de 02_wind_on 1 36 2030 1.0 0.0 +de 03_wind_off 1 36 2030 0.0 0.0 +de 04_res 1 36 2030 0.0 0.0 +de 05_nuclear 1 36 2030 0.0 0.0 +de 06_coal 1 36 2030 0.0 0.0 +de 07_gas 1 36 2030 0.0 0.0 +de 08_non-res 1 36 2030 0.0 0.0 +de 09_hydro_pump 1 36 2030 0.0 0.0 +de 01_solar 1 37 2030 1.0 0.0 +de 02_wind_on 1 37 2030 1.0 0.0 +de 03_wind_off 1 37 2030 0.0 0.0 +de 04_res 1 37 2030 0.0 0.0 +de 05_nuclear 1 37 2030 0.0 0.0 +de 06_coal 1 37 2030 0.0 0.0 +de 07_gas 1 37 2030 0.0 0.0 +de 08_non-res 1 37 2030 0.0 0.0 +de 09_hydro_pump 1 37 2030 0.0 0.0 +de 01_solar 1 38 2030 1.0 0.0 +de 02_wind_on 1 38 2030 1.0 0.0 +de 03_wind_off 1 38 2030 0.0 0.0 +de 04_res 1 38 2030 0.0 0.0 +de 05_nuclear 1 38 2030 0.0 0.0 +de 06_coal 1 38 2030 0.0 0.0 +de 07_gas 1 38 2030 0.0 0.0 +de 08_non-res 1 38 2030 0.0 0.0 +de 09_hydro_pump 1 38 2030 0.0 0.0 +de 01_solar 1 39 2030 1.0 0.0 +de 02_wind_on 1 39 2030 1.0 0.0 +de 03_wind_off 1 39 2030 0.0 0.0 +de 04_res 1 39 2030 0.0 0.0 +de 05_nuclear 1 39 2030 0.0 0.0 +de 06_coal 1 39 2030 0.0 0.0 +de 07_gas 1 39 2030 0.0 0.0 +de 08_non-res 1 39 2030 0.0 0.0 +de 09_hydro_pump 1 39 2030 0.0 0.0 +de 01_solar 1 40 2030 1.0 0.0 +de 02_wind_on 1 40 2030 1.0 0.0 +de 03_wind_off 1 40 2030 0.0 0.0 +de 04_res 1 40 2030 0.0 0.0 +de 05_nuclear 1 40 2030 0.0 0.0 +de 06_coal 1 40 2030 0.0 0.0 +de 07_gas 1 40 2030 0.0 0.0 +de 08_non-res 1 40 2030 0.0 0.0 +de 09_hydro_pump 1 40 2030 0.0 0.0 +de 01_solar 1 41 2030 1.0 0.0 +de 02_wind_on 1 41 2030 1.0 0.0 +de 03_wind_off 1 41 2030 0.0 0.0 +de 04_res 1 41 2030 0.0 0.0 +de 05_nuclear 1 41 2030 0.0 0.0 +de 06_coal 1 41 2030 0.0 0.0 +de 07_gas 1 41 2030 0.0 0.0 +de 08_non-res 1 41 2030 0.0 0.0 +de 09_hydro_pump 1 41 2030 0.0 0.0 +de 01_solar 1 42 2030 1.0 0.0 +de 02_wind_on 1 42 2030 1.0 0.0 +de 03_wind_off 1 42 2030 1.0 0.0 +de 04_res 1 42 2030 0.0 0.0 +de 05_nuclear 1 42 2030 0.0 0.0 +de 06_coal 1 42 2030 0.0 0.0 +de 07_gas 1 42 2030 0.0 0.0 +de 08_non-res 1 42 2030 0.0 0.0 +de 09_hydro_pump 1 42 2030 0.0 0.0 +de 01_solar 1 43 2030 1.0 0.0 +de 02_wind_on 1 43 2030 1.0 0.0 +de 03_wind_off 1 43 2030 1.0 0.0 +de 04_res 1 43 2030 0.0 0.0 +de 05_nuclear 1 43 2030 0.0 0.0 +de 06_coal 1 43 2030 0.0 0.0 +de 07_gas 1 43 2030 0.0 0.0 +de 08_non-res 1 43 2030 0.0 0.0 +de 09_hydro_pump 1 43 2030 0.0 0.0 +de 01_solar 1 44 2030 1.0 0.0 +de 02_wind_on 1 44 2030 1.0 0.0 +de 03_wind_off 1 44 2030 1.0 0.0 +de 04_res 1 44 2030 0.0 0.0 +de 05_nuclear 1 44 2030 0.0 0.0 +de 06_coal 1 44 2030 0.0 0.0 +de 07_gas 1 44 2030 0.0 0.0 +de 08_non-res 1 44 2030 0.0 0.0 +de 09_hydro_pump 1 44 2030 0.0 0.0 +de 01_solar 1 45 2030 1.0 0.0 +de 02_wind_on 1 45 2030 1.0 0.0 +de 03_wind_off 1 45 2030 1.0 0.0 +de 04_res 1 45 2030 0.0 0.0 +de 05_nuclear 1 45 2030 0.0 0.0 +de 06_coal 1 45 2030 0.0 0.0 +de 07_gas 1 45 2030 0.0 0.0 +de 08_non-res 1 45 2030 0.0 0.0 +de 09_hydro_pump 1 45 2030 0.0 0.0 +de 01_solar 1 46 2030 1.0 0.0 +de 02_wind_on 1 46 2030 1.0 0.0 +de 03_wind_off 1 46 2030 1.0 0.0 +de 04_res 1 46 2030 0.0 0.0 +de 05_nuclear 1 46 2030 0.0 0.0 +de 06_coal 1 46 2030 0.0 0.0 +de 07_gas 1 46 2030 0.0 0.0 +de 08_non-res 1 46 2030 0.0 0.0 +de 09_hydro_pump 1 46 2030 0.0 0.0 +de 01_solar 1 47 2030 1.0 0.0 +de 02_wind_on 1 47 2030 1.0 0.0 +de 03_wind_off 1 47 2030 1.0 0.0 +de 04_res 1 47 2030 0.0 0.0 +de 05_nuclear 1 47 2030 0.0 0.0 +de 06_coal 1 47 2030 0.0 0.0 +de 07_gas 1 47 2030 0.0 0.0 +de 08_non-res 1 47 2030 0.0 0.0 +de 09_hydro_pump 1 47 2030 0.0 0.0 +de 01_solar 1 48 2030 1.0 0.0 +de 02_wind_on 1 48 2030 1.0 0.0 +de 03_wind_off 1 48 2030 1.0 0.0 +de 04_res 1 48 2030 0.0 0.0 +de 05_nuclear 1 48 2030 0.0 0.0 +de 06_coal 1 48 2030 0.0 0.0 +de 07_gas 1 48 2030 0.0 0.0 +de 08_non-res 1 48 2030 0.0 0.0 +de 09_hydro_pump 1 48 2030 0.0 0.0 +de 01_solar 1 49 2030 1.0 0.0 +de 02_wind_on 1 49 2030 1.0 0.0 +de 03_wind_off 1 49 2030 1.0 0.0 +de 04_res 1 49 2030 0.0 0.0 +de 05_nuclear 1 49 2030 0.0 0.0 +de 06_coal 1 49 2030 0.0 0.0 +de 07_gas 1 49 2030 0.0 0.0 +de 08_non-res 1 49 2030 0.0 0.0 +de 09_hydro_pump 1 49 2030 0.0 0.0 +de 01_solar 1 50 2030 1.0 0.0 +de 02_wind_on 1 50 2030 1.0 0.0 +de 03_wind_off 1 50 2030 1.0 0.0 +de 04_res 1 50 2030 0.0 0.0 +de 05_nuclear 1 50 2030 0.0 0.0 +de 06_coal 1 50 2030 0.0 0.0 +de 07_gas 1 50 2030 0.0 0.0 +de 08_non-res 1 50 2030 0.0 0.0 +de 09_hydro_pump 1 50 2030 0.0 0.0 +de 01_solar 1 51 2030 1.0 0.0 +de 02_wind_on 1 51 2030 1.0 0.0 +de 03_wind_off 1 51 2030 1.0 0.0 +de 04_res 1 51 2030 0.0 0.0 +de 05_nuclear 1 51 2030 0.0 0.0 +de 06_coal 1 51 2030 0.0 0.0 +de 07_gas 1 51 2030 0.0 0.0 +de 08_non-res 1 51 2030 0.0 0.0 +de 09_hydro_pump 1 51 2030 0.0 0.0 +de 01_solar 1 52 2030 1.0 0.0 +de 02_wind_on 1 52 2030 1.0 0.0 +de 03_wind_off 1 52 2030 1.0 0.0 +de 04_res 1 52 2030 0.0 0.0 +de 05_nuclear 1 52 2030 0.0 0.0 +de 06_coal 1 52 2030 0.0 0.0 +de 07_gas 1 52 2030 0.0 0.0 +de 08_non-res 1 52 2030 0.0 0.0 +de 09_hydro_pump 1 52 2030 0.0 0.0 +de 01_solar 1 53 2030 1.0 0.0 +de 02_wind_on 1 53 2030 1.0 0.0 +de 03_wind_off 1 53 2030 1.0 0.0 +de 04_res 1 53 2030 0.0 0.0 +de 05_nuclear 1 53 2030 0.0 0.0 +de 06_coal 1 53 2030 0.0 0.0 +de 07_gas 1 53 2030 0.0 0.0 +de 08_non-res 1 53 2030 0.0 0.0 +de 09_hydro_pump 1 53 2030 0.0 0.0 +de 01_solar 1 54 2030 1.0 0.0 +de 02_wind_on 1 54 2030 1.0 0.0 +de 03_wind_off 1 54 2030 1.0 0.0 +de 04_res 1 54 2030 0.0 0.0 +de 05_nuclear 1 54 2030 0.0 0.0 +de 06_coal 1 54 2030 0.0 0.0 +de 07_gas 1 54 2030 0.0 0.0 +de 08_non-res 1 54 2030 0.0 0.0 +de 09_hydro_pump 1 54 2030 0.0 0.0 +de 01_solar 1 55 2030 1.0 0.0 +de 02_wind_on 1 55 2030 1.0 0.0 +de 03_wind_off 1 55 2030 1.0 0.0 +de 04_res 1 55 2030 0.0 0.0 +de 05_nuclear 1 55 2030 0.0 0.0 +de 06_coal 1 55 2030 0.0 0.0 +de 07_gas 1 55 2030 0.0 0.0 +de 08_non-res 1 55 2030 0.0 0.0 +de 09_hydro_pump 1 55 2030 0.0 0.0 +de 01_solar 1 56 2030 1.0 0.0 +de 02_wind_on 1 56 2030 1.0 0.0 +de 03_wind_off 1 56 2030 1.0 0.0 +de 04_res 1 56 2030 0.0 0.0 +de 05_nuclear 1 56 2030 0.0 0.0 +de 06_coal 1 56 2030 0.0 0.0 +de 07_gas 1 56 2030 0.0 0.0 +de 08_non-res 1 56 2030 0.0 0.0 +de 09_hydro_pump 1 56 2030 0.0 0.0 +de 01_solar 1 57 2030 1.0 0.0 +de 02_wind_on 1 57 2030 1.0 0.0 +de 03_wind_off 1 57 2030 1.0 0.0 +de 04_res 1 57 2030 0.0 0.0 +de 05_nuclear 1 57 2030 0.0 0.0 +de 06_coal 1 57 2030 0.0 0.0 +de 07_gas 1 57 2030 0.0 0.0 +de 08_non-res 1 57 2030 0.0 0.0 +de 09_hydro_pump 1 57 2030 0.0 0.0 +de 01_solar 1 58 2030 1.0 0.0 +de 02_wind_on 1 58 2030 1.0 0.0 +de 03_wind_off 1 58 2030 1.0 0.0 +de 04_res 1 58 2030 0.0 0.0 +de 05_nuclear 1 58 2030 0.0 0.0 +de 06_coal 1 58 2030 0.0 0.0 +de 07_gas 1 58 2030 0.0 0.0 +de 08_non-res 1 58 2030 0.0 0.0 +de 09_hydro_pump 1 58 2030 0.0 0.0 +de 01_solar 1 59 2030 1.0 0.0 +de 02_wind_on 1 59 2030 1.0 0.0 +de 03_wind_off 1 59 2030 1.0 0.0 +de 04_res 1 59 2030 0.0 0.0 +de 05_nuclear 1 59 2030 0.0 0.0 +de 06_coal 1 59 2030 0.0 0.0 +de 07_gas 1 59 2030 0.0 0.0 +de 08_non-res 1 59 2030 0.0 0.0 +de 09_hydro_pump 1 59 2030 0.0 0.0 +de 01_solar 1 60 2030 1.0 0.0 +de 02_wind_on 1 60 2030 1.0 0.0 +de 03_wind_off 1 60 2030 1.0 0.0 +de 04_res 1 60 2030 0.0 0.0 +de 05_nuclear 1 60 2030 0.0 0.0 +de 06_coal 1 60 2030 0.0 0.0 +de 07_gas 1 60 2030 0.0 0.0 +de 08_non-res 1 60 2030 0.0 0.0 +de 09_hydro_pump 1 60 2030 0.0 0.0 +de 01_solar 1 61 2030 1.0 0.0 +de 02_wind_on 1 61 2030 1.0 0.0 +de 03_wind_off 1 61 2030 1.0 0.0 +de 04_res 1 61 2030 0.0 0.0 +de 05_nuclear 1 61 2030 0.0 0.0 +de 06_coal 1 61 2030 0.0 0.0 +de 07_gas 1 61 2030 0.0 0.0 +de 08_non-res 1 61 2030 0.0 0.0 +de 09_hydro_pump 1 61 2030 0.0 0.0 +de 01_solar 1 62 2030 1.0 0.0 +de 02_wind_on 1 62 2030 1.0 0.0 +de 03_wind_off 1 62 2030 1.0 0.0 +de 04_res 1 62 2030 1.0 0.0 +de 05_nuclear 1 62 2030 0.0 0.0 +de 06_coal 1 62 2030 0.0 0.0 +de 07_gas 1 62 2030 0.0 0.0 +de 08_non-res 1 62 2030 0.0 0.0 +de 09_hydro_pump 1 62 2030 0.0 0.0 +de 01_solar 1 63 2030 1.0 0.0 +de 02_wind_on 1 63 2030 1.0 0.0 +de 03_wind_off 1 63 2030 1.0 0.0 +de 04_res 1 63 2030 1.0 0.0 +de 05_nuclear 1 63 2030 0.0 0.0 +de 06_coal 1 63 2030 0.0 0.0 +de 07_gas 1 63 2030 0.0 0.0 +de 08_non-res 1 63 2030 0.0 0.0 +de 09_hydro_pump 1 63 2030 0.0 0.0 +de 01_solar 1 64 2030 1.0 0.0 +de 02_wind_on 1 64 2030 1.0 0.0 +de 03_wind_off 1 64 2030 1.0 0.0 +de 04_res 1 64 2030 1.0 0.0 +de 05_nuclear 1 64 2030 0.0 0.0 +de 06_coal 1 64 2030 0.0 0.0 +de 07_gas 1 64 2030 0.0 0.0 +de 08_non-res 1 64 2030 0.0 0.0 +de 09_hydro_pump 1 64 2030 0.0 0.0 +de 01_solar 1 65 2030 1.0 0.0 +de 02_wind_on 1 65 2030 1.0 0.0 +de 03_wind_off 1 65 2030 1.0 0.0 +de 04_res 1 65 2030 1.0 0.0 +de 05_nuclear 1 65 2030 0.0 0.0 +de 06_coal 1 65 2030 0.0 0.0 +de 07_gas 1 65 2030 0.0 0.0 +de 08_non-res 1 65 2030 0.0 0.0 +de 09_hydro_pump 1 65 2030 0.0 0.0 +de 01_solar 1 66 2030 1.0 0.0 +de 02_wind_on 1 66 2030 1.0 0.0 +de 03_wind_off 1 66 2030 1.0 0.0 +de 04_res 1 66 2030 1.0 0.0 +de 05_nuclear 1 66 2030 0.0 0.0 +de 06_coal 1 66 2030 0.0 0.0 +de 07_gas 1 66 2030 0.0 0.0 +de 08_non-res 1 66 2030 0.0 0.0 +de 09_hydro_pump 1 66 2030 0.0 0.0 +de 01_solar 1 67 2030 1.0 0.0 +de 02_wind_on 1 67 2030 1.0 0.0 +de 03_wind_off 1 67 2030 1.0 0.0 +de 04_res 1 67 2030 1.0 0.0 +de 05_nuclear 1 67 2030 0.0 0.0 +de 06_coal 1 67 2030 0.0 0.0 +de 07_gas 1 67 2030 0.0 0.0 +de 08_non-res 1 67 2030 0.0 0.0 +de 09_hydro_pump 1 67 2030 0.0 0.0 +de 01_solar 1 68 2030 1.0 0.0 +de 02_wind_on 1 68 2030 1.0 0.0 +de 03_wind_off 1 68 2030 1.0 0.0 +de 04_res 1 68 2030 1.0 0.0 +de 05_nuclear 1 68 2030 0.0 0.0 +de 06_coal 1 68 2030 0.0 0.0 +de 07_gas 1 68 2030 0.0 0.0 +de 08_non-res 1 68 2030 0.0 0.0 +de 09_hydro_pump 1 68 2030 0.0 0.0 +de 01_solar 1 69 2030 1.0 0.0 +de 02_wind_on 1 69 2030 1.0 0.0 +de 03_wind_off 1 69 2030 1.0 0.0 +de 04_res 1 69 2030 1.0 0.0 +de 05_nuclear 1 69 2030 0.0 0.0 +de 06_coal 1 69 2030 0.0 0.0 +de 07_gas 1 69 2030 0.0 0.0 +de 08_non-res 1 69 2030 0.0 0.0 +de 09_hydro_pump 1 69 2030 0.0 0.0 +de 01_solar 1 70 2030 1.0 0.0 +de 02_wind_on 1 70 2030 1.0 0.0 +de 03_wind_off 1 70 2030 1.0 0.0 +de 04_res 1 70 2030 1.0 0.0 +de 05_nuclear 1 70 2030 0.0 0.0 +de 06_coal 1 70 2030 0.0 0.0 +de 07_gas 1 70 2030 0.0 0.0 +de 08_non-res 1 70 2030 0.0 0.0 +de 09_hydro_pump 1 70 2030 0.0 0.0 +de 01_solar 1 71 2030 1.0 0.0 +de 02_wind_on 1 71 2030 1.0 0.0 +de 03_wind_off 1 71 2030 1.0 0.0 +de 04_res 1 71 2030 1.0 0.0 +de 05_nuclear 1 71 2030 0.0 0.0 +de 06_coal 1 71 2030 0.0 0.0 +de 07_gas 1 71 2030 0.0 0.0 +de 08_non-res 1 71 2030 0.0 0.0 +de 09_hydro_pump 1 71 2030 0.0 0.0 +de 01_solar 1 72 2030 1.0 0.0 +de 02_wind_on 1 72 2030 1.0 0.0 +de 03_wind_off 1 72 2030 1.0 0.0 +de 04_res 1 72 2030 1.0 0.0 +de 05_nuclear 1 72 2030 0.0 0.0 +de 06_coal 1 72 2030 0.0 0.0 +de 07_gas 1 72 2030 0.0 0.0 +de 08_non-res 1 72 2030 0.0 0.0 +de 09_hydro_pump 1 72 2030 0.0 0.0 +de 01_solar 1 73 2030 1.0 0.0 +de 02_wind_on 1 73 2030 1.0 0.0 +de 03_wind_off 1 73 2030 1.0 0.0 +de 04_res 1 73 2030 1.0 0.0 +de 05_nuclear 1 73 2030 0.0 0.0 +de 06_coal 1 73 2030 0.0 0.0 +de 07_gas 1 73 2030 0.0 0.0 +de 08_non-res 1 73 2030 0.0 0.0 +de 09_hydro_pump 1 73 2030 0.0 0.0 +de 01_solar 1 74 2030 1.0 0.0 +de 02_wind_on 1 74 2030 1.0 0.0 +de 03_wind_off 1 74 2030 1.0 0.0 +de 04_res 1 74 2030 1.0 0.0 +de 05_nuclear 1 74 2030 0.0 0.0 +de 06_coal 1 74 2030 0.0 0.0 +de 07_gas 1 74 2030 0.0 0.0 +de 08_non-res 1 74 2030 0.0 0.0 +de 09_hydro_pump 1 74 2030 0.0 0.0 +de 01_solar 1 75 2030 1.0 0.0 +de 02_wind_on 1 75 2030 1.0 0.0 +de 03_wind_off 1 75 2030 1.0 0.0 +de 04_res 1 75 2030 1.0 0.0 +de 05_nuclear 1 75 2030 0.0 0.0 +de 06_coal 1 75 2030 0.0 0.0 +de 07_gas 1 75 2030 0.0 0.0 +de 08_non-res 1 75 2030 0.0 0.0 +de 09_hydro_pump 1 75 2030 0.0 0.0 +de 01_solar 1 76 2030 1.0 0.0 +de 02_wind_on 1 76 2030 1.0 0.0 +de 03_wind_off 1 76 2030 1.0 0.0 +de 04_res 1 76 2030 1.0 0.0 +de 05_nuclear 1 76 2030 0.0 0.0 +de 06_coal 1 76 2030 0.0 0.0 +de 07_gas 1 76 2030 0.0 0.0 +de 08_non-res 1 76 2030 0.0 0.0 +de 09_hydro_pump 1 76 2030 0.0 0.0 +de 01_solar 1 77 2030 1.0 0.0 +de 02_wind_on 1 77 2030 1.0 0.0 +de 03_wind_off 1 77 2030 1.0 0.0 +de 04_res 1 77 2030 1.0 0.0 +de 05_nuclear 1 77 2030 0.0 0.0 +de 06_coal 1 77 2030 0.0 0.0 +de 07_gas 1 77 2030 0.0 0.0 +de 08_non-res 1 77 2030 0.0 0.0 +de 09_hydro_pump 1 77 2030 0.0 0.0 +de 01_solar 1 78 2030 1.0 0.0 +de 02_wind_on 1 78 2030 1.0 0.0 +de 03_wind_off 1 78 2030 1.0 0.0 +de 04_res 1 78 2030 1.0 0.0 +de 05_nuclear 1 78 2030 0.0 0.0 +de 06_coal 1 78 2030 0.0 0.0 +de 07_gas 1 78 2030 0.0 0.0 +de 08_non-res 1 78 2030 0.0 0.0 +de 09_hydro_pump 1 78 2030 0.0 0.0 +de 01_solar 1 79 2030 1.0 0.0 +de 02_wind_on 1 79 2030 1.0 0.0 +de 03_wind_off 1 79 2030 1.0 0.0 +de 04_res 1 79 2030 1.0 0.0 +de 05_nuclear 1 79 2030 0.0 0.0 +de 06_coal 1 79 2030 0.0 0.0 +de 07_gas 1 79 2030 0.0 0.0 +de 08_non-res 1 79 2030 0.0 0.0 +de 09_hydro_pump 1 79 2030 0.0 0.0 +de 01_solar 1 80 2030 1.0 0.0 +de 02_wind_on 1 80 2030 1.0 0.0 +de 03_wind_off 1 80 2030 1.0 0.0 +de 04_res 1 80 2030 1.0 0.0 +de 05_nuclear 1 80 2030 0.0 0.0 +de 06_coal 1 80 2030 0.0 0.0 +de 07_gas 1 80 2030 0.0 0.0 +de 08_non-res 1 80 2030 0.0 0.0 +de 09_hydro_pump 1 80 2030 0.0 0.0 +de 01_solar 1 81 2030 1.0 0.0 +de 02_wind_on 1 81 2030 1.0 0.0 +de 03_wind_off 1 81 2030 1.0 0.0 +de 04_res 1 81 2030 1.0 0.0 +de 05_nuclear 1 81 2030 0.0 0.0 +de 06_coal 1 81 2030 0.0 0.0 +de 07_gas 1 81 2030 0.0 0.0 +de 08_non-res 1 81 2030 0.0 0.0 +de 09_hydro_pump 1 81 2030 0.0 0.0 +de 01_solar 1 82 2030 1.0 0.0 +de 02_wind_on 1 82 2030 1.0 0.0 +de 03_wind_off 1 82 2030 1.0 0.0 +de 04_res 1 82 2030 1.0 0.0 +de 05_nuclear 1 82 2030 1.0 0.0 +de 06_coal 1 82 2030 0.0 0.0 +de 07_gas 1 82 2030 0.0 0.0 +de 08_non-res 1 82 2030 0.0 0.0 +de 09_hydro_pump 1 82 2030 0.0 0.0 +de 01_solar 1 83 2030 1.0 0.0 +de 02_wind_on 1 83 2030 1.0 0.0 +de 03_wind_off 1 83 2030 1.0 0.0 +de 04_res 1 83 2030 1.0 0.0 +de 05_nuclear 1 83 2030 1.0 0.0 +de 06_coal 1 83 2030 0.0 0.0 +de 07_gas 1 83 2030 0.0 0.0 +de 08_non-res 1 83 2030 0.0 0.0 +de 09_hydro_pump 1 83 2030 0.0 0.0 +de 01_solar 1 84 2030 1.0 0.0 +de 02_wind_on 1 84 2030 1.0 0.0 +de 03_wind_off 1 84 2030 1.0 0.0 +de 04_res 1 84 2030 1.0 0.0 +de 05_nuclear 1 84 2030 1.0 0.0 +de 06_coal 1 84 2030 0.0 0.0 +de 07_gas 1 84 2030 0.0 0.0 +de 08_non-res 1 84 2030 0.0 0.0 +de 09_hydro_pump 1 84 2030 0.0 0.0 +de 01_solar 1 85 2030 1.0 0.0 +de 02_wind_on 1 85 2030 1.0 0.0 +de 03_wind_off 1 85 2030 1.0 0.0 +de 04_res 1 85 2030 1.0 0.0 +de 05_nuclear 1 85 2030 1.0 0.0 +de 06_coal 1 85 2030 0.0 0.0 +de 07_gas 1 85 2030 0.0 0.0 +de 08_non-res 1 85 2030 0.0 0.0 +de 09_hydro_pump 1 85 2030 0.0 0.0 +de 01_solar 1 86 2030 1.0 0.0 +de 02_wind_on 1 86 2030 1.0 0.0 +de 03_wind_off 1 86 2030 1.0 0.0 +de 04_res 1 86 2030 1.0 0.0 +de 05_nuclear 1 86 2030 1.0 0.0 +de 06_coal 1 86 2030 0.0 0.0 +de 07_gas 1 86 2030 0.0 0.0 +de 08_non-res 1 86 2030 0.0 0.0 +de 09_hydro_pump 1 86 2030 0.0 0.0 +de 01_solar 1 87 2030 1.0 0.0 +de 02_wind_on 1 87 2030 1.0 0.0 +de 03_wind_off 1 87 2030 1.0 0.0 +de 04_res 1 87 2030 1.0 0.0 +de 05_nuclear 1 87 2030 1.0 0.0 +de 06_coal 1 87 2030 0.0 0.0 +de 07_gas 1 87 2030 0.0 0.0 +de 08_non-res 1 87 2030 0.0 0.0 +de 09_hydro_pump 1 87 2030 0.0 0.0 +de 01_solar 1 88 2030 1.0 0.0 +de 02_wind_on 1 88 2030 1.0 0.0 +de 03_wind_off 1 88 2030 1.0 0.0 +de 04_res 1 88 2030 1.0 0.0 +de 05_nuclear 1 88 2030 1.0 0.0 +de 06_coal 1 88 2030 0.0 0.0 +de 07_gas 1 88 2030 0.0 0.0 +de 08_non-res 1 88 2030 0.0 0.0 +de 09_hydro_pump 1 88 2030 0.0 0.0 +de 01_solar 1 89 2030 1.0 0.0 +de 02_wind_on 1 89 2030 1.0 0.0 +de 03_wind_off 1 89 2030 1.0 0.0 +de 04_res 1 89 2030 1.0 0.0 +de 05_nuclear 1 89 2030 1.0 0.0 +de 06_coal 1 89 2030 0.0 0.0 +de 07_gas 1 89 2030 0.0 0.0 +de 08_non-res 1 89 2030 0.0 0.0 +de 09_hydro_pump 1 89 2030 0.0 0.0 +de 01_solar 1 90 2030 1.0 0.0 +de 02_wind_on 1 90 2030 1.0 0.0 +de 03_wind_off 1 90 2030 1.0 0.0 +de 04_res 1 90 2030 1.0 0.0 +de 05_nuclear 1 90 2030 1.0 0.0 +de 06_coal 1 90 2030 0.0 0.0 +de 07_gas 1 90 2030 0.0 0.0 +de 08_non-res 1 90 2030 0.0 0.0 +de 09_hydro_pump 1 90 2030 0.0 0.0 +de 01_solar 1 91 2030 1.0 0.0 +de 02_wind_on 1 91 2030 1.0 0.0 +de 03_wind_off 1 91 2030 1.0 0.0 +de 04_res 1 91 2030 1.0 0.0 +de 05_nuclear 1 91 2030 1.0 0.0 +de 06_coal 1 91 2030 0.0 0.0 +de 07_gas 1 91 2030 0.0 0.0 +de 08_non-res 1 91 2030 0.0 0.0 +de 09_hydro_pump 1 91 2030 0.0 0.0 +de 01_solar 1 92 2030 1.0 0.0 +de 02_wind_on 1 92 2030 1.0 0.0 +de 03_wind_off 1 92 2030 1.0 0.0 +de 04_res 1 92 2030 1.0 0.0 +de 05_nuclear 1 92 2030 1.0 0.0 +de 06_coal 1 92 2030 0.0 0.0 +de 07_gas 1 92 2030 0.0 0.0 +de 08_non-res 1 92 2030 0.0 0.0 +de 09_hydro_pump 1 92 2030 0.0 0.0 +de 01_solar 1 93 2030 1.0 0.0 +de 02_wind_on 1 93 2030 1.0 0.0 +de 03_wind_off 1 93 2030 1.0 0.0 +de 04_res 1 93 2030 1.0 0.0 +de 05_nuclear 1 93 2030 1.0 0.0 +de 06_coal 1 93 2030 0.0 0.0 +de 07_gas 1 93 2030 0.0 0.0 +de 08_non-res 1 93 2030 0.0 0.0 +de 09_hydro_pump 1 93 2030 0.0 0.0 +de 01_solar 1 94 2030 1.0 0.0 +de 02_wind_on 1 94 2030 1.0 0.0 +de 03_wind_off 1 94 2030 1.0 0.0 +de 04_res 1 94 2030 1.0 0.0 +de 05_nuclear 1 94 2030 1.0 0.0 +de 06_coal 1 94 2030 0.0 0.0 +de 07_gas 1 94 2030 0.0 0.0 +de 08_non-res 1 94 2030 0.0 0.0 +de 09_hydro_pump 1 94 2030 0.0 0.0 +de 01_solar 1 95 2030 1.0 0.0 +de 02_wind_on 1 95 2030 1.0 0.0 +de 03_wind_off 1 95 2030 1.0 0.0 +de 04_res 1 95 2030 1.0 0.0 +de 05_nuclear 1 95 2030 1.0 0.0 +de 06_coal 1 95 2030 0.0 0.0 +de 07_gas 1 95 2030 0.0 0.0 +de 08_non-res 1 95 2030 0.0 0.0 +de 09_hydro_pump 1 95 2030 0.0 0.0 +de 01_solar 1 96 2030 1.0 0.0 +de 02_wind_on 1 96 2030 1.0 0.0 +de 03_wind_off 1 96 2030 1.0 0.0 +de 04_res 1 96 2030 1.0 0.0 +de 05_nuclear 1 96 2030 1.0 0.0 +de 06_coal 1 96 2030 0.0 0.0 +de 07_gas 1 96 2030 0.0 0.0 +de 08_non-res 1 96 2030 0.0 0.0 +de 09_hydro_pump 1 96 2030 0.0 0.0 +de 01_solar 1 97 2030 1.0 0.0 +de 02_wind_on 1 97 2030 1.0 0.0 +de 03_wind_off 1 97 2030 1.0 0.0 +de 04_res 1 97 2030 1.0 0.0 +de 05_nuclear 1 97 2030 1.0 0.0 +de 06_coal 1 97 2030 0.0 0.0 +de 07_gas 1 97 2030 0.0 0.0 +de 08_non-res 1 97 2030 0.0 0.0 +de 09_hydro_pump 1 97 2030 0.0 0.0 +de 01_solar 1 98 2030 1.0 0.0 +de 02_wind_on 1 98 2030 1.0 0.0 +de 03_wind_off 1 98 2030 1.0 0.0 +de 04_res 1 98 2030 1.0 0.0 +de 05_nuclear 1 98 2030 1.0 0.0 +de 06_coal 1 98 2030 0.0 0.0 +de 07_gas 1 98 2030 0.0 0.0 +de 08_non-res 1 98 2030 0.0 0.0 +de 09_hydro_pump 1 98 2030 0.0 0.0 +de 01_solar 1 99 2030 1.0 0.0 +de 02_wind_on 1 99 2030 1.0 0.0 +de 03_wind_off 1 99 2030 1.0 0.0 +de 04_res 1 99 2030 1.0 0.0 +de 05_nuclear 1 99 2030 1.0 0.0 +de 06_coal 1 99 2030 0.0 0.0 +de 07_gas 1 99 2030 0.0 0.0 +de 08_non-res 1 99 2030 0.0 0.0 +de 09_hydro_pump 1 99 2030 0.0 0.0 +de 01_solar 1 100 2030 1.0 0.0 +de 02_wind_on 1 100 2030 1.0 0.0 +de 03_wind_off 1 100 2030 1.0 0.0 +de 04_res 1 100 2030 1.0 0.0 +de 05_nuclear 1 100 2030 1.0 0.0 +de 06_coal 1 100 2030 0.0 0.0 +de 07_gas 1 100 2030 0.0 0.0 +de 08_non-res 1 100 2030 0.0 0.0 +de 09_hydro_pump 1 100 2030 0.0 0.0 +de 01_solar 1 101 2030 1.0 0.0 +de 02_wind_on 1 101 2030 1.0 0.0 +de 03_wind_off 1 101 2030 1.0 0.0 +de 04_res 1 101 2030 1.0 0.0 +de 05_nuclear 1 101 2030 1.0 0.0 +de 06_coal 1 101 2030 0.0 0.0 +de 07_gas 1 101 2030 0.0 0.0 +de 08_non-res 1 101 2030 0.0 0.0 +de 09_hydro_pump 1 101 2030 0.0 0.0 +de 01_solar 1 102 2030 1.0 0.0 +de 02_wind_on 1 102 2030 1.0 0.0 +de 03_wind_off 1 102 2030 1.0 0.0 +de 04_res 1 102 2030 1.0 0.0 +de 05_nuclear 1 102 2030 1.0 0.0 +de 06_coal 1 102 2030 1.0 0.0 +de 07_gas 1 102 2030 0.0 0.0 +de 08_non-res 1 102 2030 0.0 0.0 +de 09_hydro_pump 1 102 2030 0.0 0.0 +de 01_solar 1 103 2030 1.0 0.0 +de 02_wind_on 1 103 2030 1.0 0.0 +de 03_wind_off 1 103 2030 1.0 0.0 +de 04_res 1 103 2030 1.0 0.0 +de 05_nuclear 1 103 2030 1.0 0.0 +de 06_coal 1 103 2030 1.0 0.0 +de 07_gas 1 103 2030 0.0 0.0 +de 08_non-res 1 103 2030 0.0 0.0 +de 09_hydro_pump 1 103 2030 0.0 0.0 +de 01_solar 1 104 2030 1.0 0.0 +de 02_wind_on 1 104 2030 1.0 0.0 +de 03_wind_off 1 104 2030 1.0 0.0 +de 04_res 1 104 2030 1.0 0.0 +de 05_nuclear 1 104 2030 1.0 0.0 +de 06_coal 1 104 2030 1.0 0.0 +de 07_gas 1 104 2030 0.0 0.0 +de 08_non-res 1 104 2030 0.0 0.0 +de 09_hydro_pump 1 104 2030 0.0 0.0 +de 01_solar 1 105 2030 1.0 0.0 +de 02_wind_on 1 105 2030 1.0 0.0 +de 03_wind_off 1 105 2030 1.0 0.0 +de 04_res 1 105 2030 1.0 0.0 +de 05_nuclear 1 105 2030 1.0 0.0 +de 06_coal 1 105 2030 1.0 0.0 +de 07_gas 1 105 2030 0.0 0.0 +de 08_non-res 1 105 2030 0.0 0.0 +de 09_hydro_pump 1 105 2030 0.0 0.0 +de 01_solar 1 106 2030 1.0 0.0 +de 02_wind_on 1 106 2030 1.0 0.0 +de 03_wind_off 1 106 2030 1.0 0.0 +de 04_res 1 106 2030 1.0 0.0 +de 05_nuclear 1 106 2030 1.0 0.0 +de 06_coal 1 106 2030 1.0 0.0 +de 07_gas 1 106 2030 0.0 0.0 +de 08_non-res 1 106 2030 0.0 0.0 +de 09_hydro_pump 1 106 2030 0.0 0.0 +de 01_solar 1 107 2030 1.0 0.0 +de 02_wind_on 1 107 2030 1.0 0.0 +de 03_wind_off 1 107 2030 1.0 0.0 +de 04_res 1 107 2030 1.0 0.0 +de 05_nuclear 1 107 2030 1.0 0.0 +de 06_coal 1 107 2030 1.0 0.0 +de 07_gas 1 107 2030 0.0 0.0 +de 08_non-res 1 107 2030 0.0 0.0 +de 09_hydro_pump 1 107 2030 0.0 0.0 +de 01_solar 1 108 2030 1.0 0.0 +de 02_wind_on 1 108 2030 1.0 0.0 +de 03_wind_off 1 108 2030 1.0 0.0 +de 04_res 1 108 2030 1.0 0.0 +de 05_nuclear 1 108 2030 1.0 0.0 +de 06_coal 1 108 2030 1.0 0.0 +de 07_gas 1 108 2030 0.0 0.0 +de 08_non-res 1 108 2030 0.0 0.0 +de 09_hydro_pump 1 108 2030 0.0 0.0 +de 01_solar 1 109 2030 1.0 0.0 +de 02_wind_on 1 109 2030 1.0 0.0 +de 03_wind_off 1 109 2030 1.0 0.0 +de 04_res 1 109 2030 1.0 0.0 +de 05_nuclear 1 109 2030 1.0 0.0 +de 06_coal 1 109 2030 1.0 0.0 +de 07_gas 1 109 2030 0.0 0.0 +de 08_non-res 1 109 2030 0.0 0.0 +de 09_hydro_pump 1 109 2030 0.0 0.0 +de 01_solar 1 110 2030 1.0 0.0 +de 02_wind_on 1 110 2030 1.0 0.0 +de 03_wind_off 1 110 2030 1.0 0.0 +de 04_res 1 110 2030 1.0 0.0 +de 05_nuclear 1 110 2030 1.0 0.0 +de 06_coal 1 110 2030 1.0 0.0 +de 07_gas 1 110 2030 0.0 0.0 +de 08_non-res 1 110 2030 0.0 0.0 +de 09_hydro_pump 1 110 2030 0.0 0.0 +de 01_solar 1 111 2030 1.0 0.0 +de 02_wind_on 1 111 2030 1.0 0.0 +de 03_wind_off 1 111 2030 1.0 0.0 +de 04_res 1 111 2030 1.0 0.0 +de 05_nuclear 1 111 2030 1.0 0.0 +de 06_coal 1 111 2030 1.0 0.0 +de 07_gas 1 111 2030 0.0 0.0 +de 08_non-res 1 111 2030 0.0 0.0 +de 09_hydro_pump 1 111 2030 0.0 0.0 +de 01_solar 1 112 2030 1.0 0.0 +de 02_wind_on 1 112 2030 1.0 0.0 +de 03_wind_off 1 112 2030 1.0 0.0 +de 04_res 1 112 2030 1.0 0.0 +de 05_nuclear 1 112 2030 1.0 0.0 +de 06_coal 1 112 2030 1.0 0.0 +de 07_gas 1 112 2030 0.0 0.0 +de 08_non-res 1 112 2030 0.0 0.0 +de 09_hydro_pump 1 112 2030 0.0 0.0 +de 01_solar 1 113 2030 1.0 0.0 +de 02_wind_on 1 113 2030 1.0 0.0 +de 03_wind_off 1 113 2030 1.0 0.0 +de 04_res 1 113 2030 1.0 0.0 +de 05_nuclear 1 113 2030 1.0 0.0 +de 06_coal 1 113 2030 1.0 0.0 +de 07_gas 1 113 2030 0.0 0.0 +de 08_non-res 1 113 2030 0.0 0.0 +de 09_hydro_pump 1 113 2030 0.0 0.0 +de 01_solar 1 114 2030 1.0 0.0 +de 02_wind_on 1 114 2030 1.0 0.0 +de 03_wind_off 1 114 2030 1.0 0.0 +de 04_res 1 114 2030 1.0 0.0 +de 05_nuclear 1 114 2030 1.0 0.0 +de 06_coal 1 114 2030 1.0 0.0 +de 07_gas 1 114 2030 0.0 0.0 +de 08_non-res 1 114 2030 0.0 0.0 +de 09_hydro_pump 1 114 2030 0.0 0.0 +de 01_solar 1 115 2030 1.0 0.0 +de 02_wind_on 1 115 2030 1.0 0.0 +de 03_wind_off 1 115 2030 1.0 0.0 +de 04_res 1 115 2030 1.0 0.0 +de 05_nuclear 1 115 2030 1.0 0.0 +de 06_coal 1 115 2030 1.0 0.0 +de 07_gas 1 115 2030 0.0 0.0 +de 08_non-res 1 115 2030 0.0 0.0 +de 09_hydro_pump 1 115 2030 0.0 0.0 +de 01_solar 1 116 2030 1.0 0.0 +de 02_wind_on 1 116 2030 1.0 0.0 +de 03_wind_off 1 116 2030 1.0 0.0 +de 04_res 1 116 2030 1.0 0.0 +de 05_nuclear 1 116 2030 1.0 0.0 +de 06_coal 1 116 2030 1.0 0.0 +de 07_gas 1 116 2030 0.0 0.0 +de 08_non-res 1 116 2030 0.0 0.0 +de 09_hydro_pump 1 116 2030 0.0 0.0 +de 01_solar 1 117 2030 1.0 0.0 +de 02_wind_on 1 117 2030 1.0 0.0 +de 03_wind_off 1 117 2030 1.0 0.0 +de 04_res 1 117 2030 1.0 0.0 +de 05_nuclear 1 117 2030 1.0 0.0 +de 06_coal 1 117 2030 1.0 0.0 +de 07_gas 1 117 2030 0.0 0.0 +de 08_non-res 1 117 2030 0.0 0.0 +de 09_hydro_pump 1 117 2030 0.0 0.0 +de 01_solar 1 118 2030 1.0 0.0 +de 02_wind_on 1 118 2030 1.0 0.0 +de 03_wind_off 1 118 2030 1.0 0.0 +de 04_res 1 118 2030 1.0 0.0 +de 05_nuclear 1 118 2030 1.0 0.0 +de 06_coal 1 118 2030 1.0 0.0 +de 07_gas 1 118 2030 0.0 0.0 +de 08_non-res 1 118 2030 0.0 0.0 +de 09_hydro_pump 1 118 2030 0.0 0.0 +de 01_solar 1 119 2030 1.0 0.0 +de 02_wind_on 1 119 2030 1.0 0.0 +de 03_wind_off 1 119 2030 1.0 0.0 +de 04_res 1 119 2030 1.0 0.0 +de 05_nuclear 1 119 2030 1.0 0.0 +de 06_coal 1 119 2030 1.0 0.0 +de 07_gas 1 119 2030 0.0 0.0 +de 08_non-res 1 119 2030 0.0 0.0 +de 09_hydro_pump 1 119 2030 0.0 0.0 +de 01_solar 1 120 2030 1.0 0.0 +de 02_wind_on 1 120 2030 1.0 0.0 +de 03_wind_off 1 120 2030 1.0 0.0 +de 04_res 1 120 2030 1.0 0.0 +de 05_nuclear 1 120 2030 1.0 0.0 +de 06_coal 1 120 2030 1.0 0.0 +de 07_gas 1 120 2030 0.0 0.0 +de 08_non-res 1 120 2030 0.0 0.0 +de 09_hydro_pump 1 120 2030 0.0 0.0 +de 01_solar 1 121 2030 1.0 0.0 +de 02_wind_on 1 121 2030 1.0 0.0 +de 03_wind_off 1 121 2030 1.0 0.0 +de 04_res 1 121 2030 1.0 0.0 +de 05_nuclear 1 121 2030 1.0 0.0 +de 06_coal 1 121 2030 1.0 0.0 +de 07_gas 1 121 2030 0.0 0.0 +de 08_non-res 1 121 2030 0.0 0.0 +de 09_hydro_pump 1 121 2030 0.0 0.0 +de 01_solar 1 122 2030 1.0 0.0 +de 02_wind_on 1 122 2030 1.0 0.0 +de 03_wind_off 1 122 2030 1.0 0.0 +de 04_res 1 122 2030 1.0 0.0 +de 05_nuclear 1 122 2030 1.0 0.0 +de 06_coal 1 122 2030 1.0 0.0 +de 07_gas 1 122 2030 1.0 0.0 +de 08_non-res 1 122 2030 0.0 0.0 +de 09_hydro_pump 1 122 2030 0.0 0.0 +de 01_solar 1 123 2030 1.0 0.0 +de 02_wind_on 1 123 2030 1.0 0.0 +de 03_wind_off 1 123 2030 1.0 0.0 +de 04_res 1 123 2030 1.0 0.0 +de 05_nuclear 1 123 2030 1.0 0.0 +de 06_coal 1 123 2030 1.0 0.0 +de 07_gas 1 123 2030 1.0 0.0 +de 08_non-res 1 123 2030 0.0 0.0 +de 09_hydro_pump 1 123 2030 0.0 0.0 +de 01_solar 1 124 2030 1.0 0.0 +de 02_wind_on 1 124 2030 1.0 0.0 +de 03_wind_off 1 124 2030 1.0 0.0 +de 04_res 1 124 2030 1.0 0.0 +de 05_nuclear 1 124 2030 1.0 0.0 +de 06_coal 1 124 2030 1.0 0.0 +de 07_gas 1 124 2030 1.0 0.0 +de 08_non-res 1 124 2030 0.0 0.0 +de 09_hydro_pump 1 124 2030 0.0 0.0 +de 01_solar 1 125 2030 1.0 0.0 +de 02_wind_on 1 125 2030 1.0 0.0 +de 03_wind_off 1 125 2030 1.0 0.0 +de 04_res 1 125 2030 1.0 0.0 +de 05_nuclear 1 125 2030 1.0 0.0 +de 06_coal 1 125 2030 1.0 0.0 +de 07_gas 1 125 2030 1.0 0.0 +de 08_non-res 1 125 2030 0.0 0.0 +de 09_hydro_pump 1 125 2030 0.0 0.0 +de 01_solar 1 126 2030 1.0 0.0 +de 02_wind_on 1 126 2030 1.0 0.0 +de 03_wind_off 1 126 2030 1.0 0.0 +de 04_res 1 126 2030 1.0 0.0 +de 05_nuclear 1 126 2030 1.0 0.0 +de 06_coal 1 126 2030 1.0 0.0 +de 07_gas 1 126 2030 1.0 0.0 +de 08_non-res 1 126 2030 0.0 0.0 +de 09_hydro_pump 1 126 2030 0.0 0.0 +de 01_solar 1 127 2030 1.0 0.0 +de 02_wind_on 1 127 2030 1.0 0.0 +de 03_wind_off 1 127 2030 1.0 0.0 +de 04_res 1 127 2030 1.0 0.0 +de 05_nuclear 1 127 2030 1.0 0.0 +de 06_coal 1 127 2030 1.0 0.0 +de 07_gas 1 127 2030 1.0 0.0 +de 08_non-res 1 127 2030 0.0 0.0 +de 09_hydro_pump 1 127 2030 0.0 0.0 +de 01_solar 1 128 2030 1.0 0.0 +de 02_wind_on 1 128 2030 1.0 0.0 +de 03_wind_off 1 128 2030 1.0 0.0 +de 04_res 1 128 2030 1.0 0.0 +de 05_nuclear 1 128 2030 1.0 0.0 +de 06_coal 1 128 2030 1.0 0.0 +de 07_gas 1 128 2030 1.0 0.0 +de 08_non-res 1 128 2030 0.0 0.0 +de 09_hydro_pump 1 128 2030 0.0 0.0 +de 01_solar 1 129 2030 1.0 0.0 +de 02_wind_on 1 129 2030 1.0 0.0 +de 03_wind_off 1 129 2030 1.0 0.0 +de 04_res 1 129 2030 1.0 0.0 +de 05_nuclear 1 129 2030 1.0 0.0 +de 06_coal 1 129 2030 1.0 0.0 +de 07_gas 1 129 2030 1.0 0.0 +de 08_non-res 1 129 2030 0.0 0.0 +de 09_hydro_pump 1 129 2030 0.0 0.0 +de 01_solar 1 130 2030 1.0 0.0 +de 02_wind_on 1 130 2030 1.0 0.0 +de 03_wind_off 1 130 2030 1.0 0.0 +de 04_res 1 130 2030 1.0 0.0 +de 05_nuclear 1 130 2030 1.0 0.0 +de 06_coal 1 130 2030 1.0 0.0 +de 07_gas 1 130 2030 1.0 0.0 +de 08_non-res 1 130 2030 0.0 0.0 +de 09_hydro_pump 1 130 2030 0.0 0.0 +de 01_solar 1 131 2030 1.0 0.0 +de 02_wind_on 1 131 2030 1.0 0.0 +de 03_wind_off 1 131 2030 1.0 0.0 +de 04_res 1 131 2030 1.0 0.0 +de 05_nuclear 1 131 2030 1.0 0.0 +de 06_coal 1 131 2030 1.0 0.0 +de 07_gas 1 131 2030 1.0 0.0 +de 08_non-res 1 131 2030 0.0 0.0 +de 09_hydro_pump 1 131 2030 0.0 0.0 +de 01_solar 1 132 2030 1.0 0.0 +de 02_wind_on 1 132 2030 1.0 0.0 +de 03_wind_off 1 132 2030 1.0 0.0 +de 04_res 1 132 2030 1.0 0.0 +de 05_nuclear 1 132 2030 1.0 0.0 +de 06_coal 1 132 2030 1.0 0.0 +de 07_gas 1 132 2030 1.0 0.0 +de 08_non-res 1 132 2030 0.0 0.0 +de 09_hydro_pump 1 132 2030 0.0 0.0 +de 01_solar 1 133 2030 1.0 0.0 +de 02_wind_on 1 133 2030 1.0 0.0 +de 03_wind_off 1 133 2030 1.0 0.0 +de 04_res 1 133 2030 1.0 0.0 +de 05_nuclear 1 133 2030 1.0 0.0 +de 06_coal 1 133 2030 1.0 0.0 +de 07_gas 1 133 2030 1.0 0.0 +de 08_non-res 1 133 2030 0.0 0.0 +de 09_hydro_pump 1 133 2030 0.0 0.0 +de 01_solar 1 134 2030 1.0 0.0 +de 02_wind_on 1 134 2030 1.0 0.0 +de 03_wind_off 1 134 2030 1.0 0.0 +de 04_res 1 134 2030 1.0 0.0 +de 05_nuclear 1 134 2030 1.0 0.0 +de 06_coal 1 134 2030 1.0 0.0 +de 07_gas 1 134 2030 1.0 0.0 +de 08_non-res 1 134 2030 0.0 0.0 +de 09_hydro_pump 1 134 2030 0.0 0.0 +de 01_solar 1 135 2030 1.0 0.0 +de 02_wind_on 1 135 2030 1.0 0.0 +de 03_wind_off 1 135 2030 1.0 0.0 +de 04_res 1 135 2030 1.0 0.0 +de 05_nuclear 1 135 2030 1.0 0.0 +de 06_coal 1 135 2030 1.0 0.0 +de 07_gas 1 135 2030 1.0 0.0 +de 08_non-res 1 135 2030 0.0 0.0 +de 09_hydro_pump 1 135 2030 0.0 0.0 +de 01_solar 1 136 2030 1.0 0.0 +de 02_wind_on 1 136 2030 1.0 0.0 +de 03_wind_off 1 136 2030 1.0 0.0 +de 04_res 1 136 2030 1.0 0.0 +de 05_nuclear 1 136 2030 1.0 0.0 +de 06_coal 1 136 2030 1.0 0.0 +de 07_gas 1 136 2030 1.0 0.0 +de 08_non-res 1 136 2030 0.0 0.0 +de 09_hydro_pump 1 136 2030 0.0 0.0 +de 01_solar 1 137 2030 1.0 0.0 +de 02_wind_on 1 137 2030 1.0 0.0 +de 03_wind_off 1 137 2030 1.0 0.0 +de 04_res 1 137 2030 1.0 0.0 +de 05_nuclear 1 137 2030 1.0 0.0 +de 06_coal 1 137 2030 1.0 0.0 +de 07_gas 1 137 2030 1.0 0.0 +de 08_non-res 1 137 2030 0.0 0.0 +de 09_hydro_pump 1 137 2030 0.0 0.0 +de 01_solar 1 138 2030 1.0 0.0 +de 02_wind_on 1 138 2030 1.0 0.0 +de 03_wind_off 1 138 2030 1.0 0.0 +de 04_res 1 138 2030 1.0 0.0 +de 05_nuclear 1 138 2030 1.0 0.0 +de 06_coal 1 138 2030 1.0 0.0 +de 07_gas 1 138 2030 1.0 0.0 +de 08_non-res 1 138 2030 0.0 0.0 +de 09_hydro_pump 1 138 2030 0.0 0.0 +de 01_solar 1 139 2030 1.0 0.0 +de 02_wind_on 1 139 2030 1.0 0.0 +de 03_wind_off 1 139 2030 1.0 0.0 +de 04_res 1 139 2030 1.0 0.0 +de 05_nuclear 1 139 2030 1.0 0.0 +de 06_coal 1 139 2030 1.0 0.0 +de 07_gas 1 139 2030 1.0 0.0 +de 08_non-res 1 139 2030 0.0 0.0 +de 09_hydro_pump 1 139 2030 0.0 0.0 +de 01_solar 1 140 2030 1.0 0.0 +de 02_wind_on 1 140 2030 1.0 0.0 +de 03_wind_off 1 140 2030 1.0 0.0 +de 04_res 1 140 2030 1.0 0.0 +de 05_nuclear 1 140 2030 1.0 0.0 +de 06_coal 1 140 2030 1.0 0.0 +de 07_gas 1 140 2030 1.0 0.0 +de 08_non-res 1 140 2030 0.0 0.0 +de 09_hydro_pump 1 140 2030 0.0 0.0 +de 01_solar 1 141 2030 1.0 0.0 +de 02_wind_on 1 141 2030 1.0 0.0 +de 03_wind_off 1 141 2030 1.0 0.0 +de 04_res 1 141 2030 1.0 0.0 +de 05_nuclear 1 141 2030 1.0 0.0 +de 06_coal 1 141 2030 1.0 0.0 +de 07_gas 1 141 2030 1.0 0.0 +de 08_non-res 1 141 2030 0.0 0.0 +de 09_hydro_pump 1 141 2030 0.0 0.0 +de 01_solar 1 142 2030 1.0 0.0 +de 02_wind_on 1 142 2030 1.0 0.0 +de 03_wind_off 1 142 2030 1.0 0.0 +de 04_res 1 142 2030 1.0 0.0 +de 05_nuclear 1 142 2030 1.0 0.0 +de 06_coal 1 142 2030 1.0 0.0 +de 07_gas 1 142 2030 1.0 0.0 +de 08_non-res 1 142 2030 1.0 0.0 +de 09_hydro_pump 1 142 2030 0.0 0.0 +de 01_solar 1 143 2030 1.0 0.0 +de 02_wind_on 1 143 2030 1.0 0.0 +de 03_wind_off 1 143 2030 1.0 0.0 +de 04_res 1 143 2030 1.0 0.0 +de 05_nuclear 1 143 2030 1.0 0.0 +de 06_coal 1 143 2030 1.0 0.0 +de 07_gas 1 143 2030 1.0 0.0 +de 08_non-res 1 143 2030 1.0 0.0 +de 09_hydro_pump 1 143 2030 0.0 0.0 +de 01_solar 1 144 2030 1.0 0.0 +de 02_wind_on 1 144 2030 1.0 0.0 +de 03_wind_off 1 144 2030 1.0 0.0 +de 04_res 1 144 2030 1.0 0.0 +de 05_nuclear 1 144 2030 1.0 0.0 +de 06_coal 1 144 2030 1.0 0.0 +de 07_gas 1 144 2030 1.0 0.0 +de 08_non-res 1 144 2030 1.0 0.0 +de 09_hydro_pump 1 144 2030 0.0 0.0 +de 01_solar 1 145 2030 1.0 0.0 +de 02_wind_on 1 145 2030 1.0 0.0 +de 03_wind_off 1 145 2030 1.0 0.0 +de 04_res 1 145 2030 1.0 0.0 +de 05_nuclear 1 145 2030 1.0 0.0 +de 06_coal 1 145 2030 1.0 0.0 +de 07_gas 1 145 2030 1.0 0.0 +de 08_non-res 1 145 2030 1.0 0.0 +de 09_hydro_pump 1 145 2030 0.0 0.0 +de 01_solar 1 146 2030 1.0 0.0 +de 02_wind_on 1 146 2030 1.0 0.0 +de 03_wind_off 1 146 2030 1.0 0.0 +de 04_res 1 146 2030 1.0 0.0 +de 05_nuclear 1 146 2030 1.0 0.0 +de 06_coal 1 146 2030 1.0 0.0 +de 07_gas 1 146 2030 1.0 0.0 +de 08_non-res 1 146 2030 1.0 0.0 +de 09_hydro_pump 1 146 2030 0.0 0.0 +de 01_solar 1 147 2030 1.0 0.0 +de 02_wind_on 1 147 2030 1.0 0.0 +de 03_wind_off 1 147 2030 1.0 0.0 +de 04_res 1 147 2030 1.0 0.0 +de 05_nuclear 1 147 2030 1.0 0.0 +de 06_coal 1 147 2030 1.0 0.0 +de 07_gas 1 147 2030 1.0 0.0 +de 08_non-res 1 147 2030 1.0 0.0 +de 09_hydro_pump 1 147 2030 0.0 0.0 +de 01_solar 1 148 2030 1.0 0.0 +de 02_wind_on 1 148 2030 1.0 0.0 +de 03_wind_off 1 148 2030 1.0 0.0 +de 04_res 1 148 2030 1.0 0.0 +de 05_nuclear 1 148 2030 1.0 0.0 +de 06_coal 1 148 2030 1.0 0.0 +de 07_gas 1 148 2030 1.0 0.0 +de 08_non-res 1 148 2030 1.0 0.0 +de 09_hydro_pump 1 148 2030 0.0 0.0 +de 01_solar 1 149 2030 1.0 0.0 +de 02_wind_on 1 149 2030 1.0 0.0 +de 03_wind_off 1 149 2030 1.0 0.0 +de 04_res 1 149 2030 1.0 0.0 +de 05_nuclear 1 149 2030 1.0 0.0 +de 06_coal 1 149 2030 1.0 0.0 +de 07_gas 1 149 2030 1.0 0.0 +de 08_non-res 1 149 2030 1.0 0.0 +de 09_hydro_pump 1 149 2030 0.0 0.0 +de 01_solar 1 150 2030 1.0 0.0 +de 02_wind_on 1 150 2030 1.0 0.0 +de 03_wind_off 1 150 2030 1.0 0.0 +de 04_res 1 150 2030 1.0 0.0 +de 05_nuclear 1 150 2030 1.0 0.0 +de 06_coal 1 150 2030 1.0 0.0 +de 07_gas 1 150 2030 1.0 0.0 +de 08_non-res 1 150 2030 1.0 0.0 +de 09_hydro_pump 1 150 2030 0.0 0.0 +de 01_solar 1 151 2030 1.0 0.0 +de 02_wind_on 1 151 2030 1.0 0.0 +de 03_wind_off 1 151 2030 1.0 0.0 +de 04_res 1 151 2030 1.0 0.0 +de 05_nuclear 1 151 2030 1.0 0.0 +de 06_coal 1 151 2030 1.0 0.0 +de 07_gas 1 151 2030 1.0 0.0 +de 08_non-res 1 151 2030 1.0 0.0 +de 09_hydro_pump 1 151 2030 0.0 0.0 +de 01_solar 1 152 2030 1.0 0.0 +de 02_wind_on 1 152 2030 1.0 0.0 +de 03_wind_off 1 152 2030 1.0 0.0 +de 04_res 1 152 2030 1.0 0.0 +de 05_nuclear 1 152 2030 1.0 0.0 +de 06_coal 1 152 2030 1.0 0.0 +de 07_gas 1 152 2030 1.0 0.0 +de 08_non-res 1 152 2030 1.0 0.0 +de 09_hydro_pump 1 152 2030 0.0 0.0 +de 01_solar 1 153 2030 1.0 0.0 +de 02_wind_on 1 153 2030 1.0 0.0 +de 03_wind_off 1 153 2030 1.0 0.0 +de 04_res 1 153 2030 1.0 0.0 +de 05_nuclear 1 153 2030 1.0 0.0 +de 06_coal 1 153 2030 1.0 0.0 +de 07_gas 1 153 2030 1.0 0.0 +de 08_non-res 1 153 2030 1.0 0.0 +de 09_hydro_pump 1 153 2030 0.0 0.0 +de 01_solar 1 154 2030 1.0 0.0 +de 02_wind_on 1 154 2030 1.0 0.0 +de 03_wind_off 1 154 2030 1.0 0.0 +de 04_res 1 154 2030 1.0 0.0 +de 05_nuclear 1 154 2030 1.0 0.0 +de 06_coal 1 154 2030 1.0 0.0 +de 07_gas 1 154 2030 1.0 0.0 +de 08_non-res 1 154 2030 1.0 0.0 +de 09_hydro_pump 1 154 2030 0.0 0.0 +de 01_solar 1 155 2030 1.0 0.0 +de 02_wind_on 1 155 2030 1.0 0.0 +de 03_wind_off 1 155 2030 1.0 0.0 +de 04_res 1 155 2030 1.0 0.0 +de 05_nuclear 1 155 2030 1.0 0.0 +de 06_coal 1 155 2030 1.0 0.0 +de 07_gas 1 155 2030 1.0 0.0 +de 08_non-res 1 155 2030 1.0 0.0 +de 09_hydro_pump 1 155 2030 0.0 0.0 +de 01_solar 1 156 2030 1.0 0.0 +de 02_wind_on 1 156 2030 1.0 0.0 +de 03_wind_off 1 156 2030 1.0 0.0 +de 04_res 1 156 2030 1.0 0.0 +de 05_nuclear 1 156 2030 1.0 0.0 +de 06_coal 1 156 2030 1.0 0.0 +de 07_gas 1 156 2030 1.0 0.0 +de 08_non-res 1 156 2030 1.0 0.0 +de 09_hydro_pump 1 156 2030 0.0 0.0 +de 01_solar 1 157 2030 1.0 0.0 +de 02_wind_on 1 157 2030 1.0 0.0 +de 03_wind_off 1 157 2030 1.0 0.0 +de 04_res 1 157 2030 1.0 0.0 +de 05_nuclear 1 157 2030 1.0 0.0 +de 06_coal 1 157 2030 1.0 0.0 +de 07_gas 1 157 2030 1.0 0.0 +de 08_non-res 1 157 2030 1.0 0.0 +de 09_hydro_pump 1 157 2030 0.0 0.0 +de 01_solar 1 158 2030 1.0 0.0 +de 02_wind_on 1 158 2030 1.0 0.0 +de 03_wind_off 1 158 2030 1.0 0.0 +de 04_res 1 158 2030 1.0 0.0 +de 05_nuclear 1 158 2030 1.0 0.0 +de 06_coal 1 158 2030 1.0 0.0 +de 07_gas 1 158 2030 1.0 0.0 +de 08_non-res 1 158 2030 1.0 0.0 +de 09_hydro_pump 1 158 2030 0.0 0.0 +de 01_solar 1 159 2030 1.0 0.0 +de 02_wind_on 1 159 2030 1.0 0.0 +de 03_wind_off 1 159 2030 1.0 0.0 +de 04_res 1 159 2030 1.0 0.0 +de 05_nuclear 1 159 2030 1.0 0.0 +de 06_coal 1 159 2030 1.0 0.0 +de 07_gas 1 159 2030 1.0 0.0 +de 08_non-res 1 159 2030 1.0 0.0 +de 09_hydro_pump 1 159 2030 0.0 0.0 +de 01_solar 1 160 2030 1.0 0.0 +de 02_wind_on 1 160 2030 1.0 0.0 +de 03_wind_off 1 160 2030 1.0 0.0 +de 04_res 1 160 2030 1.0 0.0 +de 05_nuclear 1 160 2030 1.0 0.0 +de 06_coal 1 160 2030 1.0 0.0 +de 07_gas 1 160 2030 1.0 0.0 +de 08_non-res 1 160 2030 1.0 0.0 +de 09_hydro_pump 1 160 2030 0.0 0.0 +de 01_solar 1 161 2030 1.0 0.0 +de 02_wind_on 1 161 2030 1.0 0.0 +de 03_wind_off 1 161 2030 1.0 0.0 +de 04_res 1 161 2030 1.0 0.0 +de 05_nuclear 1 161 2030 1.0 0.0 +de 06_coal 1 161 2030 1.0 0.0 +de 07_gas 1 161 2030 1.0 0.0 +de 08_non-res 1 161 2030 1.0 0.0 +de 09_hydro_pump 1 161 2030 0.0 0.0 +de 01_solar 1 162 2030 1.0 0.0 +de 02_wind_on 1 162 2030 1.0 0.0 +de 03_wind_off 1 162 2030 1.0 0.0 +de 04_res 1 162 2030 1.0 0.0 +de 05_nuclear 1 162 2030 1.0 0.0 +de 06_coal 1 162 2030 1.0 0.0 +de 07_gas 1 162 2030 1.0 0.0 +de 08_non-res 1 162 2030 1.0 0.0 +de 09_hydro_pump 1 162 2030 1.0 0.0 +de 01_solar 1 163 2030 1.0 0.0 +de 02_wind_on 1 163 2030 1.0 0.0 +de 03_wind_off 1 163 2030 1.0 0.0 +de 04_res 1 163 2030 1.0 0.0 +de 05_nuclear 1 163 2030 1.0 0.0 +de 06_coal 1 163 2030 1.0 0.0 +de 07_gas 1 163 2030 1.0 0.0 +de 08_non-res 1 163 2030 1.0 0.0 +de 09_hydro_pump 1 163 2030 1.0 0.0 +de 01_solar 1 164 2030 1.0 0.0 +de 02_wind_on 1 164 2030 1.0 0.0 +de 03_wind_off 1 164 2030 1.0 0.0 +de 04_res 1 164 2030 1.0 0.0 +de 05_nuclear 1 164 2030 1.0 0.0 +de 06_coal 1 164 2030 1.0 0.0 +de 07_gas 1 164 2030 1.0 0.0 +de 08_non-res 1 164 2030 1.0 0.0 +de 09_hydro_pump 1 164 2030 1.0 0.0 +de 01_solar 1 165 2030 1.0 0.0 +de 02_wind_on 1 165 2030 1.0 0.0 +de 03_wind_off 1 165 2030 1.0 0.0 +de 04_res 1 165 2030 1.0 0.0 +de 05_nuclear 1 165 2030 1.0 0.0 +de 06_coal 1 165 2030 1.0 0.0 +de 07_gas 1 165 2030 1.0 0.0 +de 08_non-res 1 165 2030 1.0 0.0 +de 09_hydro_pump 1 165 2030 1.0 0.0 +de 01_solar 1 166 2030 1.0 0.0 +de 02_wind_on 1 166 2030 1.0 0.0 +de 03_wind_off 1 166 2030 1.0 0.0 +de 04_res 1 166 2030 1.0 0.0 +de 05_nuclear 1 166 2030 1.0 0.0 +de 06_coal 1 166 2030 1.0 0.0 +de 07_gas 1 166 2030 1.0 0.0 +de 08_non-res 1 166 2030 1.0 0.0 +de 09_hydro_pump 1 166 2030 1.0 0.0 +de 01_solar 1 167 2030 1.0 0.0 +de 02_wind_on 1 167 2030 1.0 0.0 +de 03_wind_off 1 167 2030 1.0 0.0 +de 04_res 1 167 2030 1.0 0.0 +de 05_nuclear 1 167 2030 1.0 0.0 +de 06_coal 1 167 2030 1.0 0.0 +de 07_gas 1 167 2030 1.0 0.0 +de 08_non-res 1 167 2030 1.0 0.0 +de 09_hydro_pump 1 167 2030 1.0 0.0 +de 01_solar 1 168 2030 1.0 0.0 +de 02_wind_on 1 168 2030 1.0 0.0 +de 03_wind_off 1 168 2030 1.0 0.0 +de 04_res 1 168 2030 1.0 0.0 +de 05_nuclear 1 168 2030 1.0 0.0 +de 06_coal 1 168 2030 1.0 0.0 +de 07_gas 1 168 2030 1.0 0.0 +de 08_non-res 1 168 2030 1.0 0.0 +de 09_hydro_pump 1 168 2030 1.0 0.0 +de 01_solar 1 169 2030 0.0 0.0 +de 02_wind_on 1 169 2030 0.0 0.0 +de 03_wind_off 1 169 2030 0.0 0.0 +de 04_res 1 169 2030 0.0 0.0 +de 05_nuclear 1 169 2030 0.0 0.0 +de 06_coal 1 169 2030 0.0 0.0 +de 07_gas 1 169 2030 0.0 0.0 +de 08_non-res 1 169 2030 0.0 0.0 +de 09_hydro_pump 1 169 2030 0.0 0.0 +de 01_solar 1 170 2030 1.0 0.0 +de 02_wind_on 1 170 2030 0.0 0.0 +de 03_wind_off 1 170 2030 0.0 0.0 +de 04_res 1 170 2030 0.0 0.0 +de 05_nuclear 1 170 2030 0.0 0.0 +de 06_coal 1 170 2030 0.0 0.0 +de 07_gas 1 170 2030 0.0 0.0 +de 08_non-res 1 170 2030 0.0 0.0 +de 09_hydro_pump 1 170 2030 0.0 0.0 +de 01_solar 1 171 2030 1.0 0.0 +de 02_wind_on 1 171 2030 0.0 0.0 +de 03_wind_off 1 171 2030 0.0 0.0 +de 04_res 1 171 2030 0.0 0.0 +de 05_nuclear 1 171 2030 0.0 0.0 +de 06_coal 1 171 2030 0.0 0.0 +de 07_gas 1 171 2030 0.0 0.0 +de 08_non-res 1 171 2030 0.0 0.0 +de 09_hydro_pump 1 171 2030 0.0 0.0 +de 01_solar 1 172 2030 1.0 0.0 +de 02_wind_on 1 172 2030 0.0 0.0 +de 03_wind_off 1 172 2030 0.0 0.0 +de 04_res 1 172 2030 0.0 0.0 +de 05_nuclear 1 172 2030 0.0 0.0 +de 06_coal 1 172 2030 0.0 0.0 +de 07_gas 1 172 2030 0.0 0.0 +de 08_non-res 1 172 2030 0.0 0.0 +de 09_hydro_pump 1 172 2030 0.0 0.0 +de 01_solar 1 173 2030 1.0 0.0 +de 02_wind_on 1 173 2030 0.0 0.0 +de 03_wind_off 1 173 2030 0.0 0.0 +de 04_res 1 173 2030 0.0 0.0 +de 05_nuclear 1 173 2030 0.0 0.0 +de 06_coal 1 173 2030 0.0 0.0 +de 07_gas 1 173 2030 0.0 0.0 +de 08_non-res 1 173 2030 0.0 0.0 +de 09_hydro_pump 1 173 2030 0.0 0.0 +de 01_solar 1 174 2030 1.0 0.0 +de 02_wind_on 1 174 2030 0.0 0.0 +de 03_wind_off 1 174 2030 0.0 0.0 +de 04_res 1 174 2030 0.0 0.0 +de 05_nuclear 1 174 2030 0.0 0.0 +de 06_coal 1 174 2030 0.0 0.0 +de 07_gas 1 174 2030 0.0 0.0 +de 08_non-res 1 174 2030 0.0 0.0 +de 09_hydro_pump 1 174 2030 0.0 0.0 +de 01_solar 1 175 2030 1.0 0.0 +de 02_wind_on 1 175 2030 0.0 0.0 +de 03_wind_off 1 175 2030 0.0 0.0 +de 04_res 1 175 2030 0.0 0.0 +de 05_nuclear 1 175 2030 0.0 0.0 +de 06_coal 1 175 2030 0.0 0.0 +de 07_gas 1 175 2030 0.0 0.0 +de 08_non-res 1 175 2030 0.0 0.0 +de 09_hydro_pump 1 175 2030 0.0 0.0 +de 01_solar 1 176 2030 1.0 0.0 +de 02_wind_on 1 176 2030 0.0 0.0 +de 03_wind_off 1 176 2030 0.0 0.0 +de 04_res 1 176 2030 0.0 0.0 +de 05_nuclear 1 176 2030 0.0 0.0 +de 06_coal 1 176 2030 0.0 0.0 +de 07_gas 1 176 2030 0.0 0.0 +de 08_non-res 1 176 2030 0.0 0.0 +de 09_hydro_pump 1 176 2030 0.0 0.0 +de 01_solar 1 177 2030 1.0 0.0 +de 02_wind_on 1 177 2030 0.0 0.0 +de 03_wind_off 1 177 2030 0.0 0.0 +de 04_res 1 177 2030 0.0 0.0 +de 05_nuclear 1 177 2030 0.0 0.0 +de 06_coal 1 177 2030 0.0 0.0 +de 07_gas 1 177 2030 0.0 0.0 +de 08_non-res 1 177 2030 0.0 0.0 +de 09_hydro_pump 1 177 2030 0.0 0.0 +de 01_solar 1 178 2030 1.0 0.0 +de 02_wind_on 1 178 2030 0.0 0.0 +de 03_wind_off 1 178 2030 0.0 0.0 +de 04_res 1 178 2030 0.0 0.0 +de 05_nuclear 1 178 2030 0.0 0.0 +de 06_coal 1 178 2030 0.0 0.0 +de 07_gas 1 178 2030 0.0 0.0 +de 08_non-res 1 178 2030 0.0 0.0 +de 09_hydro_pump 1 178 2030 0.0 0.0 +de 01_solar 1 179 2030 1.0 0.0 +de 02_wind_on 1 179 2030 0.0 0.0 +de 03_wind_off 1 179 2030 0.0 0.0 +de 04_res 1 179 2030 0.0 0.0 +de 05_nuclear 1 179 2030 0.0 0.0 +de 06_coal 1 179 2030 0.0 0.0 +de 07_gas 1 179 2030 0.0 0.0 +de 08_non-res 1 179 2030 0.0 0.0 +de 09_hydro_pump 1 179 2030 0.0 0.0 +de 01_solar 1 180 2030 1.0 0.0 +de 02_wind_on 1 180 2030 0.0 0.0 +de 03_wind_off 1 180 2030 0.0 0.0 +de 04_res 1 180 2030 0.0 0.0 +de 05_nuclear 1 180 2030 0.0 0.0 +de 06_coal 1 180 2030 0.0 0.0 +de 07_gas 1 180 2030 0.0 0.0 +de 08_non-res 1 180 2030 0.0 0.0 +de 09_hydro_pump 1 180 2030 0.0 0.0 +de 01_solar 1 181 2030 1.0 0.0 +de 02_wind_on 1 181 2030 0.0 0.0 +de 03_wind_off 1 181 2030 0.0 0.0 +de 04_res 1 181 2030 0.0 0.0 +de 05_nuclear 1 181 2030 0.0 0.0 +de 06_coal 1 181 2030 0.0 0.0 +de 07_gas 1 181 2030 0.0 0.0 +de 08_non-res 1 181 2030 0.0 0.0 +de 09_hydro_pump 1 181 2030 0.0 0.0 +de 01_solar 1 182 2030 1.0 0.0 +de 02_wind_on 1 182 2030 0.0 0.0 +de 03_wind_off 1 182 2030 0.0 0.0 +de 04_res 1 182 2030 0.0 0.0 +de 05_nuclear 1 182 2030 0.0 0.0 +de 06_coal 1 182 2030 0.0 0.0 +de 07_gas 1 182 2030 0.0 0.0 +de 08_non-res 1 182 2030 0.0 0.0 +de 09_hydro_pump 1 182 2030 0.0 0.0 +de 01_solar 1 183 2030 1.0 0.0 +de 02_wind_on 1 183 2030 0.0 0.0 +de 03_wind_off 1 183 2030 0.0 0.0 +de 04_res 1 183 2030 0.0 0.0 +de 05_nuclear 1 183 2030 0.0 0.0 +de 06_coal 1 183 2030 0.0 0.0 +de 07_gas 1 183 2030 0.0 0.0 +de 08_non-res 1 183 2030 0.0 0.0 +de 09_hydro_pump 1 183 2030 0.0 0.0 +de 01_solar 1 184 2030 1.0 0.0 +de 02_wind_on 1 184 2030 0.0 0.0 +de 03_wind_off 1 184 2030 0.0 0.0 +de 04_res 1 184 2030 0.0 0.0 +de 05_nuclear 1 184 2030 0.0 0.0 +de 06_coal 1 184 2030 0.0 0.0 +de 07_gas 1 184 2030 0.0 0.0 +de 08_non-res 1 184 2030 0.0 0.0 +de 09_hydro_pump 1 184 2030 0.0 0.0 +de 01_solar 1 185 2030 1.0 0.0 +de 02_wind_on 1 185 2030 0.0 0.0 +de 03_wind_off 1 185 2030 0.0 0.0 +de 04_res 1 185 2030 0.0 0.0 +de 05_nuclear 1 185 2030 0.0 0.0 +de 06_coal 1 185 2030 0.0 0.0 +de 07_gas 1 185 2030 0.0 0.0 +de 08_non-res 1 185 2030 0.0 0.0 +de 09_hydro_pump 1 185 2030 0.0 0.0 +de 01_solar 1 186 2030 1.0 0.0 +de 02_wind_on 1 186 2030 0.0 0.0 +de 03_wind_off 1 186 2030 0.0 0.0 +de 04_res 1 186 2030 0.0 0.0 +de 05_nuclear 1 186 2030 0.0 0.0 +de 06_coal 1 186 2030 0.0 0.0 +de 07_gas 1 186 2030 0.0 0.0 +de 08_non-res 1 186 2030 0.0 0.0 +de 09_hydro_pump 1 186 2030 0.0 0.0 +de 01_solar 1 187 2030 1.0 0.0 +de 02_wind_on 1 187 2030 0.0 0.0 +de 03_wind_off 1 187 2030 0.0 0.0 +de 04_res 1 187 2030 0.0 0.0 +de 05_nuclear 1 187 2030 0.0 0.0 +de 06_coal 1 187 2030 0.0 0.0 +de 07_gas 1 187 2030 0.0 0.0 +de 08_non-res 1 187 2030 0.0 0.0 +de 09_hydro_pump 1 187 2030 0.0 0.0 +de 01_solar 1 188 2030 1.0 0.0 +de 02_wind_on 1 188 2030 0.0 0.0 +de 03_wind_off 1 188 2030 0.0 0.0 +de 04_res 1 188 2030 0.0 0.0 +de 05_nuclear 1 188 2030 0.0 0.0 +de 06_coal 1 188 2030 0.0 0.0 +de 07_gas 1 188 2030 0.0 0.0 +de 08_non-res 1 188 2030 0.0 0.0 +de 09_hydro_pump 1 188 2030 0.0 0.0 +de 01_solar 1 189 2030 1.0 0.0 +de 02_wind_on 1 189 2030 0.0 0.0 +de 03_wind_off 1 189 2030 0.0 0.0 +de 04_res 1 189 2030 0.0 0.0 +de 05_nuclear 1 189 2030 0.0 0.0 +de 06_coal 1 189 2030 0.0 0.0 +de 07_gas 1 189 2030 0.0 0.0 +de 08_non-res 1 189 2030 0.0 0.0 +de 09_hydro_pump 1 189 2030 0.0 0.0 +de 01_solar 1 190 2030 1.0 0.0 +de 02_wind_on 1 190 2030 1.0 0.0 +de 03_wind_off 1 190 2030 0.0 0.0 +de 04_res 1 190 2030 0.0 0.0 +de 05_nuclear 1 190 2030 0.0 0.0 +de 06_coal 1 190 2030 0.0 0.0 +de 07_gas 1 190 2030 0.0 0.0 +de 08_non-res 1 190 2030 0.0 0.0 +de 09_hydro_pump 1 190 2030 0.0 0.0 +de 01_solar 1 191 2030 1.0 0.0 +de 02_wind_on 1 191 2030 1.0 0.0 +de 03_wind_off 1 191 2030 0.0 0.0 +de 04_res 1 191 2030 0.0 0.0 +de 05_nuclear 1 191 2030 0.0 0.0 +de 06_coal 1 191 2030 0.0 0.0 +de 07_gas 1 191 2030 0.0 0.0 +de 08_non-res 1 191 2030 0.0 0.0 +de 09_hydro_pump 1 191 2030 0.0 0.0 +de 01_solar 1 192 2030 1.0 0.0 +de 02_wind_on 1 192 2030 1.0 0.0 +de 03_wind_off 1 192 2030 0.0 0.0 +de 04_res 1 192 2030 0.0 0.0 +de 05_nuclear 1 192 2030 0.0 0.0 +de 06_coal 1 192 2030 0.0 0.0 +de 07_gas 1 192 2030 0.0 0.0 +de 08_non-res 1 192 2030 0.0 0.0 +de 09_hydro_pump 1 192 2030 0.0 0.0 +de 01_solar 1 193 2030 1.0 0.0 +de 02_wind_on 1 193 2030 1.0 0.0 +de 03_wind_off 1 193 2030 0.0 0.0 +de 04_res 1 193 2030 0.0 0.0 +de 05_nuclear 1 193 2030 0.0 0.0 +de 06_coal 1 193 2030 0.0 0.0 +de 07_gas 1 193 2030 0.0 0.0 +de 08_non-res 1 193 2030 0.0 0.0 +de 09_hydro_pump 1 193 2030 0.0 0.0 +de 01_solar 1 194 2030 1.0 0.0 +de 02_wind_on 1 194 2030 1.0 0.0 +de 03_wind_off 1 194 2030 0.0 0.0 +de 04_res 1 194 2030 0.0 0.0 +de 05_nuclear 1 194 2030 0.0 0.0 +de 06_coal 1 194 2030 0.0 0.0 +de 07_gas 1 194 2030 0.0 0.0 +de 08_non-res 1 194 2030 0.0 0.0 +de 09_hydro_pump 1 194 2030 0.0 0.0 +de 01_solar 1 195 2030 1.0 0.0 +de 02_wind_on 1 195 2030 1.0 0.0 +de 03_wind_off 1 195 2030 0.0 0.0 +de 04_res 1 195 2030 0.0 0.0 +de 05_nuclear 1 195 2030 0.0 0.0 +de 06_coal 1 195 2030 0.0 0.0 +de 07_gas 1 195 2030 0.0 0.0 +de 08_non-res 1 195 2030 0.0 0.0 +de 09_hydro_pump 1 195 2030 0.0 0.0 +de 01_solar 1 196 2030 1.0 0.0 +de 02_wind_on 1 196 2030 1.0 0.0 +de 03_wind_off 1 196 2030 0.0 0.0 +de 04_res 1 196 2030 0.0 0.0 +de 05_nuclear 1 196 2030 0.0 0.0 +de 06_coal 1 196 2030 0.0 0.0 +de 07_gas 1 196 2030 0.0 0.0 +de 08_non-res 1 196 2030 0.0 0.0 +de 09_hydro_pump 1 196 2030 0.0 0.0 +de 01_solar 1 197 2030 1.0 0.0 +de 02_wind_on 1 197 2030 1.0 0.0 +de 03_wind_off 1 197 2030 0.0 0.0 +de 04_res 1 197 2030 0.0 0.0 +de 05_nuclear 1 197 2030 0.0 0.0 +de 06_coal 1 197 2030 0.0 0.0 +de 07_gas 1 197 2030 0.0 0.0 +de 08_non-res 1 197 2030 0.0 0.0 +de 09_hydro_pump 1 197 2030 0.0 0.0 +de 01_solar 1 198 2030 1.0 0.0 +de 02_wind_on 1 198 2030 1.0 0.0 +de 03_wind_off 1 198 2030 0.0 0.0 +de 04_res 1 198 2030 0.0 0.0 +de 05_nuclear 1 198 2030 0.0 0.0 +de 06_coal 1 198 2030 0.0 0.0 +de 07_gas 1 198 2030 0.0 0.0 +de 08_non-res 1 198 2030 0.0 0.0 +de 09_hydro_pump 1 198 2030 0.0 0.0 +de 01_solar 1 199 2030 1.0 0.0 +de 02_wind_on 1 199 2030 1.0 0.0 +de 03_wind_off 1 199 2030 0.0 0.0 +de 04_res 1 199 2030 0.0 0.0 +de 05_nuclear 1 199 2030 0.0 0.0 +de 06_coal 1 199 2030 0.0 0.0 +de 07_gas 1 199 2030 0.0 0.0 +de 08_non-res 1 199 2030 0.0 0.0 +de 09_hydro_pump 1 199 2030 0.0 0.0 +de 01_solar 1 200 2030 1.0 0.0 +de 02_wind_on 1 200 2030 1.0 0.0 +de 03_wind_off 1 200 2030 0.0 0.0 +de 04_res 1 200 2030 0.0 0.0 +de 05_nuclear 1 200 2030 0.0 0.0 +de 06_coal 1 200 2030 0.0 0.0 +de 07_gas 1 200 2030 0.0 0.0 +de 08_non-res 1 200 2030 0.0 0.0 +de 09_hydro_pump 1 200 2030 0.0 0.0 +de 01_solar 1 201 2030 1.0 0.0 +de 02_wind_on 1 201 2030 1.0 0.0 +de 03_wind_off 1 201 2030 0.0 0.0 +de 04_res 1 201 2030 0.0 0.0 +de 05_nuclear 1 201 2030 0.0 0.0 +de 06_coal 1 201 2030 0.0 0.0 +de 07_gas 1 201 2030 0.0 0.0 +de 08_non-res 1 201 2030 0.0 0.0 +de 09_hydro_pump 1 201 2030 0.0 0.0 +de 01_solar 1 202 2030 1.0 0.0 +de 02_wind_on 1 202 2030 1.0 0.0 +de 03_wind_off 1 202 2030 0.0 0.0 +de 04_res 1 202 2030 0.0 0.0 +de 05_nuclear 1 202 2030 0.0 0.0 +de 06_coal 1 202 2030 0.0 0.0 +de 07_gas 1 202 2030 0.0 0.0 +de 08_non-res 1 202 2030 0.0 0.0 +de 09_hydro_pump 1 202 2030 0.0 0.0 +de 01_solar 1 203 2030 1.0 0.0 +de 02_wind_on 1 203 2030 1.0 0.0 +de 03_wind_off 1 203 2030 0.0 0.0 +de 04_res 1 203 2030 0.0 0.0 +de 05_nuclear 1 203 2030 0.0 0.0 +de 06_coal 1 203 2030 0.0 0.0 +de 07_gas 1 203 2030 0.0 0.0 +de 08_non-res 1 203 2030 0.0 0.0 +de 09_hydro_pump 1 203 2030 0.0 0.0 +de 01_solar 1 204 2030 1.0 0.0 +de 02_wind_on 1 204 2030 1.0 0.0 +de 03_wind_off 1 204 2030 0.0 0.0 +de 04_res 1 204 2030 0.0 0.0 +de 05_nuclear 1 204 2030 0.0 0.0 +de 06_coal 1 204 2030 0.0 0.0 +de 07_gas 1 204 2030 0.0 0.0 +de 08_non-res 1 204 2030 0.0 0.0 +de 09_hydro_pump 1 204 2030 0.0 0.0 +de 01_solar 1 205 2030 1.0 0.0 +de 02_wind_on 1 205 2030 1.0 0.0 +de 03_wind_off 1 205 2030 0.0 0.0 +de 04_res 1 205 2030 0.0 0.0 +de 05_nuclear 1 205 2030 0.0 0.0 +de 06_coal 1 205 2030 0.0 0.0 +de 07_gas 1 205 2030 0.0 0.0 +de 08_non-res 1 205 2030 0.0 0.0 +de 09_hydro_pump 1 205 2030 0.0 0.0 +de 01_solar 1 206 2030 1.0 0.0 +de 02_wind_on 1 206 2030 1.0 0.0 +de 03_wind_off 1 206 2030 0.0 0.0 +de 04_res 1 206 2030 0.0 0.0 +de 05_nuclear 1 206 2030 0.0 0.0 +de 06_coal 1 206 2030 0.0 0.0 +de 07_gas 1 206 2030 0.0 0.0 +de 08_non-res 1 206 2030 0.0 0.0 +de 09_hydro_pump 1 206 2030 0.0 0.0 +de 01_solar 1 207 2030 1.0 0.0 +de 02_wind_on 1 207 2030 1.0 0.0 +de 03_wind_off 1 207 2030 0.0 0.0 +de 04_res 1 207 2030 0.0 0.0 +de 05_nuclear 1 207 2030 0.0 0.0 +de 06_coal 1 207 2030 0.0 0.0 +de 07_gas 1 207 2030 0.0 0.0 +de 08_non-res 1 207 2030 0.0 0.0 +de 09_hydro_pump 1 207 2030 0.0 0.0 +de 01_solar 1 208 2030 1.0 0.0 +de 02_wind_on 1 208 2030 1.0 0.0 +de 03_wind_off 1 208 2030 0.0 0.0 +de 04_res 1 208 2030 0.0 0.0 +de 05_nuclear 1 208 2030 0.0 0.0 +de 06_coal 1 208 2030 0.0 0.0 +de 07_gas 1 208 2030 0.0 0.0 +de 08_non-res 1 208 2030 0.0 0.0 +de 09_hydro_pump 1 208 2030 0.0 0.0 +de 01_solar 1 209 2030 1.0 0.0 +de 02_wind_on 1 209 2030 1.0 0.0 +de 03_wind_off 1 209 2030 0.0 0.0 +de 04_res 1 209 2030 0.0 0.0 +de 05_nuclear 1 209 2030 0.0 0.0 +de 06_coal 1 209 2030 0.0 0.0 +de 07_gas 1 209 2030 0.0 0.0 +de 08_non-res 1 209 2030 0.0 0.0 +de 09_hydro_pump 1 209 2030 0.0 0.0 +de 01_solar 1 210 2030 1.0 0.0 +de 02_wind_on 1 210 2030 1.0 0.0 +de 03_wind_off 1 210 2030 1.0 0.0 +de 04_res 1 210 2030 0.0 0.0 +de 05_nuclear 1 210 2030 0.0 0.0 +de 06_coal 1 210 2030 0.0 0.0 +de 07_gas 1 210 2030 0.0 0.0 +de 08_non-res 1 210 2030 0.0 0.0 +de 09_hydro_pump 1 210 2030 0.0 0.0 +de 01_solar 1 211 2030 1.0 0.0 +de 02_wind_on 1 211 2030 1.0 0.0 +de 03_wind_off 1 211 2030 1.0 0.0 +de 04_res 1 211 2030 0.0 0.0 +de 05_nuclear 1 211 2030 0.0 0.0 +de 06_coal 1 211 2030 0.0 0.0 +de 07_gas 1 211 2030 0.0 0.0 +de 08_non-res 1 211 2030 0.0 0.0 +de 09_hydro_pump 1 211 2030 0.0 0.0 +de 01_solar 1 212 2030 1.0 0.0 +de 02_wind_on 1 212 2030 1.0 0.0 +de 03_wind_off 1 212 2030 1.0 0.0 +de 04_res 1 212 2030 0.0 0.0 +de 05_nuclear 1 212 2030 0.0 0.0 +de 06_coal 1 212 2030 0.0 0.0 +de 07_gas 1 212 2030 0.0 0.0 +de 08_non-res 1 212 2030 0.0 0.0 +de 09_hydro_pump 1 212 2030 0.0 0.0 +de 01_solar 1 213 2030 1.0 0.0 +de 02_wind_on 1 213 2030 1.0 0.0 +de 03_wind_off 1 213 2030 1.0 0.0 +de 04_res 1 213 2030 0.0 0.0 +de 05_nuclear 1 213 2030 0.0 0.0 +de 06_coal 1 213 2030 0.0 0.0 +de 07_gas 1 213 2030 0.0 0.0 +de 08_non-res 1 213 2030 0.0 0.0 +de 09_hydro_pump 1 213 2030 0.0 0.0 +de 01_solar 1 214 2030 1.0 0.0 +de 02_wind_on 1 214 2030 1.0 0.0 +de 03_wind_off 1 214 2030 1.0 0.0 +de 04_res 1 214 2030 0.0 0.0 +de 05_nuclear 1 214 2030 0.0 0.0 +de 06_coal 1 214 2030 0.0 0.0 +de 07_gas 1 214 2030 0.0 0.0 +de 08_non-res 1 214 2030 0.0 0.0 +de 09_hydro_pump 1 214 2030 0.0 0.0 +de 01_solar 1 215 2030 1.0 0.0 +de 02_wind_on 1 215 2030 1.0 0.0 +de 03_wind_off 1 215 2030 1.0 0.0 +de 04_res 1 215 2030 0.0 0.0 +de 05_nuclear 1 215 2030 0.0 0.0 +de 06_coal 1 215 2030 0.0 0.0 +de 07_gas 1 215 2030 0.0 0.0 +de 08_non-res 1 215 2030 0.0 0.0 +de 09_hydro_pump 1 215 2030 0.0 0.0 +de 01_solar 1 216 2030 1.0 0.0 +de 02_wind_on 1 216 2030 1.0 0.0 +de 03_wind_off 1 216 2030 1.0 0.0 +de 04_res 1 216 2030 0.0 0.0 +de 05_nuclear 1 216 2030 0.0 0.0 +de 06_coal 1 216 2030 0.0 0.0 +de 07_gas 1 216 2030 0.0 0.0 +de 08_non-res 1 216 2030 0.0 0.0 +de 09_hydro_pump 1 216 2030 0.0 0.0 +de 01_solar 1 217 2030 1.0 0.0 +de 02_wind_on 1 217 2030 1.0 0.0 +de 03_wind_off 1 217 2030 1.0 0.0 +de 04_res 1 217 2030 0.0 0.0 +de 05_nuclear 1 217 2030 0.0 0.0 +de 06_coal 1 217 2030 0.0 0.0 +de 07_gas 1 217 2030 0.0 0.0 +de 08_non-res 1 217 2030 0.0 0.0 +de 09_hydro_pump 1 217 2030 0.0 0.0 +de 01_solar 1 218 2030 1.0 0.0 +de 02_wind_on 1 218 2030 1.0 0.0 +de 03_wind_off 1 218 2030 1.0 0.0 +de 04_res 1 218 2030 0.0 0.0 +de 05_nuclear 1 218 2030 0.0 0.0 +de 06_coal 1 218 2030 0.0 0.0 +de 07_gas 1 218 2030 0.0 0.0 +de 08_non-res 1 218 2030 0.0 0.0 +de 09_hydro_pump 1 218 2030 0.0 0.0 +de 01_solar 1 219 2030 1.0 0.0 +de 02_wind_on 1 219 2030 1.0 0.0 +de 03_wind_off 1 219 2030 1.0 0.0 +de 04_res 1 219 2030 0.0 0.0 +de 05_nuclear 1 219 2030 0.0 0.0 +de 06_coal 1 219 2030 0.0 0.0 +de 07_gas 1 219 2030 0.0 0.0 +de 08_non-res 1 219 2030 0.0 0.0 +de 09_hydro_pump 1 219 2030 0.0 0.0 +de 01_solar 1 220 2030 1.0 0.0 +de 02_wind_on 1 220 2030 1.0 0.0 +de 03_wind_off 1 220 2030 1.0 0.0 +de 04_res 1 220 2030 0.0 0.0 +de 05_nuclear 1 220 2030 0.0 0.0 +de 06_coal 1 220 2030 0.0 0.0 +de 07_gas 1 220 2030 0.0 0.0 +de 08_non-res 1 220 2030 0.0 0.0 +de 09_hydro_pump 1 220 2030 0.0 0.0 +de 01_solar 1 221 2030 1.0 0.0 +de 02_wind_on 1 221 2030 1.0 0.0 +de 03_wind_off 1 221 2030 1.0 0.0 +de 04_res 1 221 2030 0.0 0.0 +de 05_nuclear 1 221 2030 0.0 0.0 +de 06_coal 1 221 2030 0.0 0.0 +de 07_gas 1 221 2030 0.0 0.0 +de 08_non-res 1 221 2030 0.0 0.0 +de 09_hydro_pump 1 221 2030 0.0 0.0 +de 01_solar 1 222 2030 1.0 0.0 +de 02_wind_on 1 222 2030 1.0 0.0 +de 03_wind_off 1 222 2030 1.0 0.0 +de 04_res 1 222 2030 0.0 0.0 +de 05_nuclear 1 222 2030 0.0 0.0 +de 06_coal 1 222 2030 0.0 0.0 +de 07_gas 1 222 2030 0.0 0.0 +de 08_non-res 1 222 2030 0.0 0.0 +de 09_hydro_pump 1 222 2030 0.0 0.0 +de 01_solar 1 223 2030 1.0 0.0 +de 02_wind_on 1 223 2030 1.0 0.0 +de 03_wind_off 1 223 2030 1.0 0.0 +de 04_res 1 223 2030 0.0 0.0 +de 05_nuclear 1 223 2030 0.0 0.0 +de 06_coal 1 223 2030 0.0 0.0 +de 07_gas 1 223 2030 0.0 0.0 +de 08_non-res 1 223 2030 0.0 0.0 +de 09_hydro_pump 1 223 2030 0.0 0.0 +de 01_solar 1 224 2030 1.0 0.0 +de 02_wind_on 1 224 2030 1.0 0.0 +de 03_wind_off 1 224 2030 1.0 0.0 +de 04_res 1 224 2030 0.0 0.0 +de 05_nuclear 1 224 2030 0.0 0.0 +de 06_coal 1 224 2030 0.0 0.0 +de 07_gas 1 224 2030 0.0 0.0 +de 08_non-res 1 224 2030 0.0 0.0 +de 09_hydro_pump 1 224 2030 0.0 0.0 +de 01_solar 1 225 2030 1.0 0.0 +de 02_wind_on 1 225 2030 1.0 0.0 +de 03_wind_off 1 225 2030 1.0 0.0 +de 04_res 1 225 2030 0.0 0.0 +de 05_nuclear 1 225 2030 0.0 0.0 +de 06_coal 1 225 2030 0.0 0.0 +de 07_gas 1 225 2030 0.0 0.0 +de 08_non-res 1 225 2030 0.0 0.0 +de 09_hydro_pump 1 225 2030 0.0 0.0 +de 01_solar 1 226 2030 1.0 0.0 +de 02_wind_on 1 226 2030 1.0 0.0 +de 03_wind_off 1 226 2030 1.0 0.0 +de 04_res 1 226 2030 0.0 0.0 +de 05_nuclear 1 226 2030 0.0 0.0 +de 06_coal 1 226 2030 0.0 0.0 +de 07_gas 1 226 2030 0.0 0.0 +de 08_non-res 1 226 2030 0.0 0.0 +de 09_hydro_pump 1 226 2030 0.0 0.0 +de 01_solar 1 227 2030 1.0 0.0 +de 02_wind_on 1 227 2030 1.0 0.0 +de 03_wind_off 1 227 2030 1.0 0.0 +de 04_res 1 227 2030 0.0 0.0 +de 05_nuclear 1 227 2030 0.0 0.0 +de 06_coal 1 227 2030 0.0 0.0 +de 07_gas 1 227 2030 0.0 0.0 +de 08_non-res 1 227 2030 0.0 0.0 +de 09_hydro_pump 1 227 2030 0.0 0.0 +de 01_solar 1 228 2030 1.0 0.0 +de 02_wind_on 1 228 2030 1.0 0.0 +de 03_wind_off 1 228 2030 1.0 0.0 +de 04_res 1 228 2030 0.0 0.0 +de 05_nuclear 1 228 2030 0.0 0.0 +de 06_coal 1 228 2030 0.0 0.0 +de 07_gas 1 228 2030 0.0 0.0 +de 08_non-res 1 228 2030 0.0 0.0 +de 09_hydro_pump 1 228 2030 0.0 0.0 +de 01_solar 1 229 2030 1.0 0.0 +de 02_wind_on 1 229 2030 1.0 0.0 +de 03_wind_off 1 229 2030 1.0 0.0 +de 04_res 1 229 2030 0.0 0.0 +de 05_nuclear 1 229 2030 0.0 0.0 +de 06_coal 1 229 2030 0.0 0.0 +de 07_gas 1 229 2030 0.0 0.0 +de 08_non-res 1 229 2030 0.0 0.0 +de 09_hydro_pump 1 229 2030 0.0 0.0 +de 01_solar 1 230 2030 1.0 0.0 +de 02_wind_on 1 230 2030 1.0 0.0 +de 03_wind_off 1 230 2030 1.0 0.0 +de 04_res 1 230 2030 1.0 0.0 +de 05_nuclear 1 230 2030 0.0 0.0 +de 06_coal 1 230 2030 0.0 0.0 +de 07_gas 1 230 2030 0.0 0.0 +de 08_non-res 1 230 2030 0.0 0.0 +de 09_hydro_pump 1 230 2030 0.0 0.0 +de 01_solar 1 231 2030 1.0 0.0 +de 02_wind_on 1 231 2030 1.0 0.0 +de 03_wind_off 1 231 2030 1.0 0.0 +de 04_res 1 231 2030 1.0 0.0 +de 05_nuclear 1 231 2030 0.0 0.0 +de 06_coal 1 231 2030 0.0 0.0 +de 07_gas 1 231 2030 0.0 0.0 +de 08_non-res 1 231 2030 0.0 0.0 +de 09_hydro_pump 1 231 2030 0.0 0.0 +de 01_solar 1 232 2030 1.0 0.0 +de 02_wind_on 1 232 2030 1.0 0.0 +de 03_wind_off 1 232 2030 1.0 0.0 +de 04_res 1 232 2030 1.0 0.0 +de 05_nuclear 1 232 2030 0.0 0.0 +de 06_coal 1 232 2030 0.0 0.0 +de 07_gas 1 232 2030 0.0 0.0 +de 08_non-res 1 232 2030 0.0 0.0 +de 09_hydro_pump 1 232 2030 0.0 0.0 +de 01_solar 1 233 2030 1.0 0.0 +de 02_wind_on 1 233 2030 1.0 0.0 +de 03_wind_off 1 233 2030 1.0 0.0 +de 04_res 1 233 2030 1.0 0.0 +de 05_nuclear 1 233 2030 0.0 0.0 +de 06_coal 1 233 2030 0.0 0.0 +de 07_gas 1 233 2030 0.0 0.0 +de 08_non-res 1 233 2030 0.0 0.0 +de 09_hydro_pump 1 233 2030 0.0 0.0 +de 01_solar 1 234 2030 1.0 0.0 +de 02_wind_on 1 234 2030 1.0 0.0 +de 03_wind_off 1 234 2030 1.0 0.0 +de 04_res 1 234 2030 1.0 0.0 +de 05_nuclear 1 234 2030 0.0 0.0 +de 06_coal 1 234 2030 0.0 0.0 +de 07_gas 1 234 2030 0.0 0.0 +de 08_non-res 1 234 2030 0.0 0.0 +de 09_hydro_pump 1 234 2030 0.0 0.0 +de 01_solar 1 235 2030 1.0 0.0 +de 02_wind_on 1 235 2030 1.0 0.0 +de 03_wind_off 1 235 2030 1.0 0.0 +de 04_res 1 235 2030 1.0 0.0 +de 05_nuclear 1 235 2030 0.0 0.0 +de 06_coal 1 235 2030 0.0 0.0 +de 07_gas 1 235 2030 0.0 0.0 +de 08_non-res 1 235 2030 0.0 0.0 +de 09_hydro_pump 1 235 2030 0.0 0.0 +de 01_solar 1 236 2030 1.0 0.0 +de 02_wind_on 1 236 2030 1.0 0.0 +de 03_wind_off 1 236 2030 1.0 0.0 +de 04_res 1 236 2030 1.0 0.0 +de 05_nuclear 1 236 2030 0.0 0.0 +de 06_coal 1 236 2030 0.0 0.0 +de 07_gas 1 236 2030 0.0 0.0 +de 08_non-res 1 236 2030 0.0 0.0 +de 09_hydro_pump 1 236 2030 0.0 0.0 +de 01_solar 1 237 2030 1.0 0.0 +de 02_wind_on 1 237 2030 1.0 0.0 +de 03_wind_off 1 237 2030 1.0 0.0 +de 04_res 1 237 2030 1.0 0.0 +de 05_nuclear 1 237 2030 0.0 0.0 +de 06_coal 1 237 2030 0.0 0.0 +de 07_gas 1 237 2030 0.0 0.0 +de 08_non-res 1 237 2030 0.0 0.0 +de 09_hydro_pump 1 237 2030 0.0 0.0 +de 01_solar 1 238 2030 1.0 0.0 +de 02_wind_on 1 238 2030 1.0 0.0 +de 03_wind_off 1 238 2030 1.0 0.0 +de 04_res 1 238 2030 1.0 0.0 +de 05_nuclear 1 238 2030 0.0 0.0 +de 06_coal 1 238 2030 0.0 0.0 +de 07_gas 1 238 2030 0.0 0.0 +de 08_non-res 1 238 2030 0.0 0.0 +de 09_hydro_pump 1 238 2030 0.0 0.0 +de 01_solar 1 239 2030 1.0 0.0 +de 02_wind_on 1 239 2030 1.0 0.0 +de 03_wind_off 1 239 2030 1.0 0.0 +de 04_res 1 239 2030 1.0 0.0 +de 05_nuclear 1 239 2030 0.0 0.0 +de 06_coal 1 239 2030 0.0 0.0 +de 07_gas 1 239 2030 0.0 0.0 +de 08_non-res 1 239 2030 0.0 0.0 +de 09_hydro_pump 1 239 2030 0.0 0.0 +de 01_solar 1 240 2030 1.0 0.0 +de 02_wind_on 1 240 2030 1.0 0.0 +de 03_wind_off 1 240 2030 1.0 0.0 +de 04_res 1 240 2030 1.0 0.0 +de 05_nuclear 1 240 2030 0.0 0.0 +de 06_coal 1 240 2030 0.0 0.0 +de 07_gas 1 240 2030 0.0 0.0 +de 08_non-res 1 240 2030 0.0 0.0 +de 09_hydro_pump 1 240 2030 0.0 0.0 +de 01_solar 1 241 2030 1.0 0.0 +de 02_wind_on 1 241 2030 1.0 0.0 +de 03_wind_off 1 241 2030 1.0 0.0 +de 04_res 1 241 2030 1.0 0.0 +de 05_nuclear 1 241 2030 0.0 0.0 +de 06_coal 1 241 2030 0.0 0.0 +de 07_gas 1 241 2030 0.0 0.0 +de 08_non-res 1 241 2030 0.0 0.0 +de 09_hydro_pump 1 241 2030 0.0 0.0 +de 01_solar 1 242 2030 1.0 0.0 +de 02_wind_on 1 242 2030 1.0 0.0 +de 03_wind_off 1 242 2030 1.0 0.0 +de 04_res 1 242 2030 1.0 0.0 +de 05_nuclear 1 242 2030 0.0 0.0 +de 06_coal 1 242 2030 0.0 0.0 +de 07_gas 1 242 2030 0.0 0.0 +de 08_non-res 1 242 2030 0.0 0.0 +de 09_hydro_pump 1 242 2030 0.0 0.0 +de 01_solar 1 243 2030 1.0 0.0 +de 02_wind_on 1 243 2030 1.0 0.0 +de 03_wind_off 1 243 2030 1.0 0.0 +de 04_res 1 243 2030 1.0 0.0 +de 05_nuclear 1 243 2030 0.0 0.0 +de 06_coal 1 243 2030 0.0 0.0 +de 07_gas 1 243 2030 0.0 0.0 +de 08_non-res 1 243 2030 0.0 0.0 +de 09_hydro_pump 1 243 2030 0.0 0.0 +de 01_solar 1 244 2030 1.0 0.0 +de 02_wind_on 1 244 2030 1.0 0.0 +de 03_wind_off 1 244 2030 1.0 0.0 +de 04_res 1 244 2030 1.0 0.0 +de 05_nuclear 1 244 2030 0.0 0.0 +de 06_coal 1 244 2030 0.0 0.0 +de 07_gas 1 244 2030 0.0 0.0 +de 08_non-res 1 244 2030 0.0 0.0 +de 09_hydro_pump 1 244 2030 0.0 0.0 +de 01_solar 1 245 2030 1.0 0.0 +de 02_wind_on 1 245 2030 1.0 0.0 +de 03_wind_off 1 245 2030 1.0 0.0 +de 04_res 1 245 2030 1.0 0.0 +de 05_nuclear 1 245 2030 0.0 0.0 +de 06_coal 1 245 2030 0.0 0.0 +de 07_gas 1 245 2030 0.0 0.0 +de 08_non-res 1 245 2030 0.0 0.0 +de 09_hydro_pump 1 245 2030 0.0 0.0 +de 01_solar 1 246 2030 1.0 0.0 +de 02_wind_on 1 246 2030 1.0 0.0 +de 03_wind_off 1 246 2030 1.0 0.0 +de 04_res 1 246 2030 1.0 0.0 +de 05_nuclear 1 246 2030 0.0 0.0 +de 06_coal 1 246 2030 0.0 0.0 +de 07_gas 1 246 2030 0.0 0.0 +de 08_non-res 1 246 2030 0.0 0.0 +de 09_hydro_pump 1 246 2030 0.0 0.0 +de 01_solar 1 247 2030 1.0 0.0 +de 02_wind_on 1 247 2030 1.0 0.0 +de 03_wind_off 1 247 2030 1.0 0.0 +de 04_res 1 247 2030 1.0 0.0 +de 05_nuclear 1 247 2030 0.0 0.0 +de 06_coal 1 247 2030 0.0 0.0 +de 07_gas 1 247 2030 0.0 0.0 +de 08_non-res 1 247 2030 0.0 0.0 +de 09_hydro_pump 1 247 2030 0.0 0.0 +de 01_solar 1 248 2030 1.0 0.0 +de 02_wind_on 1 248 2030 1.0 0.0 +de 03_wind_off 1 248 2030 1.0 0.0 +de 04_res 1 248 2030 1.0 0.0 +de 05_nuclear 1 248 2030 0.0 0.0 +de 06_coal 1 248 2030 0.0 0.0 +de 07_gas 1 248 2030 0.0 0.0 +de 08_non-res 1 248 2030 0.0 0.0 +de 09_hydro_pump 1 248 2030 0.0 0.0 +de 01_solar 1 249 2030 1.0 0.0 +de 02_wind_on 1 249 2030 1.0 0.0 +de 03_wind_off 1 249 2030 1.0 0.0 +de 04_res 1 249 2030 1.0 0.0 +de 05_nuclear 1 249 2030 0.0 0.0 +de 06_coal 1 249 2030 0.0 0.0 +de 07_gas 1 249 2030 0.0 0.0 +de 08_non-res 1 249 2030 0.0 0.0 +de 09_hydro_pump 1 249 2030 0.0 0.0 +de 01_solar 1 250 2030 1.0 0.0 +de 02_wind_on 1 250 2030 1.0 0.0 +de 03_wind_off 1 250 2030 1.0 0.0 +de 04_res 1 250 2030 1.0 0.0 +de 05_nuclear 1 250 2030 1.0 0.0 +de 06_coal 1 250 2030 0.0 0.0 +de 07_gas 1 250 2030 0.0 0.0 +de 08_non-res 1 250 2030 0.0 0.0 +de 09_hydro_pump 1 250 2030 0.0 0.0 +de 01_solar 1 251 2030 1.0 0.0 +de 02_wind_on 1 251 2030 1.0 0.0 +de 03_wind_off 1 251 2030 1.0 0.0 +de 04_res 1 251 2030 1.0 0.0 +de 05_nuclear 1 251 2030 1.0 0.0 +de 06_coal 1 251 2030 0.0 0.0 +de 07_gas 1 251 2030 0.0 0.0 +de 08_non-res 1 251 2030 0.0 0.0 +de 09_hydro_pump 1 251 2030 0.0 0.0 +de 01_solar 1 252 2030 1.0 0.0 +de 02_wind_on 1 252 2030 1.0 0.0 +de 03_wind_off 1 252 2030 1.0 0.0 +de 04_res 1 252 2030 1.0 0.0 +de 05_nuclear 1 252 2030 1.0 0.0 +de 06_coal 1 252 2030 0.0 0.0 +de 07_gas 1 252 2030 0.0 0.0 +de 08_non-res 1 252 2030 0.0 0.0 +de 09_hydro_pump 1 252 2030 0.0 0.0 +de 01_solar 1 253 2030 1.0 0.0 +de 02_wind_on 1 253 2030 1.0 0.0 +de 03_wind_off 1 253 2030 1.0 0.0 +de 04_res 1 253 2030 1.0 0.0 +de 05_nuclear 1 253 2030 1.0 0.0 +de 06_coal 1 253 2030 0.0 0.0 +de 07_gas 1 253 2030 0.0 0.0 +de 08_non-res 1 253 2030 0.0 0.0 +de 09_hydro_pump 1 253 2030 0.0 0.0 +de 01_solar 1 254 2030 1.0 0.0 +de 02_wind_on 1 254 2030 1.0 0.0 +de 03_wind_off 1 254 2030 1.0 0.0 +de 04_res 1 254 2030 1.0 0.0 +de 05_nuclear 1 254 2030 1.0 0.0 +de 06_coal 1 254 2030 0.0 0.0 +de 07_gas 1 254 2030 0.0 0.0 +de 08_non-res 1 254 2030 0.0 0.0 +de 09_hydro_pump 1 254 2030 0.0 0.0 +de 01_solar 1 255 2030 1.0 0.0 +de 02_wind_on 1 255 2030 1.0 0.0 +de 03_wind_off 1 255 2030 1.0 0.0 +de 04_res 1 255 2030 1.0 0.0 +de 05_nuclear 1 255 2030 1.0 0.0 +de 06_coal 1 255 2030 0.0 0.0 +de 07_gas 1 255 2030 0.0 0.0 +de 08_non-res 1 255 2030 0.0 0.0 +de 09_hydro_pump 1 255 2030 0.0 0.0 +de 01_solar 1 256 2030 1.0 0.0 +de 02_wind_on 1 256 2030 1.0 0.0 +de 03_wind_off 1 256 2030 1.0 0.0 +de 04_res 1 256 2030 1.0 0.0 +de 05_nuclear 1 256 2030 1.0 0.0 +de 06_coal 1 256 2030 0.0 0.0 +de 07_gas 1 256 2030 0.0 0.0 +de 08_non-res 1 256 2030 0.0 0.0 +de 09_hydro_pump 1 256 2030 0.0 0.0 +de 01_solar 1 257 2030 1.0 0.0 +de 02_wind_on 1 257 2030 1.0 0.0 +de 03_wind_off 1 257 2030 1.0 0.0 +de 04_res 1 257 2030 1.0 0.0 +de 05_nuclear 1 257 2030 1.0 0.0 +de 06_coal 1 257 2030 0.0 0.0 +de 07_gas 1 257 2030 0.0 0.0 +de 08_non-res 1 257 2030 0.0 0.0 +de 09_hydro_pump 1 257 2030 0.0 0.0 +de 01_solar 1 258 2030 1.0 0.0 +de 02_wind_on 1 258 2030 1.0 0.0 +de 03_wind_off 1 258 2030 1.0 0.0 +de 04_res 1 258 2030 1.0 0.0 +de 05_nuclear 1 258 2030 1.0 0.0 +de 06_coal 1 258 2030 0.0 0.0 +de 07_gas 1 258 2030 0.0 0.0 +de 08_non-res 1 258 2030 0.0 0.0 +de 09_hydro_pump 1 258 2030 0.0 0.0 +de 01_solar 1 259 2030 1.0 0.0 +de 02_wind_on 1 259 2030 1.0 0.0 +de 03_wind_off 1 259 2030 1.0 0.0 +de 04_res 1 259 2030 1.0 0.0 +de 05_nuclear 1 259 2030 1.0 0.0 +de 06_coal 1 259 2030 0.0 0.0 +de 07_gas 1 259 2030 0.0 0.0 +de 08_non-res 1 259 2030 0.0 0.0 +de 09_hydro_pump 1 259 2030 0.0 0.0 +de 01_solar 1 260 2030 1.0 0.0 +de 02_wind_on 1 260 2030 1.0 0.0 +de 03_wind_off 1 260 2030 1.0 0.0 +de 04_res 1 260 2030 1.0 0.0 +de 05_nuclear 1 260 2030 1.0 0.0 +de 06_coal 1 260 2030 0.0 0.0 +de 07_gas 1 260 2030 0.0 0.0 +de 08_non-res 1 260 2030 0.0 0.0 +de 09_hydro_pump 1 260 2030 0.0 0.0 +de 01_solar 1 261 2030 1.0 0.0 +de 02_wind_on 1 261 2030 1.0 0.0 +de 03_wind_off 1 261 2030 1.0 0.0 +de 04_res 1 261 2030 1.0 0.0 +de 05_nuclear 1 261 2030 1.0 0.0 +de 06_coal 1 261 2030 0.0 0.0 +de 07_gas 1 261 2030 0.0 0.0 +de 08_non-res 1 261 2030 0.0 0.0 +de 09_hydro_pump 1 261 2030 0.0 0.0 +de 01_solar 1 262 2030 1.0 0.0 +de 02_wind_on 1 262 2030 1.0 0.0 +de 03_wind_off 1 262 2030 1.0 0.0 +de 04_res 1 262 2030 1.0 0.0 +de 05_nuclear 1 262 2030 1.0 0.0 +de 06_coal 1 262 2030 0.0 0.0 +de 07_gas 1 262 2030 0.0 0.0 +de 08_non-res 1 262 2030 0.0 0.0 +de 09_hydro_pump 1 262 2030 0.0 0.0 +de 01_solar 1 263 2030 1.0 0.0 +de 02_wind_on 1 263 2030 1.0 0.0 +de 03_wind_off 1 263 2030 1.0 0.0 +de 04_res 1 263 2030 1.0 0.0 +de 05_nuclear 1 263 2030 1.0 0.0 +de 06_coal 1 263 2030 0.0 0.0 +de 07_gas 1 263 2030 0.0 0.0 +de 08_non-res 1 263 2030 0.0 0.0 +de 09_hydro_pump 1 263 2030 0.0 0.0 +de 01_solar 1 264 2030 1.0 0.0 +de 02_wind_on 1 264 2030 1.0 0.0 +de 03_wind_off 1 264 2030 1.0 0.0 +de 04_res 1 264 2030 1.0 0.0 +de 05_nuclear 1 264 2030 1.0 0.0 +de 06_coal 1 264 2030 0.0 0.0 +de 07_gas 1 264 2030 0.0 0.0 +de 08_non-res 1 264 2030 0.0 0.0 +de 09_hydro_pump 1 264 2030 0.0 0.0 +de 01_solar 1 265 2030 1.0 0.0 +de 02_wind_on 1 265 2030 1.0 0.0 +de 03_wind_off 1 265 2030 1.0 0.0 +de 04_res 1 265 2030 1.0 0.0 +de 05_nuclear 1 265 2030 1.0 0.0 +de 06_coal 1 265 2030 0.0 0.0 +de 07_gas 1 265 2030 0.0 0.0 +de 08_non-res 1 265 2030 0.0 0.0 +de 09_hydro_pump 1 265 2030 0.0 0.0 +de 01_solar 1 266 2030 1.0 0.0 +de 02_wind_on 1 266 2030 1.0 0.0 +de 03_wind_off 1 266 2030 1.0 0.0 +de 04_res 1 266 2030 1.0 0.0 +de 05_nuclear 1 266 2030 1.0 0.0 +de 06_coal 1 266 2030 0.0 0.0 +de 07_gas 1 266 2030 0.0 0.0 +de 08_non-res 1 266 2030 0.0 0.0 +de 09_hydro_pump 1 266 2030 0.0 0.0 +de 01_solar 1 267 2030 1.0 0.0 +de 02_wind_on 1 267 2030 1.0 0.0 +de 03_wind_off 1 267 2030 1.0 0.0 +de 04_res 1 267 2030 1.0 0.0 +de 05_nuclear 1 267 2030 1.0 0.0 +de 06_coal 1 267 2030 0.0 0.0 +de 07_gas 1 267 2030 0.0 0.0 +de 08_non-res 1 267 2030 0.0 0.0 +de 09_hydro_pump 1 267 2030 0.0 0.0 +de 01_solar 1 268 2030 1.0 0.0 +de 02_wind_on 1 268 2030 1.0 0.0 +de 03_wind_off 1 268 2030 1.0 0.0 +de 04_res 1 268 2030 1.0 0.0 +de 05_nuclear 1 268 2030 1.0 0.0 +de 06_coal 1 268 2030 0.0 0.0 +de 07_gas 1 268 2030 0.0 0.0 +de 08_non-res 1 268 2030 0.0 0.0 +de 09_hydro_pump 1 268 2030 0.0 0.0 +de 01_solar 1 269 2030 1.0 0.0 +de 02_wind_on 1 269 2030 1.0 0.0 +de 03_wind_off 1 269 2030 1.0 0.0 +de 04_res 1 269 2030 1.0 0.0 +de 05_nuclear 1 269 2030 1.0 0.0 +de 06_coal 1 269 2030 0.0 0.0 +de 07_gas 1 269 2030 0.0 0.0 +de 08_non-res 1 269 2030 0.0 0.0 +de 09_hydro_pump 1 269 2030 0.0 0.0 +de 01_solar 1 270 2030 1.0 0.0 +de 02_wind_on 1 270 2030 1.0 0.0 +de 03_wind_off 1 270 2030 1.0 0.0 +de 04_res 1 270 2030 1.0 0.0 +de 05_nuclear 1 270 2030 1.0 0.0 +de 06_coal 1 270 2030 1.0 0.0 +de 07_gas 1 270 2030 0.0 0.0 +de 08_non-res 1 270 2030 0.0 0.0 +de 09_hydro_pump 1 270 2030 0.0 0.0 +de 01_solar 1 271 2030 1.0 0.0 +de 02_wind_on 1 271 2030 1.0 0.0 +de 03_wind_off 1 271 2030 1.0 0.0 +de 04_res 1 271 2030 1.0 0.0 +de 05_nuclear 1 271 2030 1.0 0.0 +de 06_coal 1 271 2030 1.0 0.0 +de 07_gas 1 271 2030 0.0 0.0 +de 08_non-res 1 271 2030 0.0 0.0 +de 09_hydro_pump 1 271 2030 0.0 0.0 +de 01_solar 1 272 2030 1.0 0.0 +de 02_wind_on 1 272 2030 1.0 0.0 +de 03_wind_off 1 272 2030 1.0 0.0 +de 04_res 1 272 2030 1.0 0.0 +de 05_nuclear 1 272 2030 1.0 0.0 +de 06_coal 1 272 2030 1.0 0.0 +de 07_gas 1 272 2030 0.0 0.0 +de 08_non-res 1 272 2030 0.0 0.0 +de 09_hydro_pump 1 272 2030 0.0 0.0 +de 01_solar 1 273 2030 1.0 0.0 +de 02_wind_on 1 273 2030 1.0 0.0 +de 03_wind_off 1 273 2030 1.0 0.0 +de 04_res 1 273 2030 1.0 0.0 +de 05_nuclear 1 273 2030 1.0 0.0 +de 06_coal 1 273 2030 1.0 0.0 +de 07_gas 1 273 2030 0.0 0.0 +de 08_non-res 1 273 2030 0.0 0.0 +de 09_hydro_pump 1 273 2030 0.0 0.0 +de 01_solar 1 274 2030 1.0 0.0 +de 02_wind_on 1 274 2030 1.0 0.0 +de 03_wind_off 1 274 2030 1.0 0.0 +de 04_res 1 274 2030 1.0 0.0 +de 05_nuclear 1 274 2030 1.0 0.0 +de 06_coal 1 274 2030 1.0 0.0 +de 07_gas 1 274 2030 0.0 0.0 +de 08_non-res 1 274 2030 0.0 0.0 +de 09_hydro_pump 1 274 2030 0.0 0.0 +de 01_solar 1 275 2030 1.0 0.0 +de 02_wind_on 1 275 2030 1.0 0.0 +de 03_wind_off 1 275 2030 1.0 0.0 +de 04_res 1 275 2030 1.0 0.0 +de 05_nuclear 1 275 2030 1.0 0.0 +de 06_coal 1 275 2030 1.0 0.0 +de 07_gas 1 275 2030 0.0 0.0 +de 08_non-res 1 275 2030 0.0 0.0 +de 09_hydro_pump 1 275 2030 0.0 0.0 +de 01_solar 1 276 2030 1.0 0.0 +de 02_wind_on 1 276 2030 1.0 0.0 +de 03_wind_off 1 276 2030 1.0 0.0 +de 04_res 1 276 2030 1.0 0.0 +de 05_nuclear 1 276 2030 1.0 0.0 +de 06_coal 1 276 2030 1.0 0.0 +de 07_gas 1 276 2030 0.0 0.0 +de 08_non-res 1 276 2030 0.0 0.0 +de 09_hydro_pump 1 276 2030 0.0 0.0 +de 01_solar 1 277 2030 1.0 0.0 +de 02_wind_on 1 277 2030 1.0 0.0 +de 03_wind_off 1 277 2030 1.0 0.0 +de 04_res 1 277 2030 1.0 0.0 +de 05_nuclear 1 277 2030 1.0 0.0 +de 06_coal 1 277 2030 1.0 0.0 +de 07_gas 1 277 2030 0.0 0.0 +de 08_non-res 1 277 2030 0.0 0.0 +de 09_hydro_pump 1 277 2030 0.0 0.0 +de 01_solar 1 278 2030 1.0 0.0 +de 02_wind_on 1 278 2030 1.0 0.0 +de 03_wind_off 1 278 2030 1.0 0.0 +de 04_res 1 278 2030 1.0 0.0 +de 05_nuclear 1 278 2030 1.0 0.0 +de 06_coal 1 278 2030 1.0 0.0 +de 07_gas 1 278 2030 0.0 0.0 +de 08_non-res 1 278 2030 0.0 0.0 +de 09_hydro_pump 1 278 2030 0.0 0.0 +de 01_solar 1 279 2030 1.0 0.0 +de 02_wind_on 1 279 2030 1.0 0.0 +de 03_wind_off 1 279 2030 1.0 0.0 +de 04_res 1 279 2030 1.0 0.0 +de 05_nuclear 1 279 2030 1.0 0.0 +de 06_coal 1 279 2030 1.0 0.0 +de 07_gas 1 279 2030 0.0 0.0 +de 08_non-res 1 279 2030 0.0 0.0 +de 09_hydro_pump 1 279 2030 0.0 0.0 +de 01_solar 1 280 2030 1.0 0.0 +de 02_wind_on 1 280 2030 1.0 0.0 +de 03_wind_off 1 280 2030 1.0 0.0 +de 04_res 1 280 2030 1.0 0.0 +de 05_nuclear 1 280 2030 1.0 0.0 +de 06_coal 1 280 2030 1.0 0.0 +de 07_gas 1 280 2030 0.0 0.0 +de 08_non-res 1 280 2030 0.0 0.0 +de 09_hydro_pump 1 280 2030 0.0 0.0 +de 01_solar 1 281 2030 1.0 0.0 +de 02_wind_on 1 281 2030 1.0 0.0 +de 03_wind_off 1 281 2030 1.0 0.0 +de 04_res 1 281 2030 1.0 0.0 +de 05_nuclear 1 281 2030 1.0 0.0 +de 06_coal 1 281 2030 1.0 0.0 +de 07_gas 1 281 2030 0.0 0.0 +de 08_non-res 1 281 2030 0.0 0.0 +de 09_hydro_pump 1 281 2030 0.0 0.0 +de 01_solar 1 282 2030 1.0 0.0 +de 02_wind_on 1 282 2030 1.0 0.0 +de 03_wind_off 1 282 2030 1.0 0.0 +de 04_res 1 282 2030 1.0 0.0 +de 05_nuclear 1 282 2030 1.0 0.0 +de 06_coal 1 282 2030 1.0 0.0 +de 07_gas 1 282 2030 0.0 0.0 +de 08_non-res 1 282 2030 0.0 0.0 +de 09_hydro_pump 1 282 2030 0.0 0.0 +de 01_solar 1 283 2030 1.0 0.0 +de 02_wind_on 1 283 2030 1.0 0.0 +de 03_wind_off 1 283 2030 1.0 0.0 +de 04_res 1 283 2030 1.0 0.0 +de 05_nuclear 1 283 2030 1.0 0.0 +de 06_coal 1 283 2030 1.0 0.0 +de 07_gas 1 283 2030 0.0 0.0 +de 08_non-res 1 283 2030 0.0 0.0 +de 09_hydro_pump 1 283 2030 0.0 0.0 +de 01_solar 1 284 2030 1.0 0.0 +de 02_wind_on 1 284 2030 1.0 0.0 +de 03_wind_off 1 284 2030 1.0 0.0 +de 04_res 1 284 2030 1.0 0.0 +de 05_nuclear 1 284 2030 1.0 0.0 +de 06_coal 1 284 2030 1.0 0.0 +de 07_gas 1 284 2030 0.0 0.0 +de 08_non-res 1 284 2030 0.0 0.0 +de 09_hydro_pump 1 284 2030 0.0 0.0 +de 01_solar 1 285 2030 1.0 0.0 +de 02_wind_on 1 285 2030 1.0 0.0 +de 03_wind_off 1 285 2030 1.0 0.0 +de 04_res 1 285 2030 1.0 0.0 +de 05_nuclear 1 285 2030 1.0 0.0 +de 06_coal 1 285 2030 1.0 0.0 +de 07_gas 1 285 2030 0.0 0.0 +de 08_non-res 1 285 2030 0.0 0.0 +de 09_hydro_pump 1 285 2030 0.0 0.0 +de 01_solar 1 286 2030 1.0 0.0 +de 02_wind_on 1 286 2030 1.0 0.0 +de 03_wind_off 1 286 2030 1.0 0.0 +de 04_res 1 286 2030 1.0 0.0 +de 05_nuclear 1 286 2030 1.0 0.0 +de 06_coal 1 286 2030 1.0 0.0 +de 07_gas 1 286 2030 0.0 0.0 +de 08_non-res 1 286 2030 0.0 0.0 +de 09_hydro_pump 1 286 2030 0.0 0.0 +de 01_solar 1 287 2030 1.0 0.0 +de 02_wind_on 1 287 2030 1.0 0.0 +de 03_wind_off 1 287 2030 1.0 0.0 +de 04_res 1 287 2030 1.0 0.0 +de 05_nuclear 1 287 2030 1.0 0.0 +de 06_coal 1 287 2030 1.0 0.0 +de 07_gas 1 287 2030 0.0 0.0 +de 08_non-res 1 287 2030 0.0 0.0 +de 09_hydro_pump 1 287 2030 0.0 0.0 +de 01_solar 1 288 2030 1.0 0.0 +de 02_wind_on 1 288 2030 1.0 0.0 +de 03_wind_off 1 288 2030 1.0 0.0 +de 04_res 1 288 2030 1.0 0.0 +de 05_nuclear 1 288 2030 1.0 0.0 +de 06_coal 1 288 2030 1.0 0.0 +de 07_gas 1 288 2030 0.0 0.0 +de 08_non-res 1 288 2030 0.0 0.0 +de 09_hydro_pump 1 288 2030 0.0 0.0 +de 01_solar 1 289 2030 1.0 0.0 +de 02_wind_on 1 289 2030 1.0 0.0 +de 03_wind_off 1 289 2030 1.0 0.0 +de 04_res 1 289 2030 1.0 0.0 +de 05_nuclear 1 289 2030 1.0 0.0 +de 06_coal 1 289 2030 1.0 0.0 +de 07_gas 1 289 2030 0.0 0.0 +de 08_non-res 1 289 2030 0.0 0.0 +de 09_hydro_pump 1 289 2030 0.0 0.0 +de 01_solar 1 290 2030 1.0 0.0 +de 02_wind_on 1 290 2030 1.0 0.0 +de 03_wind_off 1 290 2030 1.0 0.0 +de 04_res 1 290 2030 1.0 0.0 +de 05_nuclear 1 290 2030 1.0 0.0 +de 06_coal 1 290 2030 1.0 0.0 +de 07_gas 1 290 2030 1.0 0.0 +de 08_non-res 1 290 2030 0.0 0.0 +de 09_hydro_pump 1 290 2030 0.0 0.0 +de 01_solar 1 291 2030 1.0 0.0 +de 02_wind_on 1 291 2030 1.0 0.0 +de 03_wind_off 1 291 2030 1.0 0.0 +de 04_res 1 291 2030 1.0 0.0 +de 05_nuclear 1 291 2030 1.0 0.0 +de 06_coal 1 291 2030 1.0 0.0 +de 07_gas 1 291 2030 1.0 0.0 +de 08_non-res 1 291 2030 0.0 0.0 +de 09_hydro_pump 1 291 2030 0.0 0.0 +de 01_solar 1 292 2030 1.0 0.0 +de 02_wind_on 1 292 2030 1.0 0.0 +de 03_wind_off 1 292 2030 1.0 0.0 +de 04_res 1 292 2030 1.0 0.0 +de 05_nuclear 1 292 2030 1.0 0.0 +de 06_coal 1 292 2030 1.0 0.0 +de 07_gas 1 292 2030 1.0 0.0 +de 08_non-res 1 292 2030 0.0 0.0 +de 09_hydro_pump 1 292 2030 0.0 0.0 +de 01_solar 1 293 2030 1.0 0.0 +de 02_wind_on 1 293 2030 1.0 0.0 +de 03_wind_off 1 293 2030 1.0 0.0 +de 04_res 1 293 2030 1.0 0.0 +de 05_nuclear 1 293 2030 1.0 0.0 +de 06_coal 1 293 2030 1.0 0.0 +de 07_gas 1 293 2030 1.0 0.0 +de 08_non-res 1 293 2030 0.0 0.0 +de 09_hydro_pump 1 293 2030 0.0 0.0 +de 01_solar 1 294 2030 1.0 0.0 +de 02_wind_on 1 294 2030 1.0 0.0 +de 03_wind_off 1 294 2030 1.0 0.0 +de 04_res 1 294 2030 1.0 0.0 +de 05_nuclear 1 294 2030 1.0 0.0 +de 06_coal 1 294 2030 1.0 0.0 +de 07_gas 1 294 2030 1.0 0.0 +de 08_non-res 1 294 2030 0.0 0.0 +de 09_hydro_pump 1 294 2030 0.0 0.0 +de 01_solar 1 295 2030 1.0 0.0 +de 02_wind_on 1 295 2030 1.0 0.0 +de 03_wind_off 1 295 2030 1.0 0.0 +de 04_res 1 295 2030 1.0 0.0 +de 05_nuclear 1 295 2030 1.0 0.0 +de 06_coal 1 295 2030 1.0 0.0 +de 07_gas 1 295 2030 1.0 0.0 +de 08_non-res 1 295 2030 0.0 0.0 +de 09_hydro_pump 1 295 2030 0.0 0.0 +de 01_solar 1 296 2030 1.0 0.0 +de 02_wind_on 1 296 2030 1.0 0.0 +de 03_wind_off 1 296 2030 1.0 0.0 +de 04_res 1 296 2030 1.0 0.0 +de 05_nuclear 1 296 2030 1.0 0.0 +de 06_coal 1 296 2030 1.0 0.0 +de 07_gas 1 296 2030 1.0 0.0 +de 08_non-res 1 296 2030 0.0 0.0 +de 09_hydro_pump 1 296 2030 0.0 0.0 +de 01_solar 1 297 2030 1.0 0.0 +de 02_wind_on 1 297 2030 1.0 0.0 +de 03_wind_off 1 297 2030 1.0 0.0 +de 04_res 1 297 2030 1.0 0.0 +de 05_nuclear 1 297 2030 1.0 0.0 +de 06_coal 1 297 2030 1.0 0.0 +de 07_gas 1 297 2030 1.0 0.0 +de 08_non-res 1 297 2030 0.0 0.0 +de 09_hydro_pump 1 297 2030 0.0 0.0 +de 01_solar 1 298 2030 1.0 0.0 +de 02_wind_on 1 298 2030 1.0 0.0 +de 03_wind_off 1 298 2030 1.0 0.0 +de 04_res 1 298 2030 1.0 0.0 +de 05_nuclear 1 298 2030 1.0 0.0 +de 06_coal 1 298 2030 1.0 0.0 +de 07_gas 1 298 2030 1.0 0.0 +de 08_non-res 1 298 2030 0.0 0.0 +de 09_hydro_pump 1 298 2030 0.0 0.0 +de 01_solar 1 299 2030 1.0 0.0 +de 02_wind_on 1 299 2030 1.0 0.0 +de 03_wind_off 1 299 2030 1.0 0.0 +de 04_res 1 299 2030 1.0 0.0 +de 05_nuclear 1 299 2030 1.0 0.0 +de 06_coal 1 299 2030 1.0 0.0 +de 07_gas 1 299 2030 1.0 0.0 +de 08_non-res 1 299 2030 0.0 0.0 +de 09_hydro_pump 1 299 2030 0.0 0.0 +de 01_solar 1 300 2030 1.0 0.0 +de 02_wind_on 1 300 2030 1.0 0.0 +de 03_wind_off 1 300 2030 1.0 0.0 +de 04_res 1 300 2030 1.0 0.0 +de 05_nuclear 1 300 2030 1.0 0.0 +de 06_coal 1 300 2030 1.0 0.0 +de 07_gas 1 300 2030 1.0 0.0 +de 08_non-res 1 300 2030 0.0 0.0 +de 09_hydro_pump 1 300 2030 0.0 0.0 +de 01_solar 1 301 2030 1.0 0.0 +de 02_wind_on 1 301 2030 1.0 0.0 +de 03_wind_off 1 301 2030 1.0 0.0 +de 04_res 1 301 2030 1.0 0.0 +de 05_nuclear 1 301 2030 1.0 0.0 +de 06_coal 1 301 2030 1.0 0.0 +de 07_gas 1 301 2030 1.0 0.0 +de 08_non-res 1 301 2030 0.0 0.0 +de 09_hydro_pump 1 301 2030 0.0 0.0 +de 01_solar 1 302 2030 1.0 0.0 +de 02_wind_on 1 302 2030 1.0 0.0 +de 03_wind_off 1 302 2030 1.0 0.0 +de 04_res 1 302 2030 1.0 0.0 +de 05_nuclear 1 302 2030 1.0 0.0 +de 06_coal 1 302 2030 1.0 0.0 +de 07_gas 1 302 2030 1.0 0.0 +de 08_non-res 1 302 2030 0.0 0.0 +de 09_hydro_pump 1 302 2030 0.0 0.0 +de 01_solar 1 303 2030 1.0 0.0 +de 02_wind_on 1 303 2030 1.0 0.0 +de 03_wind_off 1 303 2030 1.0 0.0 +de 04_res 1 303 2030 1.0 0.0 +de 05_nuclear 1 303 2030 1.0 0.0 +de 06_coal 1 303 2030 1.0 0.0 +de 07_gas 1 303 2030 1.0 0.0 +de 08_non-res 1 303 2030 0.0 0.0 +de 09_hydro_pump 1 303 2030 0.0 0.0 +de 01_solar 1 304 2030 1.0 0.0 +de 02_wind_on 1 304 2030 1.0 0.0 +de 03_wind_off 1 304 2030 1.0 0.0 +de 04_res 1 304 2030 1.0 0.0 +de 05_nuclear 1 304 2030 1.0 0.0 +de 06_coal 1 304 2030 1.0 0.0 +de 07_gas 1 304 2030 1.0 0.0 +de 08_non-res 1 304 2030 0.0 0.0 +de 09_hydro_pump 1 304 2030 0.0 0.0 +de 01_solar 1 305 2030 1.0 0.0 +de 02_wind_on 1 305 2030 1.0 0.0 +de 03_wind_off 1 305 2030 1.0 0.0 +de 04_res 1 305 2030 1.0 0.0 +de 05_nuclear 1 305 2030 1.0 0.0 +de 06_coal 1 305 2030 1.0 0.0 +de 07_gas 1 305 2030 1.0 0.0 +de 08_non-res 1 305 2030 0.0 0.0 +de 09_hydro_pump 1 305 2030 0.0 0.0 +de 01_solar 1 306 2030 1.0 0.0 +de 02_wind_on 1 306 2030 1.0 0.0 +de 03_wind_off 1 306 2030 1.0 0.0 +de 04_res 1 306 2030 1.0 0.0 +de 05_nuclear 1 306 2030 1.0 0.0 +de 06_coal 1 306 2030 1.0 0.0 +de 07_gas 1 306 2030 1.0 0.0 +de 08_non-res 1 306 2030 0.0 0.0 +de 09_hydro_pump 1 306 2030 0.0 0.0 +de 01_solar 1 307 2030 1.0 0.0 +de 02_wind_on 1 307 2030 1.0 0.0 +de 03_wind_off 1 307 2030 1.0 0.0 +de 04_res 1 307 2030 1.0 0.0 +de 05_nuclear 1 307 2030 1.0 0.0 +de 06_coal 1 307 2030 1.0 0.0 +de 07_gas 1 307 2030 1.0 0.0 +de 08_non-res 1 307 2030 0.0 0.0 +de 09_hydro_pump 1 307 2030 0.0 0.0 +de 01_solar 1 308 2030 1.0 0.0 +de 02_wind_on 1 308 2030 1.0 0.0 +de 03_wind_off 1 308 2030 1.0 0.0 +de 04_res 1 308 2030 1.0 0.0 +de 05_nuclear 1 308 2030 1.0 0.0 +de 06_coal 1 308 2030 1.0 0.0 +de 07_gas 1 308 2030 1.0 0.0 +de 08_non-res 1 308 2030 0.0 0.0 +de 09_hydro_pump 1 308 2030 0.0 0.0 +de 01_solar 1 309 2030 1.0 0.0 +de 02_wind_on 1 309 2030 1.0 0.0 +de 03_wind_off 1 309 2030 1.0 0.0 +de 04_res 1 309 2030 1.0 0.0 +de 05_nuclear 1 309 2030 1.0 0.0 +de 06_coal 1 309 2030 1.0 0.0 +de 07_gas 1 309 2030 1.0 0.0 +de 08_non-res 1 309 2030 0.0 0.0 +de 09_hydro_pump 1 309 2030 0.0 0.0 +de 01_solar 1 310 2030 1.0 0.0 +de 02_wind_on 1 310 2030 1.0 0.0 +de 03_wind_off 1 310 2030 1.0 0.0 +de 04_res 1 310 2030 1.0 0.0 +de 05_nuclear 1 310 2030 1.0 0.0 +de 06_coal 1 310 2030 1.0 0.0 +de 07_gas 1 310 2030 1.0 0.0 +de 08_non-res 1 310 2030 1.0 0.0 +de 09_hydro_pump 1 310 2030 0.0 0.0 +de 01_solar 1 311 2030 1.0 0.0 +de 02_wind_on 1 311 2030 1.0 0.0 +de 03_wind_off 1 311 2030 1.0 0.0 +de 04_res 1 311 2030 1.0 0.0 +de 05_nuclear 1 311 2030 1.0 0.0 +de 06_coal 1 311 2030 1.0 0.0 +de 07_gas 1 311 2030 1.0 0.0 +de 08_non-res 1 311 2030 1.0 0.0 +de 09_hydro_pump 1 311 2030 0.0 0.0 +de 01_solar 1 312 2030 1.0 0.0 +de 02_wind_on 1 312 2030 1.0 0.0 +de 03_wind_off 1 312 2030 1.0 0.0 +de 04_res 1 312 2030 1.0 0.0 +de 05_nuclear 1 312 2030 1.0 0.0 +de 06_coal 1 312 2030 1.0 0.0 +de 07_gas 1 312 2030 1.0 0.0 +de 08_non-res 1 312 2030 1.0 0.0 +de 09_hydro_pump 1 312 2030 0.0 0.0 +de 01_solar 1 313 2030 1.0 0.0 +de 02_wind_on 1 313 2030 1.0 0.0 +de 03_wind_off 1 313 2030 1.0 0.0 +de 04_res 1 313 2030 1.0 0.0 +de 05_nuclear 1 313 2030 1.0 0.0 +de 06_coal 1 313 2030 1.0 0.0 +de 07_gas 1 313 2030 1.0 0.0 +de 08_non-res 1 313 2030 1.0 0.0 +de 09_hydro_pump 1 313 2030 0.0 0.0 +de 01_solar 1 314 2030 1.0 0.0 +de 02_wind_on 1 314 2030 1.0 0.0 +de 03_wind_off 1 314 2030 1.0 0.0 +de 04_res 1 314 2030 1.0 0.0 +de 05_nuclear 1 314 2030 1.0 0.0 +de 06_coal 1 314 2030 1.0 0.0 +de 07_gas 1 314 2030 1.0 0.0 +de 08_non-res 1 314 2030 1.0 0.0 +de 09_hydro_pump 1 314 2030 0.0 0.0 +de 01_solar 1 315 2030 1.0 0.0 +de 02_wind_on 1 315 2030 1.0 0.0 +de 03_wind_off 1 315 2030 1.0 0.0 +de 04_res 1 315 2030 1.0 0.0 +de 05_nuclear 1 315 2030 1.0 0.0 +de 06_coal 1 315 2030 1.0 0.0 +de 07_gas 1 315 2030 1.0 0.0 +de 08_non-res 1 315 2030 1.0 0.0 +de 09_hydro_pump 1 315 2030 0.0 0.0 +de 01_solar 1 316 2030 1.0 0.0 +de 02_wind_on 1 316 2030 1.0 0.0 +de 03_wind_off 1 316 2030 1.0 0.0 +de 04_res 1 316 2030 1.0 0.0 +de 05_nuclear 1 316 2030 1.0 0.0 +de 06_coal 1 316 2030 1.0 0.0 +de 07_gas 1 316 2030 1.0 0.0 +de 08_non-res 1 316 2030 1.0 0.0 +de 09_hydro_pump 1 316 2030 0.0 0.0 +de 01_solar 1 317 2030 1.0 0.0 +de 02_wind_on 1 317 2030 1.0 0.0 +de 03_wind_off 1 317 2030 1.0 0.0 +de 04_res 1 317 2030 1.0 0.0 +de 05_nuclear 1 317 2030 1.0 0.0 +de 06_coal 1 317 2030 1.0 0.0 +de 07_gas 1 317 2030 1.0 0.0 +de 08_non-res 1 317 2030 1.0 0.0 +de 09_hydro_pump 1 317 2030 0.0 0.0 +de 01_solar 1 318 2030 1.0 0.0 +de 02_wind_on 1 318 2030 1.0 0.0 +de 03_wind_off 1 318 2030 1.0 0.0 +de 04_res 1 318 2030 1.0 0.0 +de 05_nuclear 1 318 2030 1.0 0.0 +de 06_coal 1 318 2030 1.0 0.0 +de 07_gas 1 318 2030 1.0 0.0 +de 08_non-res 1 318 2030 1.0 0.0 +de 09_hydro_pump 1 318 2030 0.0 0.0 +de 01_solar 1 319 2030 1.0 0.0 +de 02_wind_on 1 319 2030 1.0 0.0 +de 03_wind_off 1 319 2030 1.0 0.0 +de 04_res 1 319 2030 1.0 0.0 +de 05_nuclear 1 319 2030 1.0 0.0 +de 06_coal 1 319 2030 1.0 0.0 +de 07_gas 1 319 2030 1.0 0.0 +de 08_non-res 1 319 2030 1.0 0.0 +de 09_hydro_pump 1 319 2030 0.0 0.0 +de 01_solar 1 320 2030 1.0 0.0 +de 02_wind_on 1 320 2030 1.0 0.0 +de 03_wind_off 1 320 2030 1.0 0.0 +de 04_res 1 320 2030 1.0 0.0 +de 05_nuclear 1 320 2030 1.0 0.0 +de 06_coal 1 320 2030 1.0 0.0 +de 07_gas 1 320 2030 1.0 0.0 +de 08_non-res 1 320 2030 1.0 0.0 +de 09_hydro_pump 1 320 2030 0.0 0.0 +de 01_solar 1 321 2030 1.0 0.0 +de 02_wind_on 1 321 2030 1.0 0.0 +de 03_wind_off 1 321 2030 1.0 0.0 +de 04_res 1 321 2030 1.0 0.0 +de 05_nuclear 1 321 2030 1.0 0.0 +de 06_coal 1 321 2030 1.0 0.0 +de 07_gas 1 321 2030 1.0 0.0 +de 08_non-res 1 321 2030 1.0 0.0 +de 09_hydro_pump 1 321 2030 0.0 0.0 +de 01_solar 1 322 2030 1.0 0.0 +de 02_wind_on 1 322 2030 1.0 0.0 +de 03_wind_off 1 322 2030 1.0 0.0 +de 04_res 1 322 2030 1.0 0.0 +de 05_nuclear 1 322 2030 1.0 0.0 +de 06_coal 1 322 2030 1.0 0.0 +de 07_gas 1 322 2030 1.0 0.0 +de 08_non-res 1 322 2030 1.0 0.0 +de 09_hydro_pump 1 322 2030 0.0 0.0 +de 01_solar 1 323 2030 1.0 0.0 +de 02_wind_on 1 323 2030 1.0 0.0 +de 03_wind_off 1 323 2030 1.0 0.0 +de 04_res 1 323 2030 1.0 0.0 +de 05_nuclear 1 323 2030 1.0 0.0 +de 06_coal 1 323 2030 1.0 0.0 +de 07_gas 1 323 2030 1.0 0.0 +de 08_non-res 1 323 2030 1.0 0.0 +de 09_hydro_pump 1 323 2030 0.0 0.0 +de 01_solar 1 324 2030 1.0 0.0 +de 02_wind_on 1 324 2030 1.0 0.0 +de 03_wind_off 1 324 2030 1.0 0.0 +de 04_res 1 324 2030 1.0 0.0 +de 05_nuclear 1 324 2030 1.0 0.0 +de 06_coal 1 324 2030 1.0 0.0 +de 07_gas 1 324 2030 1.0 0.0 +de 08_non-res 1 324 2030 1.0 0.0 +de 09_hydro_pump 1 324 2030 0.0 0.0 +de 01_solar 1 325 2030 1.0 0.0 +de 02_wind_on 1 325 2030 1.0 0.0 +de 03_wind_off 1 325 2030 1.0 0.0 +de 04_res 1 325 2030 1.0 0.0 +de 05_nuclear 1 325 2030 1.0 0.0 +de 06_coal 1 325 2030 1.0 0.0 +de 07_gas 1 325 2030 1.0 0.0 +de 08_non-res 1 325 2030 1.0 0.0 +de 09_hydro_pump 1 325 2030 0.0 0.0 +de 01_solar 1 326 2030 1.0 0.0 +de 02_wind_on 1 326 2030 1.0 0.0 +de 03_wind_off 1 326 2030 1.0 0.0 +de 04_res 1 326 2030 1.0 0.0 +de 05_nuclear 1 326 2030 1.0 0.0 +de 06_coal 1 326 2030 1.0 0.0 +de 07_gas 1 326 2030 1.0 0.0 +de 08_non-res 1 326 2030 1.0 0.0 +de 09_hydro_pump 1 326 2030 0.0 0.0 +de 01_solar 1 327 2030 1.0 0.0 +de 02_wind_on 1 327 2030 1.0 0.0 +de 03_wind_off 1 327 2030 1.0 0.0 +de 04_res 1 327 2030 1.0 0.0 +de 05_nuclear 1 327 2030 1.0 0.0 +de 06_coal 1 327 2030 1.0 0.0 +de 07_gas 1 327 2030 1.0 0.0 +de 08_non-res 1 327 2030 1.0 0.0 +de 09_hydro_pump 1 327 2030 0.0 0.0 +de 01_solar 1 328 2030 1.0 0.0 +de 02_wind_on 1 328 2030 1.0 0.0 +de 03_wind_off 1 328 2030 1.0 0.0 +de 04_res 1 328 2030 1.0 0.0 +de 05_nuclear 1 328 2030 1.0 0.0 +de 06_coal 1 328 2030 1.0 0.0 +de 07_gas 1 328 2030 1.0 0.0 +de 08_non-res 1 328 2030 1.0 0.0 +de 09_hydro_pump 1 328 2030 0.0 0.0 +de 01_solar 1 329 2030 1.0 0.0 +de 02_wind_on 1 329 2030 1.0 0.0 +de 03_wind_off 1 329 2030 1.0 0.0 +de 04_res 1 329 2030 1.0 0.0 +de 05_nuclear 1 329 2030 1.0 0.0 +de 06_coal 1 329 2030 1.0 0.0 +de 07_gas 1 329 2030 1.0 0.0 +de 08_non-res 1 329 2030 1.0 0.0 +de 09_hydro_pump 1 329 2030 0.0 0.0 +de 01_solar 1 330 2030 1.0 0.0 +de 02_wind_on 1 330 2030 1.0 0.0 +de 03_wind_off 1 330 2030 1.0 0.0 +de 04_res 1 330 2030 1.0 0.0 +de 05_nuclear 1 330 2030 1.0 0.0 +de 06_coal 1 330 2030 1.0 0.0 +de 07_gas 1 330 2030 1.0 0.0 +de 08_non-res 1 330 2030 1.0 0.0 +de 09_hydro_pump 1 330 2030 1.0 0.0 +de 01_solar 1 331 2030 1.0 0.0 +de 02_wind_on 1 331 2030 1.0 0.0 +de 03_wind_off 1 331 2030 1.0 0.0 +de 04_res 1 331 2030 1.0 0.0 +de 05_nuclear 1 331 2030 1.0 0.0 +de 06_coal 1 331 2030 1.0 0.0 +de 07_gas 1 331 2030 1.0 0.0 +de 08_non-res 1 331 2030 1.0 0.0 +de 09_hydro_pump 1 331 2030 1.0 0.0 +de 01_solar 1 332 2030 1.0 0.0 +de 02_wind_on 1 332 2030 1.0 0.0 +de 03_wind_off 1 332 2030 1.0 0.0 +de 04_res 1 332 2030 1.0 0.0 +de 05_nuclear 1 332 2030 1.0 0.0 +de 06_coal 1 332 2030 1.0 0.0 +de 07_gas 1 332 2030 1.0 0.0 +de 08_non-res 1 332 2030 1.0 0.0 +de 09_hydro_pump 1 332 2030 1.0 0.0 +de 01_solar 1 333 2030 1.0 0.0 +de 02_wind_on 1 333 2030 1.0 0.0 +de 03_wind_off 1 333 2030 1.0 0.0 +de 04_res 1 333 2030 1.0 0.0 +de 05_nuclear 1 333 2030 1.0 0.0 +de 06_coal 1 333 2030 1.0 0.0 +de 07_gas 1 333 2030 1.0 0.0 +de 08_non-res 1 333 2030 1.0 0.0 +de 09_hydro_pump 1 333 2030 1.0 0.0 +de 01_solar 1 334 2030 1.0 0.0 +de 02_wind_on 1 334 2030 1.0 0.0 +de 03_wind_off 1 334 2030 1.0 0.0 +de 04_res 1 334 2030 1.0 0.0 +de 05_nuclear 1 334 2030 1.0 0.0 +de 06_coal 1 334 2030 1.0 0.0 +de 07_gas 1 334 2030 1.0 0.0 +de 08_non-res 1 334 2030 1.0 0.0 +de 09_hydro_pump 1 334 2030 1.0 0.0 +de 01_solar 1 335 2030 1.0 0.0 +de 02_wind_on 1 335 2030 1.0 0.0 +de 03_wind_off 1 335 2030 1.0 0.0 +de 04_res 1 335 2030 1.0 0.0 +de 05_nuclear 1 335 2030 1.0 0.0 +de 06_coal 1 335 2030 1.0 0.0 +de 07_gas 1 335 2030 1.0 0.0 +de 08_non-res 1 335 2030 1.0 0.0 +de 09_hydro_pump 1 335 2030 1.0 0.0 +de 01_solar 1 336 2030 1.0 0.0 +de 02_wind_on 1 336 2030 1.0 0.0 +de 03_wind_off 1 336 2030 1.0 0.0 +de 04_res 1 336 2030 1.0 0.0 +de 05_nuclear 1 336 2030 1.0 0.0 +de 06_coal 1 336 2030 1.0 0.0 +de 07_gas 1 336 2030 1.0 0.0 +de 08_non-res 1 336 2030 1.0 0.0 +de 09_hydro_pump 1 336 2030 1.0 0.0 +es 01_solar 1 1 2030 0.0 0.0 +es 02_wind_on 1 1 2030 0.0 0.0 +es 03_wind_off 1 1 2030 0.0 0.0 +es 04_res 1 1 2030 0.0 0.0 +es 05_nuclear 1 1 2030 0.0 0.0 +es 06_coal 1 1 2030 0.0 0.0 +es 07_gas 1 1 2030 0.0 0.0 +es 08_non-res 1 1 2030 0.0 0.0 +es 09_hydro_pump 1 1 2030 0.0 0.0 +es 01_solar 1 2 2030 1.0 0.0 +es 02_wind_on 1 2 2030 0.0 0.0 +es 03_wind_off 1 2 2030 0.0 0.0 +es 04_res 1 2 2030 0.0 0.0 +es 05_nuclear 1 2 2030 0.0 0.0 +es 06_coal 1 2 2030 0.0 0.0 +es 07_gas 1 2 2030 0.0 0.0 +es 08_non-res 1 2 2030 0.0 0.0 +es 09_hydro_pump 1 2 2030 0.0 0.0 +es 01_solar 1 3 2030 1.0 0.0 +es 02_wind_on 1 3 2030 0.0 0.0 +es 03_wind_off 1 3 2030 0.0 0.0 +es 04_res 1 3 2030 0.0 0.0 +es 05_nuclear 1 3 2030 0.0 0.0 +es 06_coal 1 3 2030 0.0 0.0 +es 07_gas 1 3 2030 0.0 0.0 +es 08_non-res 1 3 2030 0.0 0.0 +es 09_hydro_pump 1 3 2030 0.0 0.0 +es 01_solar 1 4 2030 1.0 0.0 +es 02_wind_on 1 4 2030 0.0 0.0 +es 03_wind_off 1 4 2030 0.0 0.0 +es 04_res 1 4 2030 0.0 0.0 +es 05_nuclear 1 4 2030 0.0 0.0 +es 06_coal 1 4 2030 0.0 0.0 +es 07_gas 1 4 2030 0.0 0.0 +es 08_non-res 1 4 2030 0.0 0.0 +es 09_hydro_pump 1 4 2030 0.0 0.0 +es 01_solar 1 5 2030 1.0 0.0 +es 02_wind_on 1 5 2030 0.0 0.0 +es 03_wind_off 1 5 2030 0.0 0.0 +es 04_res 1 5 2030 0.0 0.0 +es 05_nuclear 1 5 2030 0.0 0.0 +es 06_coal 1 5 2030 0.0 0.0 +es 07_gas 1 5 2030 0.0 0.0 +es 08_non-res 1 5 2030 0.0 0.0 +es 09_hydro_pump 1 5 2030 0.0 0.0 +es 01_solar 1 6 2030 1.0 0.0 +es 02_wind_on 1 6 2030 0.0 0.0 +es 03_wind_off 1 6 2030 0.0 0.0 +es 04_res 1 6 2030 0.0 0.0 +es 05_nuclear 1 6 2030 0.0 0.0 +es 06_coal 1 6 2030 0.0 0.0 +es 07_gas 1 6 2030 0.0 0.0 +es 08_non-res 1 6 2030 0.0 0.0 +es 09_hydro_pump 1 6 2030 0.0 0.0 +es 01_solar 1 7 2030 1.0 0.0 +es 02_wind_on 1 7 2030 0.0 0.0 +es 03_wind_off 1 7 2030 0.0 0.0 +es 04_res 1 7 2030 0.0 0.0 +es 05_nuclear 1 7 2030 0.0 0.0 +es 06_coal 1 7 2030 0.0 0.0 +es 07_gas 1 7 2030 0.0 0.0 +es 08_non-res 1 7 2030 0.0 0.0 +es 09_hydro_pump 1 7 2030 0.0 0.0 +es 01_solar 1 8 2030 1.0 0.0 +es 02_wind_on 1 8 2030 0.0 0.0 +es 03_wind_off 1 8 2030 0.0 0.0 +es 04_res 1 8 2030 0.0 0.0 +es 05_nuclear 1 8 2030 0.0 0.0 +es 06_coal 1 8 2030 0.0 0.0 +es 07_gas 1 8 2030 0.0 0.0 +es 08_non-res 1 8 2030 0.0 0.0 +es 09_hydro_pump 1 8 2030 0.0 0.0 +es 01_solar 1 9 2030 1.0 0.0 +es 02_wind_on 1 9 2030 0.0 0.0 +es 03_wind_off 1 9 2030 0.0 0.0 +es 04_res 1 9 2030 0.0 0.0 +es 05_nuclear 1 9 2030 0.0 0.0 +es 06_coal 1 9 2030 0.0 0.0 +es 07_gas 1 9 2030 0.0 0.0 +es 08_non-res 1 9 2030 0.0 0.0 +es 09_hydro_pump 1 9 2030 0.0 0.0 +es 01_solar 1 10 2030 1.0 0.0 +es 02_wind_on 1 10 2030 0.0 0.0 +es 03_wind_off 1 10 2030 0.0 0.0 +es 04_res 1 10 2030 0.0 0.0 +es 05_nuclear 1 10 2030 0.0 0.0 +es 06_coal 1 10 2030 0.0 0.0 +es 07_gas 1 10 2030 0.0 0.0 +es 08_non-res 1 10 2030 0.0 0.0 +es 09_hydro_pump 1 10 2030 0.0 0.0 +es 01_solar 1 11 2030 1.0 0.0 +es 02_wind_on 1 11 2030 0.0 0.0 +es 03_wind_off 1 11 2030 0.0 0.0 +es 04_res 1 11 2030 0.0 0.0 +es 05_nuclear 1 11 2030 0.0 0.0 +es 06_coal 1 11 2030 0.0 0.0 +es 07_gas 1 11 2030 0.0 0.0 +es 08_non-res 1 11 2030 0.0 0.0 +es 09_hydro_pump 1 11 2030 0.0 0.0 +es 01_solar 1 12 2030 1.0 0.0 +es 02_wind_on 1 12 2030 0.0 0.0 +es 03_wind_off 1 12 2030 0.0 0.0 +es 04_res 1 12 2030 0.0 0.0 +es 05_nuclear 1 12 2030 0.0 0.0 +es 06_coal 1 12 2030 0.0 0.0 +es 07_gas 1 12 2030 0.0 0.0 +es 08_non-res 1 12 2030 0.0 0.0 +es 09_hydro_pump 1 12 2030 0.0 0.0 +es 01_solar 1 13 2030 1.0 0.0 +es 02_wind_on 1 13 2030 0.0 0.0 +es 03_wind_off 1 13 2030 0.0 0.0 +es 04_res 1 13 2030 0.0 0.0 +es 05_nuclear 1 13 2030 0.0 0.0 +es 06_coal 1 13 2030 0.0 0.0 +es 07_gas 1 13 2030 0.0 0.0 +es 08_non-res 1 13 2030 0.0 0.0 +es 09_hydro_pump 1 13 2030 0.0 0.0 +es 01_solar 1 14 2030 1.0 0.0 +es 02_wind_on 1 14 2030 0.0 0.0 +es 03_wind_off 1 14 2030 0.0 0.0 +es 04_res 1 14 2030 0.0 0.0 +es 05_nuclear 1 14 2030 0.0 0.0 +es 06_coal 1 14 2030 0.0 0.0 +es 07_gas 1 14 2030 0.0 0.0 +es 08_non-res 1 14 2030 0.0 0.0 +es 09_hydro_pump 1 14 2030 0.0 0.0 +es 01_solar 1 15 2030 1.0 0.0 +es 02_wind_on 1 15 2030 0.0 0.0 +es 03_wind_off 1 15 2030 0.0 0.0 +es 04_res 1 15 2030 0.0 0.0 +es 05_nuclear 1 15 2030 0.0 0.0 +es 06_coal 1 15 2030 0.0 0.0 +es 07_gas 1 15 2030 0.0 0.0 +es 08_non-res 1 15 2030 0.0 0.0 +es 09_hydro_pump 1 15 2030 0.0 0.0 +es 01_solar 1 16 2030 1.0 0.0 +es 02_wind_on 1 16 2030 0.0 0.0 +es 03_wind_off 1 16 2030 0.0 0.0 +es 04_res 1 16 2030 0.0 0.0 +es 05_nuclear 1 16 2030 0.0 0.0 +es 06_coal 1 16 2030 0.0 0.0 +es 07_gas 1 16 2030 0.0 0.0 +es 08_non-res 1 16 2030 0.0 0.0 +es 09_hydro_pump 1 16 2030 0.0 0.0 +es 01_solar 1 17 2030 1.0 0.0 +es 02_wind_on 1 17 2030 0.0 0.0 +es 03_wind_off 1 17 2030 0.0 0.0 +es 04_res 1 17 2030 0.0 0.0 +es 05_nuclear 1 17 2030 0.0 0.0 +es 06_coal 1 17 2030 0.0 0.0 +es 07_gas 1 17 2030 0.0 0.0 +es 08_non-res 1 17 2030 0.0 0.0 +es 09_hydro_pump 1 17 2030 0.0 0.0 +es 01_solar 1 18 2030 1.0 0.0 +es 02_wind_on 1 18 2030 0.0 0.0 +es 03_wind_off 1 18 2030 0.0 0.0 +es 04_res 1 18 2030 0.0 0.0 +es 05_nuclear 1 18 2030 0.0 0.0 +es 06_coal 1 18 2030 0.0 0.0 +es 07_gas 1 18 2030 0.0 0.0 +es 08_non-res 1 18 2030 0.0 0.0 +es 09_hydro_pump 1 18 2030 0.0 0.0 +es 01_solar 1 19 2030 1.0 0.0 +es 02_wind_on 1 19 2030 0.0 0.0 +es 03_wind_off 1 19 2030 0.0 0.0 +es 04_res 1 19 2030 0.0 0.0 +es 05_nuclear 1 19 2030 0.0 0.0 +es 06_coal 1 19 2030 0.0 0.0 +es 07_gas 1 19 2030 0.0 0.0 +es 08_non-res 1 19 2030 0.0 0.0 +es 09_hydro_pump 1 19 2030 0.0 0.0 +es 01_solar 1 20 2030 1.0 0.0 +es 02_wind_on 1 20 2030 0.0 0.0 +es 03_wind_off 1 20 2030 0.0 0.0 +es 04_res 1 20 2030 0.0 0.0 +es 05_nuclear 1 20 2030 0.0 0.0 +es 06_coal 1 20 2030 0.0 0.0 +es 07_gas 1 20 2030 0.0 0.0 +es 08_non-res 1 20 2030 0.0 0.0 +es 09_hydro_pump 1 20 2030 0.0 0.0 +es 01_solar 1 21 2030 1.0 0.0 +es 02_wind_on 1 21 2030 0.0 0.0 +es 03_wind_off 1 21 2030 0.0 0.0 +es 04_res 1 21 2030 0.0 0.0 +es 05_nuclear 1 21 2030 0.0 0.0 +es 06_coal 1 21 2030 0.0 0.0 +es 07_gas 1 21 2030 0.0 0.0 +es 08_non-res 1 21 2030 0.0 0.0 +es 09_hydro_pump 1 21 2030 0.0 0.0 +es 01_solar 1 22 2030 1.0 0.0 +es 02_wind_on 1 22 2030 1.0 0.0 +es 03_wind_off 1 22 2030 0.0 0.0 +es 04_res 1 22 2030 0.0 0.0 +es 05_nuclear 1 22 2030 0.0 0.0 +es 06_coal 1 22 2030 0.0 0.0 +es 07_gas 1 22 2030 0.0 0.0 +es 08_non-res 1 22 2030 0.0 0.0 +es 09_hydro_pump 1 22 2030 0.0 0.0 +es 01_solar 1 23 2030 1.0 0.0 +es 02_wind_on 1 23 2030 1.0 0.0 +es 03_wind_off 1 23 2030 0.0 0.0 +es 04_res 1 23 2030 0.0 0.0 +es 05_nuclear 1 23 2030 0.0 0.0 +es 06_coal 1 23 2030 0.0 0.0 +es 07_gas 1 23 2030 0.0 0.0 +es 08_non-res 1 23 2030 0.0 0.0 +es 09_hydro_pump 1 23 2030 0.0 0.0 +es 01_solar 1 24 2030 1.0 0.0 +es 02_wind_on 1 24 2030 1.0 0.0 +es 03_wind_off 1 24 2030 0.0 0.0 +es 04_res 1 24 2030 0.0 0.0 +es 05_nuclear 1 24 2030 0.0 0.0 +es 06_coal 1 24 2030 0.0 0.0 +es 07_gas 1 24 2030 0.0 0.0 +es 08_non-res 1 24 2030 0.0 0.0 +es 09_hydro_pump 1 24 2030 0.0 0.0 +es 01_solar 1 25 2030 1.0 0.0 +es 02_wind_on 1 25 2030 1.0 0.0 +es 03_wind_off 1 25 2030 0.0 0.0 +es 04_res 1 25 2030 0.0 0.0 +es 05_nuclear 1 25 2030 0.0 0.0 +es 06_coal 1 25 2030 0.0 0.0 +es 07_gas 1 25 2030 0.0 0.0 +es 08_non-res 1 25 2030 0.0 0.0 +es 09_hydro_pump 1 25 2030 0.0 0.0 +es 01_solar 1 26 2030 1.0 0.0 +es 02_wind_on 1 26 2030 1.0 0.0 +es 03_wind_off 1 26 2030 0.0 0.0 +es 04_res 1 26 2030 0.0 0.0 +es 05_nuclear 1 26 2030 0.0 0.0 +es 06_coal 1 26 2030 0.0 0.0 +es 07_gas 1 26 2030 0.0 0.0 +es 08_non-res 1 26 2030 0.0 0.0 +es 09_hydro_pump 1 26 2030 0.0 0.0 +es 01_solar 1 27 2030 1.0 0.0 +es 02_wind_on 1 27 2030 1.0 0.0 +es 03_wind_off 1 27 2030 0.0 0.0 +es 04_res 1 27 2030 0.0 0.0 +es 05_nuclear 1 27 2030 0.0 0.0 +es 06_coal 1 27 2030 0.0 0.0 +es 07_gas 1 27 2030 0.0 0.0 +es 08_non-res 1 27 2030 0.0 0.0 +es 09_hydro_pump 1 27 2030 0.0 0.0 +es 01_solar 1 28 2030 1.0 0.0 +es 02_wind_on 1 28 2030 1.0 0.0 +es 03_wind_off 1 28 2030 0.0 0.0 +es 04_res 1 28 2030 0.0 0.0 +es 05_nuclear 1 28 2030 0.0 0.0 +es 06_coal 1 28 2030 0.0 0.0 +es 07_gas 1 28 2030 0.0 0.0 +es 08_non-res 1 28 2030 0.0 0.0 +es 09_hydro_pump 1 28 2030 0.0 0.0 +es 01_solar 1 29 2030 1.0 0.0 +es 02_wind_on 1 29 2030 1.0 0.0 +es 03_wind_off 1 29 2030 0.0 0.0 +es 04_res 1 29 2030 0.0 0.0 +es 05_nuclear 1 29 2030 0.0 0.0 +es 06_coal 1 29 2030 0.0 0.0 +es 07_gas 1 29 2030 0.0 0.0 +es 08_non-res 1 29 2030 0.0 0.0 +es 09_hydro_pump 1 29 2030 0.0 0.0 +es 01_solar 1 30 2030 1.0 0.0 +es 02_wind_on 1 30 2030 1.0 0.0 +es 03_wind_off 1 30 2030 0.0 0.0 +es 04_res 1 30 2030 0.0 0.0 +es 05_nuclear 1 30 2030 0.0 0.0 +es 06_coal 1 30 2030 0.0 0.0 +es 07_gas 1 30 2030 0.0 0.0 +es 08_non-res 1 30 2030 0.0 0.0 +es 09_hydro_pump 1 30 2030 0.0 0.0 +es 01_solar 1 31 2030 1.0 0.0 +es 02_wind_on 1 31 2030 1.0 0.0 +es 03_wind_off 1 31 2030 0.0 0.0 +es 04_res 1 31 2030 0.0 0.0 +es 05_nuclear 1 31 2030 0.0 0.0 +es 06_coal 1 31 2030 0.0 0.0 +es 07_gas 1 31 2030 0.0 0.0 +es 08_non-res 1 31 2030 0.0 0.0 +es 09_hydro_pump 1 31 2030 0.0 0.0 +es 01_solar 1 32 2030 1.0 0.0 +es 02_wind_on 1 32 2030 1.0 0.0 +es 03_wind_off 1 32 2030 0.0 0.0 +es 04_res 1 32 2030 0.0 0.0 +es 05_nuclear 1 32 2030 0.0 0.0 +es 06_coal 1 32 2030 0.0 0.0 +es 07_gas 1 32 2030 0.0 0.0 +es 08_non-res 1 32 2030 0.0 0.0 +es 09_hydro_pump 1 32 2030 0.0 0.0 +es 01_solar 1 33 2030 1.0 0.0 +es 02_wind_on 1 33 2030 1.0 0.0 +es 03_wind_off 1 33 2030 0.0 0.0 +es 04_res 1 33 2030 0.0 0.0 +es 05_nuclear 1 33 2030 0.0 0.0 +es 06_coal 1 33 2030 0.0 0.0 +es 07_gas 1 33 2030 0.0 0.0 +es 08_non-res 1 33 2030 0.0 0.0 +es 09_hydro_pump 1 33 2030 0.0 0.0 +es 01_solar 1 34 2030 1.0 0.0 +es 02_wind_on 1 34 2030 1.0 0.0 +es 03_wind_off 1 34 2030 0.0 0.0 +es 04_res 1 34 2030 0.0 0.0 +es 05_nuclear 1 34 2030 0.0 0.0 +es 06_coal 1 34 2030 0.0 0.0 +es 07_gas 1 34 2030 0.0 0.0 +es 08_non-res 1 34 2030 0.0 0.0 +es 09_hydro_pump 1 34 2030 0.0 0.0 +es 01_solar 1 35 2030 1.0 0.0 +es 02_wind_on 1 35 2030 1.0 0.0 +es 03_wind_off 1 35 2030 0.0 0.0 +es 04_res 1 35 2030 0.0 0.0 +es 05_nuclear 1 35 2030 0.0 0.0 +es 06_coal 1 35 2030 0.0 0.0 +es 07_gas 1 35 2030 0.0 0.0 +es 08_non-res 1 35 2030 0.0 0.0 +es 09_hydro_pump 1 35 2030 0.0 0.0 +es 01_solar 1 36 2030 1.0 0.0 +es 02_wind_on 1 36 2030 1.0 0.0 +es 03_wind_off 1 36 2030 0.0 0.0 +es 04_res 1 36 2030 0.0 0.0 +es 05_nuclear 1 36 2030 0.0 0.0 +es 06_coal 1 36 2030 0.0 0.0 +es 07_gas 1 36 2030 0.0 0.0 +es 08_non-res 1 36 2030 0.0 0.0 +es 09_hydro_pump 1 36 2030 0.0 0.0 +es 01_solar 1 37 2030 1.0 0.0 +es 02_wind_on 1 37 2030 1.0 0.0 +es 03_wind_off 1 37 2030 0.0 0.0 +es 04_res 1 37 2030 0.0 0.0 +es 05_nuclear 1 37 2030 0.0 0.0 +es 06_coal 1 37 2030 0.0 0.0 +es 07_gas 1 37 2030 0.0 0.0 +es 08_non-res 1 37 2030 0.0 0.0 +es 09_hydro_pump 1 37 2030 0.0 0.0 +es 01_solar 1 38 2030 1.0 0.0 +es 02_wind_on 1 38 2030 1.0 0.0 +es 03_wind_off 1 38 2030 0.0 0.0 +es 04_res 1 38 2030 0.0 0.0 +es 05_nuclear 1 38 2030 0.0 0.0 +es 06_coal 1 38 2030 0.0 0.0 +es 07_gas 1 38 2030 0.0 0.0 +es 08_non-res 1 38 2030 0.0 0.0 +es 09_hydro_pump 1 38 2030 0.0 0.0 +es 01_solar 1 39 2030 1.0 0.0 +es 02_wind_on 1 39 2030 1.0 0.0 +es 03_wind_off 1 39 2030 0.0 0.0 +es 04_res 1 39 2030 0.0 0.0 +es 05_nuclear 1 39 2030 0.0 0.0 +es 06_coal 1 39 2030 0.0 0.0 +es 07_gas 1 39 2030 0.0 0.0 +es 08_non-res 1 39 2030 0.0 0.0 +es 09_hydro_pump 1 39 2030 0.0 0.0 +es 01_solar 1 40 2030 1.0 0.0 +es 02_wind_on 1 40 2030 1.0 0.0 +es 03_wind_off 1 40 2030 0.0 0.0 +es 04_res 1 40 2030 0.0 0.0 +es 05_nuclear 1 40 2030 0.0 0.0 +es 06_coal 1 40 2030 0.0 0.0 +es 07_gas 1 40 2030 0.0 0.0 +es 08_non-res 1 40 2030 0.0 0.0 +es 09_hydro_pump 1 40 2030 0.0 0.0 +es 01_solar 1 41 2030 1.0 0.0 +es 02_wind_on 1 41 2030 1.0 0.0 +es 03_wind_off 1 41 2030 0.0 0.0 +es 04_res 1 41 2030 0.0 0.0 +es 05_nuclear 1 41 2030 0.0 0.0 +es 06_coal 1 41 2030 0.0 0.0 +es 07_gas 1 41 2030 0.0 0.0 +es 08_non-res 1 41 2030 0.0 0.0 +es 09_hydro_pump 1 41 2030 0.0 0.0 +es 01_solar 1 42 2030 1.0 0.0 +es 02_wind_on 1 42 2030 1.0 0.0 +es 03_wind_off 1 42 2030 1.0 0.0 +es 04_res 1 42 2030 0.0 0.0 +es 05_nuclear 1 42 2030 0.0 0.0 +es 06_coal 1 42 2030 0.0 0.0 +es 07_gas 1 42 2030 0.0 0.0 +es 08_non-res 1 42 2030 0.0 0.0 +es 09_hydro_pump 1 42 2030 0.0 0.0 +es 01_solar 1 43 2030 1.0 0.0 +es 02_wind_on 1 43 2030 1.0 0.0 +es 03_wind_off 1 43 2030 1.0 0.0 +es 04_res 1 43 2030 0.0 0.0 +es 05_nuclear 1 43 2030 0.0 0.0 +es 06_coal 1 43 2030 0.0 0.0 +es 07_gas 1 43 2030 0.0 0.0 +es 08_non-res 1 43 2030 0.0 0.0 +es 09_hydro_pump 1 43 2030 0.0 0.0 +es 01_solar 1 44 2030 1.0 0.0 +es 02_wind_on 1 44 2030 1.0 0.0 +es 03_wind_off 1 44 2030 1.0 0.0 +es 04_res 1 44 2030 0.0 0.0 +es 05_nuclear 1 44 2030 0.0 0.0 +es 06_coal 1 44 2030 0.0 0.0 +es 07_gas 1 44 2030 0.0 0.0 +es 08_non-res 1 44 2030 0.0 0.0 +es 09_hydro_pump 1 44 2030 0.0 0.0 +es 01_solar 1 45 2030 1.0 0.0 +es 02_wind_on 1 45 2030 1.0 0.0 +es 03_wind_off 1 45 2030 1.0 0.0 +es 04_res 1 45 2030 0.0 0.0 +es 05_nuclear 1 45 2030 0.0 0.0 +es 06_coal 1 45 2030 0.0 0.0 +es 07_gas 1 45 2030 0.0 0.0 +es 08_non-res 1 45 2030 0.0 0.0 +es 09_hydro_pump 1 45 2030 0.0 0.0 +es 01_solar 1 46 2030 1.0 0.0 +es 02_wind_on 1 46 2030 1.0 0.0 +es 03_wind_off 1 46 2030 1.0 0.0 +es 04_res 1 46 2030 0.0 0.0 +es 05_nuclear 1 46 2030 0.0 0.0 +es 06_coal 1 46 2030 0.0 0.0 +es 07_gas 1 46 2030 0.0 0.0 +es 08_non-res 1 46 2030 0.0 0.0 +es 09_hydro_pump 1 46 2030 0.0 0.0 +es 01_solar 1 47 2030 1.0 0.0 +es 02_wind_on 1 47 2030 1.0 0.0 +es 03_wind_off 1 47 2030 1.0 0.0 +es 04_res 1 47 2030 0.0 0.0 +es 05_nuclear 1 47 2030 0.0 0.0 +es 06_coal 1 47 2030 0.0 0.0 +es 07_gas 1 47 2030 0.0 0.0 +es 08_non-res 1 47 2030 0.0 0.0 +es 09_hydro_pump 1 47 2030 0.0 0.0 +es 01_solar 1 48 2030 1.0 0.0 +es 02_wind_on 1 48 2030 1.0 0.0 +es 03_wind_off 1 48 2030 1.0 0.0 +es 04_res 1 48 2030 0.0 0.0 +es 05_nuclear 1 48 2030 0.0 0.0 +es 06_coal 1 48 2030 0.0 0.0 +es 07_gas 1 48 2030 0.0 0.0 +es 08_non-res 1 48 2030 0.0 0.0 +es 09_hydro_pump 1 48 2030 0.0 0.0 +es 01_solar 1 49 2030 1.0 0.0 +es 02_wind_on 1 49 2030 1.0 0.0 +es 03_wind_off 1 49 2030 1.0 0.0 +es 04_res 1 49 2030 0.0 0.0 +es 05_nuclear 1 49 2030 0.0 0.0 +es 06_coal 1 49 2030 0.0 0.0 +es 07_gas 1 49 2030 0.0 0.0 +es 08_non-res 1 49 2030 0.0 0.0 +es 09_hydro_pump 1 49 2030 0.0 0.0 +es 01_solar 1 50 2030 1.0 0.0 +es 02_wind_on 1 50 2030 1.0 0.0 +es 03_wind_off 1 50 2030 1.0 0.0 +es 04_res 1 50 2030 0.0 0.0 +es 05_nuclear 1 50 2030 0.0 0.0 +es 06_coal 1 50 2030 0.0 0.0 +es 07_gas 1 50 2030 0.0 0.0 +es 08_non-res 1 50 2030 0.0 0.0 +es 09_hydro_pump 1 50 2030 0.0 0.0 +es 01_solar 1 51 2030 1.0 0.0 +es 02_wind_on 1 51 2030 1.0 0.0 +es 03_wind_off 1 51 2030 1.0 0.0 +es 04_res 1 51 2030 0.0 0.0 +es 05_nuclear 1 51 2030 0.0 0.0 +es 06_coal 1 51 2030 0.0 0.0 +es 07_gas 1 51 2030 0.0 0.0 +es 08_non-res 1 51 2030 0.0 0.0 +es 09_hydro_pump 1 51 2030 0.0 0.0 +es 01_solar 1 52 2030 1.0 0.0 +es 02_wind_on 1 52 2030 1.0 0.0 +es 03_wind_off 1 52 2030 1.0 0.0 +es 04_res 1 52 2030 0.0 0.0 +es 05_nuclear 1 52 2030 0.0 0.0 +es 06_coal 1 52 2030 0.0 0.0 +es 07_gas 1 52 2030 0.0 0.0 +es 08_non-res 1 52 2030 0.0 0.0 +es 09_hydro_pump 1 52 2030 0.0 0.0 +es 01_solar 1 53 2030 1.0 0.0 +es 02_wind_on 1 53 2030 1.0 0.0 +es 03_wind_off 1 53 2030 1.0 0.0 +es 04_res 1 53 2030 0.0 0.0 +es 05_nuclear 1 53 2030 0.0 0.0 +es 06_coal 1 53 2030 0.0 0.0 +es 07_gas 1 53 2030 0.0 0.0 +es 08_non-res 1 53 2030 0.0 0.0 +es 09_hydro_pump 1 53 2030 0.0 0.0 +es 01_solar 1 54 2030 1.0 0.0 +es 02_wind_on 1 54 2030 1.0 0.0 +es 03_wind_off 1 54 2030 1.0 0.0 +es 04_res 1 54 2030 0.0 0.0 +es 05_nuclear 1 54 2030 0.0 0.0 +es 06_coal 1 54 2030 0.0 0.0 +es 07_gas 1 54 2030 0.0 0.0 +es 08_non-res 1 54 2030 0.0 0.0 +es 09_hydro_pump 1 54 2030 0.0 0.0 +es 01_solar 1 55 2030 1.0 0.0 +es 02_wind_on 1 55 2030 1.0 0.0 +es 03_wind_off 1 55 2030 1.0 0.0 +es 04_res 1 55 2030 0.0 0.0 +es 05_nuclear 1 55 2030 0.0 0.0 +es 06_coal 1 55 2030 0.0 0.0 +es 07_gas 1 55 2030 0.0 0.0 +es 08_non-res 1 55 2030 0.0 0.0 +es 09_hydro_pump 1 55 2030 0.0 0.0 +es 01_solar 1 56 2030 1.0 0.0 +es 02_wind_on 1 56 2030 1.0 0.0 +es 03_wind_off 1 56 2030 1.0 0.0 +es 04_res 1 56 2030 0.0 0.0 +es 05_nuclear 1 56 2030 0.0 0.0 +es 06_coal 1 56 2030 0.0 0.0 +es 07_gas 1 56 2030 0.0 0.0 +es 08_non-res 1 56 2030 0.0 0.0 +es 09_hydro_pump 1 56 2030 0.0 0.0 +es 01_solar 1 57 2030 1.0 0.0 +es 02_wind_on 1 57 2030 1.0 0.0 +es 03_wind_off 1 57 2030 1.0 0.0 +es 04_res 1 57 2030 0.0 0.0 +es 05_nuclear 1 57 2030 0.0 0.0 +es 06_coal 1 57 2030 0.0 0.0 +es 07_gas 1 57 2030 0.0 0.0 +es 08_non-res 1 57 2030 0.0 0.0 +es 09_hydro_pump 1 57 2030 0.0 0.0 +es 01_solar 1 58 2030 1.0 0.0 +es 02_wind_on 1 58 2030 1.0 0.0 +es 03_wind_off 1 58 2030 1.0 0.0 +es 04_res 1 58 2030 0.0 0.0 +es 05_nuclear 1 58 2030 0.0 0.0 +es 06_coal 1 58 2030 0.0 0.0 +es 07_gas 1 58 2030 0.0 0.0 +es 08_non-res 1 58 2030 0.0 0.0 +es 09_hydro_pump 1 58 2030 0.0 0.0 +es 01_solar 1 59 2030 1.0 0.0 +es 02_wind_on 1 59 2030 1.0 0.0 +es 03_wind_off 1 59 2030 1.0 0.0 +es 04_res 1 59 2030 0.0 0.0 +es 05_nuclear 1 59 2030 0.0 0.0 +es 06_coal 1 59 2030 0.0 0.0 +es 07_gas 1 59 2030 0.0 0.0 +es 08_non-res 1 59 2030 0.0 0.0 +es 09_hydro_pump 1 59 2030 0.0 0.0 +es 01_solar 1 60 2030 1.0 0.0 +es 02_wind_on 1 60 2030 1.0 0.0 +es 03_wind_off 1 60 2030 1.0 0.0 +es 04_res 1 60 2030 0.0 0.0 +es 05_nuclear 1 60 2030 0.0 0.0 +es 06_coal 1 60 2030 0.0 0.0 +es 07_gas 1 60 2030 0.0 0.0 +es 08_non-res 1 60 2030 0.0 0.0 +es 09_hydro_pump 1 60 2030 0.0 0.0 +es 01_solar 1 61 2030 1.0 0.0 +es 02_wind_on 1 61 2030 1.0 0.0 +es 03_wind_off 1 61 2030 1.0 0.0 +es 04_res 1 61 2030 0.0 0.0 +es 05_nuclear 1 61 2030 0.0 0.0 +es 06_coal 1 61 2030 0.0 0.0 +es 07_gas 1 61 2030 0.0 0.0 +es 08_non-res 1 61 2030 0.0 0.0 +es 09_hydro_pump 1 61 2030 0.0 0.0 +es 01_solar 1 62 2030 1.0 0.0 +es 02_wind_on 1 62 2030 1.0 0.0 +es 03_wind_off 1 62 2030 1.0 0.0 +es 04_res 1 62 2030 1.0 0.0 +es 05_nuclear 1 62 2030 0.0 0.0 +es 06_coal 1 62 2030 0.0 0.0 +es 07_gas 1 62 2030 0.0 0.0 +es 08_non-res 1 62 2030 0.0 0.0 +es 09_hydro_pump 1 62 2030 0.0 0.0 +es 01_solar 1 63 2030 1.0 0.0 +es 02_wind_on 1 63 2030 1.0 0.0 +es 03_wind_off 1 63 2030 1.0 0.0 +es 04_res 1 63 2030 1.0 0.0 +es 05_nuclear 1 63 2030 0.0 0.0 +es 06_coal 1 63 2030 0.0 0.0 +es 07_gas 1 63 2030 0.0 0.0 +es 08_non-res 1 63 2030 0.0 0.0 +es 09_hydro_pump 1 63 2030 0.0 0.0 +es 01_solar 1 64 2030 1.0 0.0 +es 02_wind_on 1 64 2030 1.0 0.0 +es 03_wind_off 1 64 2030 1.0 0.0 +es 04_res 1 64 2030 1.0 0.0 +es 05_nuclear 1 64 2030 0.0 0.0 +es 06_coal 1 64 2030 0.0 0.0 +es 07_gas 1 64 2030 0.0 0.0 +es 08_non-res 1 64 2030 0.0 0.0 +es 09_hydro_pump 1 64 2030 0.0 0.0 +es 01_solar 1 65 2030 1.0 0.0 +es 02_wind_on 1 65 2030 1.0 0.0 +es 03_wind_off 1 65 2030 1.0 0.0 +es 04_res 1 65 2030 1.0 0.0 +es 05_nuclear 1 65 2030 0.0 0.0 +es 06_coal 1 65 2030 0.0 0.0 +es 07_gas 1 65 2030 0.0 0.0 +es 08_non-res 1 65 2030 0.0 0.0 +es 09_hydro_pump 1 65 2030 0.0 0.0 +es 01_solar 1 66 2030 1.0 0.0 +es 02_wind_on 1 66 2030 1.0 0.0 +es 03_wind_off 1 66 2030 1.0 0.0 +es 04_res 1 66 2030 1.0 0.0 +es 05_nuclear 1 66 2030 0.0 0.0 +es 06_coal 1 66 2030 0.0 0.0 +es 07_gas 1 66 2030 0.0 0.0 +es 08_non-res 1 66 2030 0.0 0.0 +es 09_hydro_pump 1 66 2030 0.0 0.0 +es 01_solar 1 67 2030 1.0 0.0 +es 02_wind_on 1 67 2030 1.0 0.0 +es 03_wind_off 1 67 2030 1.0 0.0 +es 04_res 1 67 2030 1.0 0.0 +es 05_nuclear 1 67 2030 0.0 0.0 +es 06_coal 1 67 2030 0.0 0.0 +es 07_gas 1 67 2030 0.0 0.0 +es 08_non-res 1 67 2030 0.0 0.0 +es 09_hydro_pump 1 67 2030 0.0 0.0 +es 01_solar 1 68 2030 1.0 0.0 +es 02_wind_on 1 68 2030 1.0 0.0 +es 03_wind_off 1 68 2030 1.0 0.0 +es 04_res 1 68 2030 1.0 0.0 +es 05_nuclear 1 68 2030 0.0 0.0 +es 06_coal 1 68 2030 0.0 0.0 +es 07_gas 1 68 2030 0.0 0.0 +es 08_non-res 1 68 2030 0.0 0.0 +es 09_hydro_pump 1 68 2030 0.0 0.0 +es 01_solar 1 69 2030 1.0 0.0 +es 02_wind_on 1 69 2030 1.0 0.0 +es 03_wind_off 1 69 2030 1.0 0.0 +es 04_res 1 69 2030 1.0 0.0 +es 05_nuclear 1 69 2030 0.0 0.0 +es 06_coal 1 69 2030 0.0 0.0 +es 07_gas 1 69 2030 0.0 0.0 +es 08_non-res 1 69 2030 0.0 0.0 +es 09_hydro_pump 1 69 2030 0.0 0.0 +es 01_solar 1 70 2030 1.0 0.0 +es 02_wind_on 1 70 2030 1.0 0.0 +es 03_wind_off 1 70 2030 1.0 0.0 +es 04_res 1 70 2030 1.0 0.0 +es 05_nuclear 1 70 2030 0.0 0.0 +es 06_coal 1 70 2030 0.0 0.0 +es 07_gas 1 70 2030 0.0 0.0 +es 08_non-res 1 70 2030 0.0 0.0 +es 09_hydro_pump 1 70 2030 0.0 0.0 +es 01_solar 1 71 2030 1.0 0.0 +es 02_wind_on 1 71 2030 1.0 0.0 +es 03_wind_off 1 71 2030 1.0 0.0 +es 04_res 1 71 2030 1.0 0.0 +es 05_nuclear 1 71 2030 0.0 0.0 +es 06_coal 1 71 2030 0.0 0.0 +es 07_gas 1 71 2030 0.0 0.0 +es 08_non-res 1 71 2030 0.0 0.0 +es 09_hydro_pump 1 71 2030 0.0 0.0 +es 01_solar 1 72 2030 1.0 0.0 +es 02_wind_on 1 72 2030 1.0 0.0 +es 03_wind_off 1 72 2030 1.0 0.0 +es 04_res 1 72 2030 1.0 0.0 +es 05_nuclear 1 72 2030 0.0 0.0 +es 06_coal 1 72 2030 0.0 0.0 +es 07_gas 1 72 2030 0.0 0.0 +es 08_non-res 1 72 2030 0.0 0.0 +es 09_hydro_pump 1 72 2030 0.0 0.0 +es 01_solar 1 73 2030 1.0 0.0 +es 02_wind_on 1 73 2030 1.0 0.0 +es 03_wind_off 1 73 2030 1.0 0.0 +es 04_res 1 73 2030 1.0 0.0 +es 05_nuclear 1 73 2030 0.0 0.0 +es 06_coal 1 73 2030 0.0 0.0 +es 07_gas 1 73 2030 0.0 0.0 +es 08_non-res 1 73 2030 0.0 0.0 +es 09_hydro_pump 1 73 2030 0.0 0.0 +es 01_solar 1 74 2030 1.0 0.0 +es 02_wind_on 1 74 2030 1.0 0.0 +es 03_wind_off 1 74 2030 1.0 0.0 +es 04_res 1 74 2030 1.0 0.0 +es 05_nuclear 1 74 2030 0.0 0.0 +es 06_coal 1 74 2030 0.0 0.0 +es 07_gas 1 74 2030 0.0 0.0 +es 08_non-res 1 74 2030 0.0 0.0 +es 09_hydro_pump 1 74 2030 0.0 0.0 +es 01_solar 1 75 2030 1.0 0.0 +es 02_wind_on 1 75 2030 1.0 0.0 +es 03_wind_off 1 75 2030 1.0 0.0 +es 04_res 1 75 2030 1.0 0.0 +es 05_nuclear 1 75 2030 0.0 0.0 +es 06_coal 1 75 2030 0.0 0.0 +es 07_gas 1 75 2030 0.0 0.0 +es 08_non-res 1 75 2030 0.0 0.0 +es 09_hydro_pump 1 75 2030 0.0 0.0 +es 01_solar 1 76 2030 1.0 0.0 +es 02_wind_on 1 76 2030 1.0 0.0 +es 03_wind_off 1 76 2030 1.0 0.0 +es 04_res 1 76 2030 1.0 0.0 +es 05_nuclear 1 76 2030 0.0 0.0 +es 06_coal 1 76 2030 0.0 0.0 +es 07_gas 1 76 2030 0.0 0.0 +es 08_non-res 1 76 2030 0.0 0.0 +es 09_hydro_pump 1 76 2030 0.0 0.0 +es 01_solar 1 77 2030 1.0 0.0 +es 02_wind_on 1 77 2030 1.0 0.0 +es 03_wind_off 1 77 2030 1.0 0.0 +es 04_res 1 77 2030 1.0 0.0 +es 05_nuclear 1 77 2030 0.0 0.0 +es 06_coal 1 77 2030 0.0 0.0 +es 07_gas 1 77 2030 0.0 0.0 +es 08_non-res 1 77 2030 0.0 0.0 +es 09_hydro_pump 1 77 2030 0.0 0.0 +es 01_solar 1 78 2030 1.0 0.0 +es 02_wind_on 1 78 2030 1.0 0.0 +es 03_wind_off 1 78 2030 1.0 0.0 +es 04_res 1 78 2030 1.0 0.0 +es 05_nuclear 1 78 2030 0.0 0.0 +es 06_coal 1 78 2030 0.0 0.0 +es 07_gas 1 78 2030 0.0 0.0 +es 08_non-res 1 78 2030 0.0 0.0 +es 09_hydro_pump 1 78 2030 0.0 0.0 +es 01_solar 1 79 2030 1.0 0.0 +es 02_wind_on 1 79 2030 1.0 0.0 +es 03_wind_off 1 79 2030 1.0 0.0 +es 04_res 1 79 2030 1.0 0.0 +es 05_nuclear 1 79 2030 0.0 0.0 +es 06_coal 1 79 2030 0.0 0.0 +es 07_gas 1 79 2030 0.0 0.0 +es 08_non-res 1 79 2030 0.0 0.0 +es 09_hydro_pump 1 79 2030 0.0 0.0 +es 01_solar 1 80 2030 1.0 0.0 +es 02_wind_on 1 80 2030 1.0 0.0 +es 03_wind_off 1 80 2030 1.0 0.0 +es 04_res 1 80 2030 1.0 0.0 +es 05_nuclear 1 80 2030 0.0 0.0 +es 06_coal 1 80 2030 0.0 0.0 +es 07_gas 1 80 2030 0.0 0.0 +es 08_non-res 1 80 2030 0.0 0.0 +es 09_hydro_pump 1 80 2030 0.0 0.0 +es 01_solar 1 81 2030 1.0 0.0 +es 02_wind_on 1 81 2030 1.0 0.0 +es 03_wind_off 1 81 2030 1.0 0.0 +es 04_res 1 81 2030 1.0 0.0 +es 05_nuclear 1 81 2030 0.0 0.0 +es 06_coal 1 81 2030 0.0 0.0 +es 07_gas 1 81 2030 0.0 0.0 +es 08_non-res 1 81 2030 0.0 0.0 +es 09_hydro_pump 1 81 2030 0.0 0.0 +es 01_solar 1 82 2030 1.0 0.0 +es 02_wind_on 1 82 2030 1.0 0.0 +es 03_wind_off 1 82 2030 1.0 0.0 +es 04_res 1 82 2030 1.0 0.0 +es 05_nuclear 1 82 2030 1.0 0.0 +es 06_coal 1 82 2030 0.0 0.0 +es 07_gas 1 82 2030 0.0 0.0 +es 08_non-res 1 82 2030 0.0 0.0 +es 09_hydro_pump 1 82 2030 0.0 0.0 +es 01_solar 1 83 2030 1.0 0.0 +es 02_wind_on 1 83 2030 1.0 0.0 +es 03_wind_off 1 83 2030 1.0 0.0 +es 04_res 1 83 2030 1.0 0.0 +es 05_nuclear 1 83 2030 1.0 0.0 +es 06_coal 1 83 2030 0.0 0.0 +es 07_gas 1 83 2030 0.0 0.0 +es 08_non-res 1 83 2030 0.0 0.0 +es 09_hydro_pump 1 83 2030 0.0 0.0 +es 01_solar 1 84 2030 1.0 0.0 +es 02_wind_on 1 84 2030 1.0 0.0 +es 03_wind_off 1 84 2030 1.0 0.0 +es 04_res 1 84 2030 1.0 0.0 +es 05_nuclear 1 84 2030 1.0 0.0 +es 06_coal 1 84 2030 0.0 0.0 +es 07_gas 1 84 2030 0.0 0.0 +es 08_non-res 1 84 2030 0.0 0.0 +es 09_hydro_pump 1 84 2030 0.0 0.0 +es 01_solar 1 85 2030 1.0 0.0 +es 02_wind_on 1 85 2030 1.0 0.0 +es 03_wind_off 1 85 2030 1.0 0.0 +es 04_res 1 85 2030 1.0 0.0 +es 05_nuclear 1 85 2030 1.0 0.0 +es 06_coal 1 85 2030 0.0 0.0 +es 07_gas 1 85 2030 0.0 0.0 +es 08_non-res 1 85 2030 0.0 0.0 +es 09_hydro_pump 1 85 2030 0.0 0.0 +es 01_solar 1 86 2030 1.0 0.0 +es 02_wind_on 1 86 2030 1.0 0.0 +es 03_wind_off 1 86 2030 1.0 0.0 +es 04_res 1 86 2030 1.0 0.0 +es 05_nuclear 1 86 2030 1.0 0.0 +es 06_coal 1 86 2030 0.0 0.0 +es 07_gas 1 86 2030 0.0 0.0 +es 08_non-res 1 86 2030 0.0 0.0 +es 09_hydro_pump 1 86 2030 0.0 0.0 +es 01_solar 1 87 2030 1.0 0.0 +es 02_wind_on 1 87 2030 1.0 0.0 +es 03_wind_off 1 87 2030 1.0 0.0 +es 04_res 1 87 2030 1.0 0.0 +es 05_nuclear 1 87 2030 1.0 0.0 +es 06_coal 1 87 2030 0.0 0.0 +es 07_gas 1 87 2030 0.0 0.0 +es 08_non-res 1 87 2030 0.0 0.0 +es 09_hydro_pump 1 87 2030 0.0 0.0 +es 01_solar 1 88 2030 1.0 0.0 +es 02_wind_on 1 88 2030 1.0 0.0 +es 03_wind_off 1 88 2030 1.0 0.0 +es 04_res 1 88 2030 1.0 0.0 +es 05_nuclear 1 88 2030 1.0 0.0 +es 06_coal 1 88 2030 0.0 0.0 +es 07_gas 1 88 2030 0.0 0.0 +es 08_non-res 1 88 2030 0.0 0.0 +es 09_hydro_pump 1 88 2030 0.0 0.0 +es 01_solar 1 89 2030 1.0 0.0 +es 02_wind_on 1 89 2030 1.0 0.0 +es 03_wind_off 1 89 2030 1.0 0.0 +es 04_res 1 89 2030 1.0 0.0 +es 05_nuclear 1 89 2030 1.0 0.0 +es 06_coal 1 89 2030 0.0 0.0 +es 07_gas 1 89 2030 0.0 0.0 +es 08_non-res 1 89 2030 0.0 0.0 +es 09_hydro_pump 1 89 2030 0.0 0.0 +es 01_solar 1 90 2030 1.0 0.0 +es 02_wind_on 1 90 2030 1.0 0.0 +es 03_wind_off 1 90 2030 1.0 0.0 +es 04_res 1 90 2030 1.0 0.0 +es 05_nuclear 1 90 2030 1.0 0.0 +es 06_coal 1 90 2030 0.0 0.0 +es 07_gas 1 90 2030 0.0 0.0 +es 08_non-res 1 90 2030 0.0 0.0 +es 09_hydro_pump 1 90 2030 0.0 0.0 +es 01_solar 1 91 2030 1.0 0.0 +es 02_wind_on 1 91 2030 1.0 0.0 +es 03_wind_off 1 91 2030 1.0 0.0 +es 04_res 1 91 2030 1.0 0.0 +es 05_nuclear 1 91 2030 1.0 0.0 +es 06_coal 1 91 2030 0.0 0.0 +es 07_gas 1 91 2030 0.0 0.0 +es 08_non-res 1 91 2030 0.0 0.0 +es 09_hydro_pump 1 91 2030 0.0 0.0 +es 01_solar 1 92 2030 1.0 0.0 +es 02_wind_on 1 92 2030 1.0 0.0 +es 03_wind_off 1 92 2030 1.0 0.0 +es 04_res 1 92 2030 1.0 0.0 +es 05_nuclear 1 92 2030 1.0 0.0 +es 06_coal 1 92 2030 0.0 0.0 +es 07_gas 1 92 2030 0.0 0.0 +es 08_non-res 1 92 2030 0.0 0.0 +es 09_hydro_pump 1 92 2030 0.0 0.0 +es 01_solar 1 93 2030 1.0 0.0 +es 02_wind_on 1 93 2030 1.0 0.0 +es 03_wind_off 1 93 2030 1.0 0.0 +es 04_res 1 93 2030 1.0 0.0 +es 05_nuclear 1 93 2030 1.0 0.0 +es 06_coal 1 93 2030 0.0 0.0 +es 07_gas 1 93 2030 0.0 0.0 +es 08_non-res 1 93 2030 0.0 0.0 +es 09_hydro_pump 1 93 2030 0.0 0.0 +es 01_solar 1 94 2030 1.0 0.0 +es 02_wind_on 1 94 2030 1.0 0.0 +es 03_wind_off 1 94 2030 1.0 0.0 +es 04_res 1 94 2030 1.0 0.0 +es 05_nuclear 1 94 2030 1.0 0.0 +es 06_coal 1 94 2030 0.0 0.0 +es 07_gas 1 94 2030 0.0 0.0 +es 08_non-res 1 94 2030 0.0 0.0 +es 09_hydro_pump 1 94 2030 0.0 0.0 +es 01_solar 1 95 2030 1.0 0.0 +es 02_wind_on 1 95 2030 1.0 0.0 +es 03_wind_off 1 95 2030 1.0 0.0 +es 04_res 1 95 2030 1.0 0.0 +es 05_nuclear 1 95 2030 1.0 0.0 +es 06_coal 1 95 2030 0.0 0.0 +es 07_gas 1 95 2030 0.0 0.0 +es 08_non-res 1 95 2030 0.0 0.0 +es 09_hydro_pump 1 95 2030 0.0 0.0 +es 01_solar 1 96 2030 1.0 0.0 +es 02_wind_on 1 96 2030 1.0 0.0 +es 03_wind_off 1 96 2030 1.0 0.0 +es 04_res 1 96 2030 1.0 0.0 +es 05_nuclear 1 96 2030 1.0 0.0 +es 06_coal 1 96 2030 0.0 0.0 +es 07_gas 1 96 2030 0.0 0.0 +es 08_non-res 1 96 2030 0.0 0.0 +es 09_hydro_pump 1 96 2030 0.0 0.0 +es 01_solar 1 97 2030 1.0 0.0 +es 02_wind_on 1 97 2030 1.0 0.0 +es 03_wind_off 1 97 2030 1.0 0.0 +es 04_res 1 97 2030 1.0 0.0 +es 05_nuclear 1 97 2030 1.0 0.0 +es 06_coal 1 97 2030 0.0 0.0 +es 07_gas 1 97 2030 0.0 0.0 +es 08_non-res 1 97 2030 0.0 0.0 +es 09_hydro_pump 1 97 2030 0.0 0.0 +es 01_solar 1 98 2030 1.0 0.0 +es 02_wind_on 1 98 2030 1.0 0.0 +es 03_wind_off 1 98 2030 1.0 0.0 +es 04_res 1 98 2030 1.0 0.0 +es 05_nuclear 1 98 2030 1.0 0.0 +es 06_coal 1 98 2030 0.0 0.0 +es 07_gas 1 98 2030 0.0 0.0 +es 08_non-res 1 98 2030 0.0 0.0 +es 09_hydro_pump 1 98 2030 0.0 0.0 +es 01_solar 1 99 2030 1.0 0.0 +es 02_wind_on 1 99 2030 1.0 0.0 +es 03_wind_off 1 99 2030 1.0 0.0 +es 04_res 1 99 2030 1.0 0.0 +es 05_nuclear 1 99 2030 1.0 0.0 +es 06_coal 1 99 2030 0.0 0.0 +es 07_gas 1 99 2030 0.0 0.0 +es 08_non-res 1 99 2030 0.0 0.0 +es 09_hydro_pump 1 99 2030 0.0 0.0 +es 01_solar 1 100 2030 1.0 0.0 +es 02_wind_on 1 100 2030 1.0 0.0 +es 03_wind_off 1 100 2030 1.0 0.0 +es 04_res 1 100 2030 1.0 0.0 +es 05_nuclear 1 100 2030 1.0 0.0 +es 06_coal 1 100 2030 0.0 0.0 +es 07_gas 1 100 2030 0.0 0.0 +es 08_non-res 1 100 2030 0.0 0.0 +es 09_hydro_pump 1 100 2030 0.0 0.0 +es 01_solar 1 101 2030 1.0 0.0 +es 02_wind_on 1 101 2030 1.0 0.0 +es 03_wind_off 1 101 2030 1.0 0.0 +es 04_res 1 101 2030 1.0 0.0 +es 05_nuclear 1 101 2030 1.0 0.0 +es 06_coal 1 101 2030 0.0 0.0 +es 07_gas 1 101 2030 0.0 0.0 +es 08_non-res 1 101 2030 0.0 0.0 +es 09_hydro_pump 1 101 2030 0.0 0.0 +es 01_solar 1 102 2030 1.0 0.0 +es 02_wind_on 1 102 2030 1.0 0.0 +es 03_wind_off 1 102 2030 1.0 0.0 +es 04_res 1 102 2030 1.0 0.0 +es 05_nuclear 1 102 2030 1.0 0.0 +es 06_coal 1 102 2030 1.0 0.0 +es 07_gas 1 102 2030 0.0 0.0 +es 08_non-res 1 102 2030 0.0 0.0 +es 09_hydro_pump 1 102 2030 0.0 0.0 +es 01_solar 1 103 2030 1.0 0.0 +es 02_wind_on 1 103 2030 1.0 0.0 +es 03_wind_off 1 103 2030 1.0 0.0 +es 04_res 1 103 2030 1.0 0.0 +es 05_nuclear 1 103 2030 1.0 0.0 +es 06_coal 1 103 2030 1.0 0.0 +es 07_gas 1 103 2030 0.0 0.0 +es 08_non-res 1 103 2030 0.0 0.0 +es 09_hydro_pump 1 103 2030 0.0 0.0 +es 01_solar 1 104 2030 1.0 0.0 +es 02_wind_on 1 104 2030 1.0 0.0 +es 03_wind_off 1 104 2030 1.0 0.0 +es 04_res 1 104 2030 1.0 0.0 +es 05_nuclear 1 104 2030 1.0 0.0 +es 06_coal 1 104 2030 1.0 0.0 +es 07_gas 1 104 2030 0.0 0.0 +es 08_non-res 1 104 2030 0.0 0.0 +es 09_hydro_pump 1 104 2030 0.0 0.0 +es 01_solar 1 105 2030 1.0 0.0 +es 02_wind_on 1 105 2030 1.0 0.0 +es 03_wind_off 1 105 2030 1.0 0.0 +es 04_res 1 105 2030 1.0 0.0 +es 05_nuclear 1 105 2030 1.0 0.0 +es 06_coal 1 105 2030 1.0 0.0 +es 07_gas 1 105 2030 0.0 0.0 +es 08_non-res 1 105 2030 0.0 0.0 +es 09_hydro_pump 1 105 2030 0.0 0.0 +es 01_solar 1 106 2030 1.0 0.0 +es 02_wind_on 1 106 2030 1.0 0.0 +es 03_wind_off 1 106 2030 1.0 0.0 +es 04_res 1 106 2030 1.0 0.0 +es 05_nuclear 1 106 2030 1.0 0.0 +es 06_coal 1 106 2030 1.0 0.0 +es 07_gas 1 106 2030 0.0 0.0 +es 08_non-res 1 106 2030 0.0 0.0 +es 09_hydro_pump 1 106 2030 0.0 0.0 +es 01_solar 1 107 2030 1.0 0.0 +es 02_wind_on 1 107 2030 1.0 0.0 +es 03_wind_off 1 107 2030 1.0 0.0 +es 04_res 1 107 2030 1.0 0.0 +es 05_nuclear 1 107 2030 1.0 0.0 +es 06_coal 1 107 2030 1.0 0.0 +es 07_gas 1 107 2030 0.0 0.0 +es 08_non-res 1 107 2030 0.0 0.0 +es 09_hydro_pump 1 107 2030 0.0 0.0 +es 01_solar 1 108 2030 1.0 0.0 +es 02_wind_on 1 108 2030 1.0 0.0 +es 03_wind_off 1 108 2030 1.0 0.0 +es 04_res 1 108 2030 1.0 0.0 +es 05_nuclear 1 108 2030 1.0 0.0 +es 06_coal 1 108 2030 1.0 0.0 +es 07_gas 1 108 2030 0.0 0.0 +es 08_non-res 1 108 2030 0.0 0.0 +es 09_hydro_pump 1 108 2030 0.0 0.0 +es 01_solar 1 109 2030 1.0 0.0 +es 02_wind_on 1 109 2030 1.0 0.0 +es 03_wind_off 1 109 2030 1.0 0.0 +es 04_res 1 109 2030 1.0 0.0 +es 05_nuclear 1 109 2030 1.0 0.0 +es 06_coal 1 109 2030 1.0 0.0 +es 07_gas 1 109 2030 0.0 0.0 +es 08_non-res 1 109 2030 0.0 0.0 +es 09_hydro_pump 1 109 2030 0.0 0.0 +es 01_solar 1 110 2030 1.0 0.0 +es 02_wind_on 1 110 2030 1.0 0.0 +es 03_wind_off 1 110 2030 1.0 0.0 +es 04_res 1 110 2030 1.0 0.0 +es 05_nuclear 1 110 2030 1.0 0.0 +es 06_coal 1 110 2030 1.0 0.0 +es 07_gas 1 110 2030 0.0 0.0 +es 08_non-res 1 110 2030 0.0 0.0 +es 09_hydro_pump 1 110 2030 0.0 0.0 +es 01_solar 1 111 2030 1.0 0.0 +es 02_wind_on 1 111 2030 1.0 0.0 +es 03_wind_off 1 111 2030 1.0 0.0 +es 04_res 1 111 2030 1.0 0.0 +es 05_nuclear 1 111 2030 1.0 0.0 +es 06_coal 1 111 2030 1.0 0.0 +es 07_gas 1 111 2030 0.0 0.0 +es 08_non-res 1 111 2030 0.0 0.0 +es 09_hydro_pump 1 111 2030 0.0 0.0 +es 01_solar 1 112 2030 1.0 0.0 +es 02_wind_on 1 112 2030 1.0 0.0 +es 03_wind_off 1 112 2030 1.0 0.0 +es 04_res 1 112 2030 1.0 0.0 +es 05_nuclear 1 112 2030 1.0 0.0 +es 06_coal 1 112 2030 1.0 0.0 +es 07_gas 1 112 2030 0.0 0.0 +es 08_non-res 1 112 2030 0.0 0.0 +es 09_hydro_pump 1 112 2030 0.0 0.0 +es 01_solar 1 113 2030 1.0 0.0 +es 02_wind_on 1 113 2030 1.0 0.0 +es 03_wind_off 1 113 2030 1.0 0.0 +es 04_res 1 113 2030 1.0 0.0 +es 05_nuclear 1 113 2030 1.0 0.0 +es 06_coal 1 113 2030 1.0 0.0 +es 07_gas 1 113 2030 0.0 0.0 +es 08_non-res 1 113 2030 0.0 0.0 +es 09_hydro_pump 1 113 2030 0.0 0.0 +es 01_solar 1 114 2030 1.0 0.0 +es 02_wind_on 1 114 2030 1.0 0.0 +es 03_wind_off 1 114 2030 1.0 0.0 +es 04_res 1 114 2030 1.0 0.0 +es 05_nuclear 1 114 2030 1.0 0.0 +es 06_coal 1 114 2030 1.0 0.0 +es 07_gas 1 114 2030 0.0 0.0 +es 08_non-res 1 114 2030 0.0 0.0 +es 09_hydro_pump 1 114 2030 0.0 0.0 +es 01_solar 1 115 2030 1.0 0.0 +es 02_wind_on 1 115 2030 1.0 0.0 +es 03_wind_off 1 115 2030 1.0 0.0 +es 04_res 1 115 2030 1.0 0.0 +es 05_nuclear 1 115 2030 1.0 0.0 +es 06_coal 1 115 2030 1.0 0.0 +es 07_gas 1 115 2030 0.0 0.0 +es 08_non-res 1 115 2030 0.0 0.0 +es 09_hydro_pump 1 115 2030 0.0 0.0 +es 01_solar 1 116 2030 1.0 0.0 +es 02_wind_on 1 116 2030 1.0 0.0 +es 03_wind_off 1 116 2030 1.0 0.0 +es 04_res 1 116 2030 1.0 0.0 +es 05_nuclear 1 116 2030 1.0 0.0 +es 06_coal 1 116 2030 1.0 0.0 +es 07_gas 1 116 2030 0.0 0.0 +es 08_non-res 1 116 2030 0.0 0.0 +es 09_hydro_pump 1 116 2030 0.0 0.0 +es 01_solar 1 117 2030 1.0 0.0 +es 02_wind_on 1 117 2030 1.0 0.0 +es 03_wind_off 1 117 2030 1.0 0.0 +es 04_res 1 117 2030 1.0 0.0 +es 05_nuclear 1 117 2030 1.0 0.0 +es 06_coal 1 117 2030 1.0 0.0 +es 07_gas 1 117 2030 0.0 0.0 +es 08_non-res 1 117 2030 0.0 0.0 +es 09_hydro_pump 1 117 2030 0.0 0.0 +es 01_solar 1 118 2030 1.0 0.0 +es 02_wind_on 1 118 2030 1.0 0.0 +es 03_wind_off 1 118 2030 1.0 0.0 +es 04_res 1 118 2030 1.0 0.0 +es 05_nuclear 1 118 2030 1.0 0.0 +es 06_coal 1 118 2030 1.0 0.0 +es 07_gas 1 118 2030 0.0 0.0 +es 08_non-res 1 118 2030 0.0 0.0 +es 09_hydro_pump 1 118 2030 0.0 0.0 +es 01_solar 1 119 2030 1.0 0.0 +es 02_wind_on 1 119 2030 1.0 0.0 +es 03_wind_off 1 119 2030 1.0 0.0 +es 04_res 1 119 2030 1.0 0.0 +es 05_nuclear 1 119 2030 1.0 0.0 +es 06_coal 1 119 2030 1.0 0.0 +es 07_gas 1 119 2030 0.0 0.0 +es 08_non-res 1 119 2030 0.0 0.0 +es 09_hydro_pump 1 119 2030 0.0 0.0 +es 01_solar 1 120 2030 1.0 0.0 +es 02_wind_on 1 120 2030 1.0 0.0 +es 03_wind_off 1 120 2030 1.0 0.0 +es 04_res 1 120 2030 1.0 0.0 +es 05_nuclear 1 120 2030 1.0 0.0 +es 06_coal 1 120 2030 1.0 0.0 +es 07_gas 1 120 2030 0.0 0.0 +es 08_non-res 1 120 2030 0.0 0.0 +es 09_hydro_pump 1 120 2030 0.0 0.0 +es 01_solar 1 121 2030 1.0 0.0 +es 02_wind_on 1 121 2030 1.0 0.0 +es 03_wind_off 1 121 2030 1.0 0.0 +es 04_res 1 121 2030 1.0 0.0 +es 05_nuclear 1 121 2030 1.0 0.0 +es 06_coal 1 121 2030 1.0 0.0 +es 07_gas 1 121 2030 0.0 0.0 +es 08_non-res 1 121 2030 0.0 0.0 +es 09_hydro_pump 1 121 2030 0.0 0.0 +es 01_solar 1 122 2030 1.0 0.0 +es 02_wind_on 1 122 2030 1.0 0.0 +es 03_wind_off 1 122 2030 1.0 0.0 +es 04_res 1 122 2030 1.0 0.0 +es 05_nuclear 1 122 2030 1.0 0.0 +es 06_coal 1 122 2030 1.0 0.0 +es 07_gas 1 122 2030 1.0 0.0 +es 08_non-res 1 122 2030 0.0 0.0 +es 09_hydro_pump 1 122 2030 0.0 0.0 +es 01_solar 1 123 2030 1.0 0.0 +es 02_wind_on 1 123 2030 1.0 0.0 +es 03_wind_off 1 123 2030 1.0 0.0 +es 04_res 1 123 2030 1.0 0.0 +es 05_nuclear 1 123 2030 1.0 0.0 +es 06_coal 1 123 2030 1.0 0.0 +es 07_gas 1 123 2030 1.0 0.0 +es 08_non-res 1 123 2030 0.0 0.0 +es 09_hydro_pump 1 123 2030 0.0 0.0 +es 01_solar 1 124 2030 1.0 0.0 +es 02_wind_on 1 124 2030 1.0 0.0 +es 03_wind_off 1 124 2030 1.0 0.0 +es 04_res 1 124 2030 1.0 0.0 +es 05_nuclear 1 124 2030 1.0 0.0 +es 06_coal 1 124 2030 1.0 0.0 +es 07_gas 1 124 2030 1.0 0.0 +es 08_non-res 1 124 2030 0.0 0.0 +es 09_hydro_pump 1 124 2030 0.0 0.0 +es 01_solar 1 125 2030 1.0 0.0 +es 02_wind_on 1 125 2030 1.0 0.0 +es 03_wind_off 1 125 2030 1.0 0.0 +es 04_res 1 125 2030 1.0 0.0 +es 05_nuclear 1 125 2030 1.0 0.0 +es 06_coal 1 125 2030 1.0 0.0 +es 07_gas 1 125 2030 1.0 0.0 +es 08_non-res 1 125 2030 0.0 0.0 +es 09_hydro_pump 1 125 2030 0.0 0.0 +es 01_solar 1 126 2030 1.0 0.0 +es 02_wind_on 1 126 2030 1.0 0.0 +es 03_wind_off 1 126 2030 1.0 0.0 +es 04_res 1 126 2030 1.0 0.0 +es 05_nuclear 1 126 2030 1.0 0.0 +es 06_coal 1 126 2030 1.0 0.0 +es 07_gas 1 126 2030 1.0 0.0 +es 08_non-res 1 126 2030 0.0 0.0 +es 09_hydro_pump 1 126 2030 0.0 0.0 +es 01_solar 1 127 2030 1.0 0.0 +es 02_wind_on 1 127 2030 1.0 0.0 +es 03_wind_off 1 127 2030 1.0 0.0 +es 04_res 1 127 2030 1.0 0.0 +es 05_nuclear 1 127 2030 1.0 0.0 +es 06_coal 1 127 2030 1.0 0.0 +es 07_gas 1 127 2030 1.0 0.0 +es 08_non-res 1 127 2030 0.0 0.0 +es 09_hydro_pump 1 127 2030 0.0 0.0 +es 01_solar 1 128 2030 1.0 0.0 +es 02_wind_on 1 128 2030 1.0 0.0 +es 03_wind_off 1 128 2030 1.0 0.0 +es 04_res 1 128 2030 1.0 0.0 +es 05_nuclear 1 128 2030 1.0 0.0 +es 06_coal 1 128 2030 1.0 0.0 +es 07_gas 1 128 2030 1.0 0.0 +es 08_non-res 1 128 2030 0.0 0.0 +es 09_hydro_pump 1 128 2030 0.0 0.0 +es 01_solar 1 129 2030 1.0 0.0 +es 02_wind_on 1 129 2030 1.0 0.0 +es 03_wind_off 1 129 2030 1.0 0.0 +es 04_res 1 129 2030 1.0 0.0 +es 05_nuclear 1 129 2030 1.0 0.0 +es 06_coal 1 129 2030 1.0 0.0 +es 07_gas 1 129 2030 1.0 0.0 +es 08_non-res 1 129 2030 0.0 0.0 +es 09_hydro_pump 1 129 2030 0.0 0.0 +es 01_solar 1 130 2030 1.0 0.0 +es 02_wind_on 1 130 2030 1.0 0.0 +es 03_wind_off 1 130 2030 1.0 0.0 +es 04_res 1 130 2030 1.0 0.0 +es 05_nuclear 1 130 2030 1.0 0.0 +es 06_coal 1 130 2030 1.0 0.0 +es 07_gas 1 130 2030 1.0 0.0 +es 08_non-res 1 130 2030 0.0 0.0 +es 09_hydro_pump 1 130 2030 0.0 0.0 +es 01_solar 1 131 2030 1.0 0.0 +es 02_wind_on 1 131 2030 1.0 0.0 +es 03_wind_off 1 131 2030 1.0 0.0 +es 04_res 1 131 2030 1.0 0.0 +es 05_nuclear 1 131 2030 1.0 0.0 +es 06_coal 1 131 2030 1.0 0.0 +es 07_gas 1 131 2030 1.0 0.0 +es 08_non-res 1 131 2030 0.0 0.0 +es 09_hydro_pump 1 131 2030 0.0 0.0 +es 01_solar 1 132 2030 1.0 0.0 +es 02_wind_on 1 132 2030 1.0 0.0 +es 03_wind_off 1 132 2030 1.0 0.0 +es 04_res 1 132 2030 1.0 0.0 +es 05_nuclear 1 132 2030 1.0 0.0 +es 06_coal 1 132 2030 1.0 0.0 +es 07_gas 1 132 2030 1.0 0.0 +es 08_non-res 1 132 2030 0.0 0.0 +es 09_hydro_pump 1 132 2030 0.0 0.0 +es 01_solar 1 133 2030 1.0 0.0 +es 02_wind_on 1 133 2030 1.0 0.0 +es 03_wind_off 1 133 2030 1.0 0.0 +es 04_res 1 133 2030 1.0 0.0 +es 05_nuclear 1 133 2030 1.0 0.0 +es 06_coal 1 133 2030 1.0 0.0 +es 07_gas 1 133 2030 1.0 0.0 +es 08_non-res 1 133 2030 0.0 0.0 +es 09_hydro_pump 1 133 2030 0.0 0.0 +es 01_solar 1 134 2030 1.0 0.0 +es 02_wind_on 1 134 2030 1.0 0.0 +es 03_wind_off 1 134 2030 1.0 0.0 +es 04_res 1 134 2030 1.0 0.0 +es 05_nuclear 1 134 2030 1.0 0.0 +es 06_coal 1 134 2030 1.0 0.0 +es 07_gas 1 134 2030 1.0 0.0 +es 08_non-res 1 134 2030 0.0 0.0 +es 09_hydro_pump 1 134 2030 0.0 0.0 +es 01_solar 1 135 2030 1.0 0.0 +es 02_wind_on 1 135 2030 1.0 0.0 +es 03_wind_off 1 135 2030 1.0 0.0 +es 04_res 1 135 2030 1.0 0.0 +es 05_nuclear 1 135 2030 1.0 0.0 +es 06_coal 1 135 2030 1.0 0.0 +es 07_gas 1 135 2030 1.0 0.0 +es 08_non-res 1 135 2030 0.0 0.0 +es 09_hydro_pump 1 135 2030 0.0 0.0 +es 01_solar 1 136 2030 1.0 0.0 +es 02_wind_on 1 136 2030 1.0 0.0 +es 03_wind_off 1 136 2030 1.0 0.0 +es 04_res 1 136 2030 1.0 0.0 +es 05_nuclear 1 136 2030 1.0 0.0 +es 06_coal 1 136 2030 1.0 0.0 +es 07_gas 1 136 2030 1.0 0.0 +es 08_non-res 1 136 2030 0.0 0.0 +es 09_hydro_pump 1 136 2030 0.0 0.0 +es 01_solar 1 137 2030 1.0 0.0 +es 02_wind_on 1 137 2030 1.0 0.0 +es 03_wind_off 1 137 2030 1.0 0.0 +es 04_res 1 137 2030 1.0 0.0 +es 05_nuclear 1 137 2030 1.0 0.0 +es 06_coal 1 137 2030 1.0 0.0 +es 07_gas 1 137 2030 1.0 0.0 +es 08_non-res 1 137 2030 0.0 0.0 +es 09_hydro_pump 1 137 2030 0.0 0.0 +es 01_solar 1 138 2030 1.0 0.0 +es 02_wind_on 1 138 2030 1.0 0.0 +es 03_wind_off 1 138 2030 1.0 0.0 +es 04_res 1 138 2030 1.0 0.0 +es 05_nuclear 1 138 2030 1.0 0.0 +es 06_coal 1 138 2030 1.0 0.0 +es 07_gas 1 138 2030 1.0 0.0 +es 08_non-res 1 138 2030 0.0 0.0 +es 09_hydro_pump 1 138 2030 0.0 0.0 +es 01_solar 1 139 2030 1.0 0.0 +es 02_wind_on 1 139 2030 1.0 0.0 +es 03_wind_off 1 139 2030 1.0 0.0 +es 04_res 1 139 2030 1.0 0.0 +es 05_nuclear 1 139 2030 1.0 0.0 +es 06_coal 1 139 2030 1.0 0.0 +es 07_gas 1 139 2030 1.0 0.0 +es 08_non-res 1 139 2030 0.0 0.0 +es 09_hydro_pump 1 139 2030 0.0 0.0 +es 01_solar 1 140 2030 1.0 0.0 +es 02_wind_on 1 140 2030 1.0 0.0 +es 03_wind_off 1 140 2030 1.0 0.0 +es 04_res 1 140 2030 1.0 0.0 +es 05_nuclear 1 140 2030 1.0 0.0 +es 06_coal 1 140 2030 1.0 0.0 +es 07_gas 1 140 2030 1.0 0.0 +es 08_non-res 1 140 2030 0.0 0.0 +es 09_hydro_pump 1 140 2030 0.0 0.0 +es 01_solar 1 141 2030 1.0 0.0 +es 02_wind_on 1 141 2030 1.0 0.0 +es 03_wind_off 1 141 2030 1.0 0.0 +es 04_res 1 141 2030 1.0 0.0 +es 05_nuclear 1 141 2030 1.0 0.0 +es 06_coal 1 141 2030 1.0 0.0 +es 07_gas 1 141 2030 1.0 0.0 +es 08_non-res 1 141 2030 0.0 0.0 +es 09_hydro_pump 1 141 2030 0.0 0.0 +es 01_solar 1 142 2030 1.0 0.0 +es 02_wind_on 1 142 2030 1.0 0.0 +es 03_wind_off 1 142 2030 1.0 0.0 +es 04_res 1 142 2030 1.0 0.0 +es 05_nuclear 1 142 2030 1.0 0.0 +es 06_coal 1 142 2030 1.0 0.0 +es 07_gas 1 142 2030 1.0 0.0 +es 08_non-res 1 142 2030 1.0 0.0 +es 09_hydro_pump 1 142 2030 0.0 0.0 +es 01_solar 1 143 2030 1.0 0.0 +es 02_wind_on 1 143 2030 1.0 0.0 +es 03_wind_off 1 143 2030 1.0 0.0 +es 04_res 1 143 2030 1.0 0.0 +es 05_nuclear 1 143 2030 1.0 0.0 +es 06_coal 1 143 2030 1.0 0.0 +es 07_gas 1 143 2030 1.0 0.0 +es 08_non-res 1 143 2030 1.0 0.0 +es 09_hydro_pump 1 143 2030 0.0 0.0 +es 01_solar 1 144 2030 1.0 0.0 +es 02_wind_on 1 144 2030 1.0 0.0 +es 03_wind_off 1 144 2030 1.0 0.0 +es 04_res 1 144 2030 1.0 0.0 +es 05_nuclear 1 144 2030 1.0 0.0 +es 06_coal 1 144 2030 1.0 0.0 +es 07_gas 1 144 2030 1.0 0.0 +es 08_non-res 1 144 2030 1.0 0.0 +es 09_hydro_pump 1 144 2030 0.0 0.0 +es 01_solar 1 145 2030 1.0 0.0 +es 02_wind_on 1 145 2030 1.0 0.0 +es 03_wind_off 1 145 2030 1.0 0.0 +es 04_res 1 145 2030 1.0 0.0 +es 05_nuclear 1 145 2030 1.0 0.0 +es 06_coal 1 145 2030 1.0 0.0 +es 07_gas 1 145 2030 1.0 0.0 +es 08_non-res 1 145 2030 1.0 0.0 +es 09_hydro_pump 1 145 2030 0.0 0.0 +es 01_solar 1 146 2030 1.0 0.0 +es 02_wind_on 1 146 2030 1.0 0.0 +es 03_wind_off 1 146 2030 1.0 0.0 +es 04_res 1 146 2030 1.0 0.0 +es 05_nuclear 1 146 2030 1.0 0.0 +es 06_coal 1 146 2030 1.0 0.0 +es 07_gas 1 146 2030 1.0 0.0 +es 08_non-res 1 146 2030 1.0 0.0 +es 09_hydro_pump 1 146 2030 0.0 0.0 +es 01_solar 1 147 2030 1.0 0.0 +es 02_wind_on 1 147 2030 1.0 0.0 +es 03_wind_off 1 147 2030 1.0 0.0 +es 04_res 1 147 2030 1.0 0.0 +es 05_nuclear 1 147 2030 1.0 0.0 +es 06_coal 1 147 2030 1.0 0.0 +es 07_gas 1 147 2030 1.0 0.0 +es 08_non-res 1 147 2030 1.0 0.0 +es 09_hydro_pump 1 147 2030 0.0 0.0 +es 01_solar 1 148 2030 1.0 0.0 +es 02_wind_on 1 148 2030 1.0 0.0 +es 03_wind_off 1 148 2030 1.0 0.0 +es 04_res 1 148 2030 1.0 0.0 +es 05_nuclear 1 148 2030 1.0 0.0 +es 06_coal 1 148 2030 1.0 0.0 +es 07_gas 1 148 2030 1.0 0.0 +es 08_non-res 1 148 2030 1.0 0.0 +es 09_hydro_pump 1 148 2030 0.0 0.0 +es 01_solar 1 149 2030 1.0 0.0 +es 02_wind_on 1 149 2030 1.0 0.0 +es 03_wind_off 1 149 2030 1.0 0.0 +es 04_res 1 149 2030 1.0 0.0 +es 05_nuclear 1 149 2030 1.0 0.0 +es 06_coal 1 149 2030 1.0 0.0 +es 07_gas 1 149 2030 1.0 0.0 +es 08_non-res 1 149 2030 1.0 0.0 +es 09_hydro_pump 1 149 2030 0.0 0.0 +es 01_solar 1 150 2030 1.0 0.0 +es 02_wind_on 1 150 2030 1.0 0.0 +es 03_wind_off 1 150 2030 1.0 0.0 +es 04_res 1 150 2030 1.0 0.0 +es 05_nuclear 1 150 2030 1.0 0.0 +es 06_coal 1 150 2030 1.0 0.0 +es 07_gas 1 150 2030 1.0 0.0 +es 08_non-res 1 150 2030 1.0 0.0 +es 09_hydro_pump 1 150 2030 0.0 0.0 +es 01_solar 1 151 2030 1.0 0.0 +es 02_wind_on 1 151 2030 1.0 0.0 +es 03_wind_off 1 151 2030 1.0 0.0 +es 04_res 1 151 2030 1.0 0.0 +es 05_nuclear 1 151 2030 1.0 0.0 +es 06_coal 1 151 2030 1.0 0.0 +es 07_gas 1 151 2030 1.0 0.0 +es 08_non-res 1 151 2030 1.0 0.0 +es 09_hydro_pump 1 151 2030 0.0 0.0 +es 01_solar 1 152 2030 1.0 0.0 +es 02_wind_on 1 152 2030 1.0 0.0 +es 03_wind_off 1 152 2030 1.0 0.0 +es 04_res 1 152 2030 1.0 0.0 +es 05_nuclear 1 152 2030 1.0 0.0 +es 06_coal 1 152 2030 1.0 0.0 +es 07_gas 1 152 2030 1.0 0.0 +es 08_non-res 1 152 2030 1.0 0.0 +es 09_hydro_pump 1 152 2030 0.0 0.0 +es 01_solar 1 153 2030 1.0 0.0 +es 02_wind_on 1 153 2030 1.0 0.0 +es 03_wind_off 1 153 2030 1.0 0.0 +es 04_res 1 153 2030 1.0 0.0 +es 05_nuclear 1 153 2030 1.0 0.0 +es 06_coal 1 153 2030 1.0 0.0 +es 07_gas 1 153 2030 1.0 0.0 +es 08_non-res 1 153 2030 1.0 0.0 +es 09_hydro_pump 1 153 2030 0.0 0.0 +es 01_solar 1 154 2030 1.0 0.0 +es 02_wind_on 1 154 2030 1.0 0.0 +es 03_wind_off 1 154 2030 1.0 0.0 +es 04_res 1 154 2030 1.0 0.0 +es 05_nuclear 1 154 2030 1.0 0.0 +es 06_coal 1 154 2030 1.0 0.0 +es 07_gas 1 154 2030 1.0 0.0 +es 08_non-res 1 154 2030 1.0 0.0 +es 09_hydro_pump 1 154 2030 0.0 0.0 +es 01_solar 1 155 2030 1.0 0.0 +es 02_wind_on 1 155 2030 1.0 0.0 +es 03_wind_off 1 155 2030 1.0 0.0 +es 04_res 1 155 2030 1.0 0.0 +es 05_nuclear 1 155 2030 1.0 0.0 +es 06_coal 1 155 2030 1.0 0.0 +es 07_gas 1 155 2030 1.0 0.0 +es 08_non-res 1 155 2030 1.0 0.0 +es 09_hydro_pump 1 155 2030 0.0 0.0 +es 01_solar 1 156 2030 1.0 0.0 +es 02_wind_on 1 156 2030 1.0 0.0 +es 03_wind_off 1 156 2030 1.0 0.0 +es 04_res 1 156 2030 1.0 0.0 +es 05_nuclear 1 156 2030 1.0 0.0 +es 06_coal 1 156 2030 1.0 0.0 +es 07_gas 1 156 2030 1.0 0.0 +es 08_non-res 1 156 2030 1.0 0.0 +es 09_hydro_pump 1 156 2030 0.0 0.0 +es 01_solar 1 157 2030 1.0 0.0 +es 02_wind_on 1 157 2030 1.0 0.0 +es 03_wind_off 1 157 2030 1.0 0.0 +es 04_res 1 157 2030 1.0 0.0 +es 05_nuclear 1 157 2030 1.0 0.0 +es 06_coal 1 157 2030 1.0 0.0 +es 07_gas 1 157 2030 1.0 0.0 +es 08_non-res 1 157 2030 1.0 0.0 +es 09_hydro_pump 1 157 2030 0.0 0.0 +es 01_solar 1 158 2030 1.0 0.0 +es 02_wind_on 1 158 2030 1.0 0.0 +es 03_wind_off 1 158 2030 1.0 0.0 +es 04_res 1 158 2030 1.0 0.0 +es 05_nuclear 1 158 2030 1.0 0.0 +es 06_coal 1 158 2030 1.0 0.0 +es 07_gas 1 158 2030 1.0 0.0 +es 08_non-res 1 158 2030 1.0 0.0 +es 09_hydro_pump 1 158 2030 0.0 0.0 +es 01_solar 1 159 2030 1.0 0.0 +es 02_wind_on 1 159 2030 1.0 0.0 +es 03_wind_off 1 159 2030 1.0 0.0 +es 04_res 1 159 2030 1.0 0.0 +es 05_nuclear 1 159 2030 1.0 0.0 +es 06_coal 1 159 2030 1.0 0.0 +es 07_gas 1 159 2030 1.0 0.0 +es 08_non-res 1 159 2030 1.0 0.0 +es 09_hydro_pump 1 159 2030 0.0 0.0 +es 01_solar 1 160 2030 1.0 0.0 +es 02_wind_on 1 160 2030 1.0 0.0 +es 03_wind_off 1 160 2030 1.0 0.0 +es 04_res 1 160 2030 1.0 0.0 +es 05_nuclear 1 160 2030 1.0 0.0 +es 06_coal 1 160 2030 1.0 0.0 +es 07_gas 1 160 2030 1.0 0.0 +es 08_non-res 1 160 2030 1.0 0.0 +es 09_hydro_pump 1 160 2030 0.0 0.0 +es 01_solar 1 161 2030 1.0 0.0 +es 02_wind_on 1 161 2030 1.0 0.0 +es 03_wind_off 1 161 2030 1.0 0.0 +es 04_res 1 161 2030 1.0 0.0 +es 05_nuclear 1 161 2030 1.0 0.0 +es 06_coal 1 161 2030 1.0 0.0 +es 07_gas 1 161 2030 1.0 0.0 +es 08_non-res 1 161 2030 1.0 0.0 +es 09_hydro_pump 1 161 2030 0.0 0.0 +es 01_solar 1 162 2030 1.0 0.0 +es 02_wind_on 1 162 2030 1.0 0.0 +es 03_wind_off 1 162 2030 1.0 0.0 +es 04_res 1 162 2030 1.0 0.0 +es 05_nuclear 1 162 2030 1.0 0.0 +es 06_coal 1 162 2030 1.0 0.0 +es 07_gas 1 162 2030 1.0 0.0 +es 08_non-res 1 162 2030 1.0 0.0 +es 09_hydro_pump 1 162 2030 1.0 0.0 +es 01_solar 1 163 2030 1.0 0.0 +es 02_wind_on 1 163 2030 1.0 0.0 +es 03_wind_off 1 163 2030 1.0 0.0 +es 04_res 1 163 2030 1.0 0.0 +es 05_nuclear 1 163 2030 1.0 0.0 +es 06_coal 1 163 2030 1.0 0.0 +es 07_gas 1 163 2030 1.0 0.0 +es 08_non-res 1 163 2030 1.0 0.0 +es 09_hydro_pump 1 163 2030 1.0 0.0 +es 01_solar 1 164 2030 1.0 0.0 +es 02_wind_on 1 164 2030 1.0 0.0 +es 03_wind_off 1 164 2030 1.0 0.0 +es 04_res 1 164 2030 1.0 0.0 +es 05_nuclear 1 164 2030 1.0 0.0 +es 06_coal 1 164 2030 1.0 0.0 +es 07_gas 1 164 2030 1.0 0.0 +es 08_non-res 1 164 2030 1.0 0.0 +es 09_hydro_pump 1 164 2030 1.0 0.0 +es 01_solar 1 165 2030 1.0 0.0 +es 02_wind_on 1 165 2030 1.0 0.0 +es 03_wind_off 1 165 2030 1.0 0.0 +es 04_res 1 165 2030 1.0 0.0 +es 05_nuclear 1 165 2030 1.0 0.0 +es 06_coal 1 165 2030 1.0 0.0 +es 07_gas 1 165 2030 1.0 0.0 +es 08_non-res 1 165 2030 1.0 0.0 +es 09_hydro_pump 1 165 2030 1.0 0.0 +es 01_solar 1 166 2030 1.0 0.0 +es 02_wind_on 1 166 2030 1.0 0.0 +es 03_wind_off 1 166 2030 1.0 0.0 +es 04_res 1 166 2030 1.0 0.0 +es 05_nuclear 1 166 2030 1.0 0.0 +es 06_coal 1 166 2030 1.0 0.0 +es 07_gas 1 166 2030 1.0 0.0 +es 08_non-res 1 166 2030 1.0 0.0 +es 09_hydro_pump 1 166 2030 1.0 0.0 +es 01_solar 1 167 2030 1.0 0.0 +es 02_wind_on 1 167 2030 1.0 0.0 +es 03_wind_off 1 167 2030 1.0 0.0 +es 04_res 1 167 2030 1.0 0.0 +es 05_nuclear 1 167 2030 1.0 0.0 +es 06_coal 1 167 2030 1.0 0.0 +es 07_gas 1 167 2030 1.0 0.0 +es 08_non-res 1 167 2030 1.0 0.0 +es 09_hydro_pump 1 167 2030 1.0 0.0 +es 01_solar 1 168 2030 1.0 0.0 +es 02_wind_on 1 168 2030 1.0 0.0 +es 03_wind_off 1 168 2030 1.0 0.0 +es 04_res 1 168 2030 1.0 0.0 +es 05_nuclear 1 168 2030 1.0 0.0 +es 06_coal 1 168 2030 1.0 0.0 +es 07_gas 1 168 2030 1.0 0.0 +es 08_non-res 1 168 2030 1.0 0.0 +es 09_hydro_pump 1 168 2030 1.0 0.0 +es 01_solar 1 169 2030 0.0 0.0 +es 02_wind_on 1 169 2030 0.0 0.0 +es 03_wind_off 1 169 2030 0.0 0.0 +es 04_res 1 169 2030 0.0 0.0 +es 05_nuclear 1 169 2030 0.0 0.0 +es 06_coal 1 169 2030 0.0 0.0 +es 07_gas 1 169 2030 0.0 0.0 +es 08_non-res 1 169 2030 0.0 0.0 +es 09_hydro_pump 1 169 2030 0.0 0.0 +es 01_solar 1 170 2030 1.0 0.0 +es 02_wind_on 1 170 2030 0.0 0.0 +es 03_wind_off 1 170 2030 0.0 0.0 +es 04_res 1 170 2030 0.0 0.0 +es 05_nuclear 1 170 2030 0.0 0.0 +es 06_coal 1 170 2030 0.0 0.0 +es 07_gas 1 170 2030 0.0 0.0 +es 08_non-res 1 170 2030 0.0 0.0 +es 09_hydro_pump 1 170 2030 0.0 0.0 +es 01_solar 1 171 2030 1.0 0.0 +es 02_wind_on 1 171 2030 0.0 0.0 +es 03_wind_off 1 171 2030 0.0 0.0 +es 04_res 1 171 2030 0.0 0.0 +es 05_nuclear 1 171 2030 0.0 0.0 +es 06_coal 1 171 2030 0.0 0.0 +es 07_gas 1 171 2030 0.0 0.0 +es 08_non-res 1 171 2030 0.0 0.0 +es 09_hydro_pump 1 171 2030 0.0 0.0 +es 01_solar 1 172 2030 1.0 0.0 +es 02_wind_on 1 172 2030 0.0 0.0 +es 03_wind_off 1 172 2030 0.0 0.0 +es 04_res 1 172 2030 0.0 0.0 +es 05_nuclear 1 172 2030 0.0 0.0 +es 06_coal 1 172 2030 0.0 0.0 +es 07_gas 1 172 2030 0.0 0.0 +es 08_non-res 1 172 2030 0.0 0.0 +es 09_hydro_pump 1 172 2030 0.0 0.0 +es 01_solar 1 173 2030 1.0 0.0 +es 02_wind_on 1 173 2030 0.0 0.0 +es 03_wind_off 1 173 2030 0.0 0.0 +es 04_res 1 173 2030 0.0 0.0 +es 05_nuclear 1 173 2030 0.0 0.0 +es 06_coal 1 173 2030 0.0 0.0 +es 07_gas 1 173 2030 0.0 0.0 +es 08_non-res 1 173 2030 0.0 0.0 +es 09_hydro_pump 1 173 2030 0.0 0.0 +es 01_solar 1 174 2030 1.0 0.0 +es 02_wind_on 1 174 2030 0.0 0.0 +es 03_wind_off 1 174 2030 0.0 0.0 +es 04_res 1 174 2030 0.0 0.0 +es 05_nuclear 1 174 2030 0.0 0.0 +es 06_coal 1 174 2030 0.0 0.0 +es 07_gas 1 174 2030 0.0 0.0 +es 08_non-res 1 174 2030 0.0 0.0 +es 09_hydro_pump 1 174 2030 0.0 0.0 +es 01_solar 1 175 2030 1.0 0.0 +es 02_wind_on 1 175 2030 0.0 0.0 +es 03_wind_off 1 175 2030 0.0 0.0 +es 04_res 1 175 2030 0.0 0.0 +es 05_nuclear 1 175 2030 0.0 0.0 +es 06_coal 1 175 2030 0.0 0.0 +es 07_gas 1 175 2030 0.0 0.0 +es 08_non-res 1 175 2030 0.0 0.0 +es 09_hydro_pump 1 175 2030 0.0 0.0 +es 01_solar 1 176 2030 1.0 0.0 +es 02_wind_on 1 176 2030 0.0 0.0 +es 03_wind_off 1 176 2030 0.0 0.0 +es 04_res 1 176 2030 0.0 0.0 +es 05_nuclear 1 176 2030 0.0 0.0 +es 06_coal 1 176 2030 0.0 0.0 +es 07_gas 1 176 2030 0.0 0.0 +es 08_non-res 1 176 2030 0.0 0.0 +es 09_hydro_pump 1 176 2030 0.0 0.0 +es 01_solar 1 177 2030 1.0 0.0 +es 02_wind_on 1 177 2030 0.0 0.0 +es 03_wind_off 1 177 2030 0.0 0.0 +es 04_res 1 177 2030 0.0 0.0 +es 05_nuclear 1 177 2030 0.0 0.0 +es 06_coal 1 177 2030 0.0 0.0 +es 07_gas 1 177 2030 0.0 0.0 +es 08_non-res 1 177 2030 0.0 0.0 +es 09_hydro_pump 1 177 2030 0.0 0.0 +es 01_solar 1 178 2030 1.0 0.0 +es 02_wind_on 1 178 2030 0.0 0.0 +es 03_wind_off 1 178 2030 0.0 0.0 +es 04_res 1 178 2030 0.0 0.0 +es 05_nuclear 1 178 2030 0.0 0.0 +es 06_coal 1 178 2030 0.0 0.0 +es 07_gas 1 178 2030 0.0 0.0 +es 08_non-res 1 178 2030 0.0 0.0 +es 09_hydro_pump 1 178 2030 0.0 0.0 +es 01_solar 1 179 2030 1.0 0.0 +es 02_wind_on 1 179 2030 0.0 0.0 +es 03_wind_off 1 179 2030 0.0 0.0 +es 04_res 1 179 2030 0.0 0.0 +es 05_nuclear 1 179 2030 0.0 0.0 +es 06_coal 1 179 2030 0.0 0.0 +es 07_gas 1 179 2030 0.0 0.0 +es 08_non-res 1 179 2030 0.0 0.0 +es 09_hydro_pump 1 179 2030 0.0 0.0 +es 01_solar 1 180 2030 1.0 0.0 +es 02_wind_on 1 180 2030 0.0 0.0 +es 03_wind_off 1 180 2030 0.0 0.0 +es 04_res 1 180 2030 0.0 0.0 +es 05_nuclear 1 180 2030 0.0 0.0 +es 06_coal 1 180 2030 0.0 0.0 +es 07_gas 1 180 2030 0.0 0.0 +es 08_non-res 1 180 2030 0.0 0.0 +es 09_hydro_pump 1 180 2030 0.0 0.0 +es 01_solar 1 181 2030 1.0 0.0 +es 02_wind_on 1 181 2030 0.0 0.0 +es 03_wind_off 1 181 2030 0.0 0.0 +es 04_res 1 181 2030 0.0 0.0 +es 05_nuclear 1 181 2030 0.0 0.0 +es 06_coal 1 181 2030 0.0 0.0 +es 07_gas 1 181 2030 0.0 0.0 +es 08_non-res 1 181 2030 0.0 0.0 +es 09_hydro_pump 1 181 2030 0.0 0.0 +es 01_solar 1 182 2030 1.0 0.0 +es 02_wind_on 1 182 2030 0.0 0.0 +es 03_wind_off 1 182 2030 0.0 0.0 +es 04_res 1 182 2030 0.0 0.0 +es 05_nuclear 1 182 2030 0.0 0.0 +es 06_coal 1 182 2030 0.0 0.0 +es 07_gas 1 182 2030 0.0 0.0 +es 08_non-res 1 182 2030 0.0 0.0 +es 09_hydro_pump 1 182 2030 0.0 0.0 +es 01_solar 1 183 2030 1.0 0.0 +es 02_wind_on 1 183 2030 0.0 0.0 +es 03_wind_off 1 183 2030 0.0 0.0 +es 04_res 1 183 2030 0.0 0.0 +es 05_nuclear 1 183 2030 0.0 0.0 +es 06_coal 1 183 2030 0.0 0.0 +es 07_gas 1 183 2030 0.0 0.0 +es 08_non-res 1 183 2030 0.0 0.0 +es 09_hydro_pump 1 183 2030 0.0 0.0 +es 01_solar 1 184 2030 1.0 0.0 +es 02_wind_on 1 184 2030 0.0 0.0 +es 03_wind_off 1 184 2030 0.0 0.0 +es 04_res 1 184 2030 0.0 0.0 +es 05_nuclear 1 184 2030 0.0 0.0 +es 06_coal 1 184 2030 0.0 0.0 +es 07_gas 1 184 2030 0.0 0.0 +es 08_non-res 1 184 2030 0.0 0.0 +es 09_hydro_pump 1 184 2030 0.0 0.0 +es 01_solar 1 185 2030 1.0 0.0 +es 02_wind_on 1 185 2030 0.0 0.0 +es 03_wind_off 1 185 2030 0.0 0.0 +es 04_res 1 185 2030 0.0 0.0 +es 05_nuclear 1 185 2030 0.0 0.0 +es 06_coal 1 185 2030 0.0 0.0 +es 07_gas 1 185 2030 0.0 0.0 +es 08_non-res 1 185 2030 0.0 0.0 +es 09_hydro_pump 1 185 2030 0.0 0.0 +es 01_solar 1 186 2030 1.0 0.0 +es 02_wind_on 1 186 2030 0.0 0.0 +es 03_wind_off 1 186 2030 0.0 0.0 +es 04_res 1 186 2030 0.0 0.0 +es 05_nuclear 1 186 2030 0.0 0.0 +es 06_coal 1 186 2030 0.0 0.0 +es 07_gas 1 186 2030 0.0 0.0 +es 08_non-res 1 186 2030 0.0 0.0 +es 09_hydro_pump 1 186 2030 0.0 0.0 +es 01_solar 1 187 2030 1.0 0.0 +es 02_wind_on 1 187 2030 0.0 0.0 +es 03_wind_off 1 187 2030 0.0 0.0 +es 04_res 1 187 2030 0.0 0.0 +es 05_nuclear 1 187 2030 0.0 0.0 +es 06_coal 1 187 2030 0.0 0.0 +es 07_gas 1 187 2030 0.0 0.0 +es 08_non-res 1 187 2030 0.0 0.0 +es 09_hydro_pump 1 187 2030 0.0 0.0 +es 01_solar 1 188 2030 1.0 0.0 +es 02_wind_on 1 188 2030 0.0 0.0 +es 03_wind_off 1 188 2030 0.0 0.0 +es 04_res 1 188 2030 0.0 0.0 +es 05_nuclear 1 188 2030 0.0 0.0 +es 06_coal 1 188 2030 0.0 0.0 +es 07_gas 1 188 2030 0.0 0.0 +es 08_non-res 1 188 2030 0.0 0.0 +es 09_hydro_pump 1 188 2030 0.0 0.0 +es 01_solar 1 189 2030 1.0 0.0 +es 02_wind_on 1 189 2030 0.0 0.0 +es 03_wind_off 1 189 2030 0.0 0.0 +es 04_res 1 189 2030 0.0 0.0 +es 05_nuclear 1 189 2030 0.0 0.0 +es 06_coal 1 189 2030 0.0 0.0 +es 07_gas 1 189 2030 0.0 0.0 +es 08_non-res 1 189 2030 0.0 0.0 +es 09_hydro_pump 1 189 2030 0.0 0.0 +es 01_solar 1 190 2030 1.0 0.0 +es 02_wind_on 1 190 2030 1.0 0.0 +es 03_wind_off 1 190 2030 0.0 0.0 +es 04_res 1 190 2030 0.0 0.0 +es 05_nuclear 1 190 2030 0.0 0.0 +es 06_coal 1 190 2030 0.0 0.0 +es 07_gas 1 190 2030 0.0 0.0 +es 08_non-res 1 190 2030 0.0 0.0 +es 09_hydro_pump 1 190 2030 0.0 0.0 +es 01_solar 1 191 2030 1.0 0.0 +es 02_wind_on 1 191 2030 1.0 0.0 +es 03_wind_off 1 191 2030 0.0 0.0 +es 04_res 1 191 2030 0.0 0.0 +es 05_nuclear 1 191 2030 0.0 0.0 +es 06_coal 1 191 2030 0.0 0.0 +es 07_gas 1 191 2030 0.0 0.0 +es 08_non-res 1 191 2030 0.0 0.0 +es 09_hydro_pump 1 191 2030 0.0 0.0 +es 01_solar 1 192 2030 1.0 0.0 +es 02_wind_on 1 192 2030 1.0 0.0 +es 03_wind_off 1 192 2030 0.0 0.0 +es 04_res 1 192 2030 0.0 0.0 +es 05_nuclear 1 192 2030 0.0 0.0 +es 06_coal 1 192 2030 0.0 0.0 +es 07_gas 1 192 2030 0.0 0.0 +es 08_non-res 1 192 2030 0.0 0.0 +es 09_hydro_pump 1 192 2030 0.0 0.0 +es 01_solar 1 193 2030 1.0 0.0 +es 02_wind_on 1 193 2030 1.0 0.0 +es 03_wind_off 1 193 2030 0.0 0.0 +es 04_res 1 193 2030 0.0 0.0 +es 05_nuclear 1 193 2030 0.0 0.0 +es 06_coal 1 193 2030 0.0 0.0 +es 07_gas 1 193 2030 0.0 0.0 +es 08_non-res 1 193 2030 0.0 0.0 +es 09_hydro_pump 1 193 2030 0.0 0.0 +es 01_solar 1 194 2030 1.0 0.0 +es 02_wind_on 1 194 2030 1.0 0.0 +es 03_wind_off 1 194 2030 0.0 0.0 +es 04_res 1 194 2030 0.0 0.0 +es 05_nuclear 1 194 2030 0.0 0.0 +es 06_coal 1 194 2030 0.0 0.0 +es 07_gas 1 194 2030 0.0 0.0 +es 08_non-res 1 194 2030 0.0 0.0 +es 09_hydro_pump 1 194 2030 0.0 0.0 +es 01_solar 1 195 2030 1.0 0.0 +es 02_wind_on 1 195 2030 1.0 0.0 +es 03_wind_off 1 195 2030 0.0 0.0 +es 04_res 1 195 2030 0.0 0.0 +es 05_nuclear 1 195 2030 0.0 0.0 +es 06_coal 1 195 2030 0.0 0.0 +es 07_gas 1 195 2030 0.0 0.0 +es 08_non-res 1 195 2030 0.0 0.0 +es 09_hydro_pump 1 195 2030 0.0 0.0 +es 01_solar 1 196 2030 1.0 0.0 +es 02_wind_on 1 196 2030 1.0 0.0 +es 03_wind_off 1 196 2030 0.0 0.0 +es 04_res 1 196 2030 0.0 0.0 +es 05_nuclear 1 196 2030 0.0 0.0 +es 06_coal 1 196 2030 0.0 0.0 +es 07_gas 1 196 2030 0.0 0.0 +es 08_non-res 1 196 2030 0.0 0.0 +es 09_hydro_pump 1 196 2030 0.0 0.0 +es 01_solar 1 197 2030 1.0 0.0 +es 02_wind_on 1 197 2030 1.0 0.0 +es 03_wind_off 1 197 2030 0.0 0.0 +es 04_res 1 197 2030 0.0 0.0 +es 05_nuclear 1 197 2030 0.0 0.0 +es 06_coal 1 197 2030 0.0 0.0 +es 07_gas 1 197 2030 0.0 0.0 +es 08_non-res 1 197 2030 0.0 0.0 +es 09_hydro_pump 1 197 2030 0.0 0.0 +es 01_solar 1 198 2030 1.0 0.0 +es 02_wind_on 1 198 2030 1.0 0.0 +es 03_wind_off 1 198 2030 0.0 0.0 +es 04_res 1 198 2030 0.0 0.0 +es 05_nuclear 1 198 2030 0.0 0.0 +es 06_coal 1 198 2030 0.0 0.0 +es 07_gas 1 198 2030 0.0 0.0 +es 08_non-res 1 198 2030 0.0 0.0 +es 09_hydro_pump 1 198 2030 0.0 0.0 +es 01_solar 1 199 2030 1.0 0.0 +es 02_wind_on 1 199 2030 1.0 0.0 +es 03_wind_off 1 199 2030 0.0 0.0 +es 04_res 1 199 2030 0.0 0.0 +es 05_nuclear 1 199 2030 0.0 0.0 +es 06_coal 1 199 2030 0.0 0.0 +es 07_gas 1 199 2030 0.0 0.0 +es 08_non-res 1 199 2030 0.0 0.0 +es 09_hydro_pump 1 199 2030 0.0 0.0 +es 01_solar 1 200 2030 1.0 0.0 +es 02_wind_on 1 200 2030 1.0 0.0 +es 03_wind_off 1 200 2030 0.0 0.0 +es 04_res 1 200 2030 0.0 0.0 +es 05_nuclear 1 200 2030 0.0 0.0 +es 06_coal 1 200 2030 0.0 0.0 +es 07_gas 1 200 2030 0.0 0.0 +es 08_non-res 1 200 2030 0.0 0.0 +es 09_hydro_pump 1 200 2030 0.0 0.0 +es 01_solar 1 201 2030 1.0 0.0 +es 02_wind_on 1 201 2030 1.0 0.0 +es 03_wind_off 1 201 2030 0.0 0.0 +es 04_res 1 201 2030 0.0 0.0 +es 05_nuclear 1 201 2030 0.0 0.0 +es 06_coal 1 201 2030 0.0 0.0 +es 07_gas 1 201 2030 0.0 0.0 +es 08_non-res 1 201 2030 0.0 0.0 +es 09_hydro_pump 1 201 2030 0.0 0.0 +es 01_solar 1 202 2030 1.0 0.0 +es 02_wind_on 1 202 2030 1.0 0.0 +es 03_wind_off 1 202 2030 0.0 0.0 +es 04_res 1 202 2030 0.0 0.0 +es 05_nuclear 1 202 2030 0.0 0.0 +es 06_coal 1 202 2030 0.0 0.0 +es 07_gas 1 202 2030 0.0 0.0 +es 08_non-res 1 202 2030 0.0 0.0 +es 09_hydro_pump 1 202 2030 0.0 0.0 +es 01_solar 1 203 2030 1.0 0.0 +es 02_wind_on 1 203 2030 1.0 0.0 +es 03_wind_off 1 203 2030 0.0 0.0 +es 04_res 1 203 2030 0.0 0.0 +es 05_nuclear 1 203 2030 0.0 0.0 +es 06_coal 1 203 2030 0.0 0.0 +es 07_gas 1 203 2030 0.0 0.0 +es 08_non-res 1 203 2030 0.0 0.0 +es 09_hydro_pump 1 203 2030 0.0 0.0 +es 01_solar 1 204 2030 1.0 0.0 +es 02_wind_on 1 204 2030 1.0 0.0 +es 03_wind_off 1 204 2030 0.0 0.0 +es 04_res 1 204 2030 0.0 0.0 +es 05_nuclear 1 204 2030 0.0 0.0 +es 06_coal 1 204 2030 0.0 0.0 +es 07_gas 1 204 2030 0.0 0.0 +es 08_non-res 1 204 2030 0.0 0.0 +es 09_hydro_pump 1 204 2030 0.0 0.0 +es 01_solar 1 205 2030 1.0 0.0 +es 02_wind_on 1 205 2030 1.0 0.0 +es 03_wind_off 1 205 2030 0.0 0.0 +es 04_res 1 205 2030 0.0 0.0 +es 05_nuclear 1 205 2030 0.0 0.0 +es 06_coal 1 205 2030 0.0 0.0 +es 07_gas 1 205 2030 0.0 0.0 +es 08_non-res 1 205 2030 0.0 0.0 +es 09_hydro_pump 1 205 2030 0.0 0.0 +es 01_solar 1 206 2030 1.0 0.0 +es 02_wind_on 1 206 2030 1.0 0.0 +es 03_wind_off 1 206 2030 0.0 0.0 +es 04_res 1 206 2030 0.0 0.0 +es 05_nuclear 1 206 2030 0.0 0.0 +es 06_coal 1 206 2030 0.0 0.0 +es 07_gas 1 206 2030 0.0 0.0 +es 08_non-res 1 206 2030 0.0 0.0 +es 09_hydro_pump 1 206 2030 0.0 0.0 +es 01_solar 1 207 2030 1.0 0.0 +es 02_wind_on 1 207 2030 1.0 0.0 +es 03_wind_off 1 207 2030 0.0 0.0 +es 04_res 1 207 2030 0.0 0.0 +es 05_nuclear 1 207 2030 0.0 0.0 +es 06_coal 1 207 2030 0.0 0.0 +es 07_gas 1 207 2030 0.0 0.0 +es 08_non-res 1 207 2030 0.0 0.0 +es 09_hydro_pump 1 207 2030 0.0 0.0 +es 01_solar 1 208 2030 1.0 0.0 +es 02_wind_on 1 208 2030 1.0 0.0 +es 03_wind_off 1 208 2030 0.0 0.0 +es 04_res 1 208 2030 0.0 0.0 +es 05_nuclear 1 208 2030 0.0 0.0 +es 06_coal 1 208 2030 0.0 0.0 +es 07_gas 1 208 2030 0.0 0.0 +es 08_non-res 1 208 2030 0.0 0.0 +es 09_hydro_pump 1 208 2030 0.0 0.0 +es 01_solar 1 209 2030 1.0 0.0 +es 02_wind_on 1 209 2030 1.0 0.0 +es 03_wind_off 1 209 2030 0.0 0.0 +es 04_res 1 209 2030 0.0 0.0 +es 05_nuclear 1 209 2030 0.0 0.0 +es 06_coal 1 209 2030 0.0 0.0 +es 07_gas 1 209 2030 0.0 0.0 +es 08_non-res 1 209 2030 0.0 0.0 +es 09_hydro_pump 1 209 2030 0.0 0.0 +es 01_solar 1 210 2030 1.0 0.0 +es 02_wind_on 1 210 2030 1.0 0.0 +es 03_wind_off 1 210 2030 1.0 0.0 +es 04_res 1 210 2030 0.0 0.0 +es 05_nuclear 1 210 2030 0.0 0.0 +es 06_coal 1 210 2030 0.0 0.0 +es 07_gas 1 210 2030 0.0 0.0 +es 08_non-res 1 210 2030 0.0 0.0 +es 09_hydro_pump 1 210 2030 0.0 0.0 +es 01_solar 1 211 2030 1.0 0.0 +es 02_wind_on 1 211 2030 1.0 0.0 +es 03_wind_off 1 211 2030 1.0 0.0 +es 04_res 1 211 2030 0.0 0.0 +es 05_nuclear 1 211 2030 0.0 0.0 +es 06_coal 1 211 2030 0.0 0.0 +es 07_gas 1 211 2030 0.0 0.0 +es 08_non-res 1 211 2030 0.0 0.0 +es 09_hydro_pump 1 211 2030 0.0 0.0 +es 01_solar 1 212 2030 1.0 0.0 +es 02_wind_on 1 212 2030 1.0 0.0 +es 03_wind_off 1 212 2030 1.0 0.0 +es 04_res 1 212 2030 0.0 0.0 +es 05_nuclear 1 212 2030 0.0 0.0 +es 06_coal 1 212 2030 0.0 0.0 +es 07_gas 1 212 2030 0.0 0.0 +es 08_non-res 1 212 2030 0.0 0.0 +es 09_hydro_pump 1 212 2030 0.0 0.0 +es 01_solar 1 213 2030 1.0 0.0 +es 02_wind_on 1 213 2030 1.0 0.0 +es 03_wind_off 1 213 2030 1.0 0.0 +es 04_res 1 213 2030 0.0 0.0 +es 05_nuclear 1 213 2030 0.0 0.0 +es 06_coal 1 213 2030 0.0 0.0 +es 07_gas 1 213 2030 0.0 0.0 +es 08_non-res 1 213 2030 0.0 0.0 +es 09_hydro_pump 1 213 2030 0.0 0.0 +es 01_solar 1 214 2030 1.0 0.0 +es 02_wind_on 1 214 2030 1.0 0.0 +es 03_wind_off 1 214 2030 1.0 0.0 +es 04_res 1 214 2030 0.0 0.0 +es 05_nuclear 1 214 2030 0.0 0.0 +es 06_coal 1 214 2030 0.0 0.0 +es 07_gas 1 214 2030 0.0 0.0 +es 08_non-res 1 214 2030 0.0 0.0 +es 09_hydro_pump 1 214 2030 0.0 0.0 +es 01_solar 1 215 2030 1.0 0.0 +es 02_wind_on 1 215 2030 1.0 0.0 +es 03_wind_off 1 215 2030 1.0 0.0 +es 04_res 1 215 2030 0.0 0.0 +es 05_nuclear 1 215 2030 0.0 0.0 +es 06_coal 1 215 2030 0.0 0.0 +es 07_gas 1 215 2030 0.0 0.0 +es 08_non-res 1 215 2030 0.0 0.0 +es 09_hydro_pump 1 215 2030 0.0 0.0 +es 01_solar 1 216 2030 1.0 0.0 +es 02_wind_on 1 216 2030 1.0 0.0 +es 03_wind_off 1 216 2030 1.0 0.0 +es 04_res 1 216 2030 0.0 0.0 +es 05_nuclear 1 216 2030 0.0 0.0 +es 06_coal 1 216 2030 0.0 0.0 +es 07_gas 1 216 2030 0.0 0.0 +es 08_non-res 1 216 2030 0.0 0.0 +es 09_hydro_pump 1 216 2030 0.0 0.0 +es 01_solar 1 217 2030 1.0 0.0 +es 02_wind_on 1 217 2030 1.0 0.0 +es 03_wind_off 1 217 2030 1.0 0.0 +es 04_res 1 217 2030 0.0 0.0 +es 05_nuclear 1 217 2030 0.0 0.0 +es 06_coal 1 217 2030 0.0 0.0 +es 07_gas 1 217 2030 0.0 0.0 +es 08_non-res 1 217 2030 0.0 0.0 +es 09_hydro_pump 1 217 2030 0.0 0.0 +es 01_solar 1 218 2030 1.0 0.0 +es 02_wind_on 1 218 2030 1.0 0.0 +es 03_wind_off 1 218 2030 1.0 0.0 +es 04_res 1 218 2030 0.0 0.0 +es 05_nuclear 1 218 2030 0.0 0.0 +es 06_coal 1 218 2030 0.0 0.0 +es 07_gas 1 218 2030 0.0 0.0 +es 08_non-res 1 218 2030 0.0 0.0 +es 09_hydro_pump 1 218 2030 0.0 0.0 +es 01_solar 1 219 2030 1.0 0.0 +es 02_wind_on 1 219 2030 1.0 0.0 +es 03_wind_off 1 219 2030 1.0 0.0 +es 04_res 1 219 2030 0.0 0.0 +es 05_nuclear 1 219 2030 0.0 0.0 +es 06_coal 1 219 2030 0.0 0.0 +es 07_gas 1 219 2030 0.0 0.0 +es 08_non-res 1 219 2030 0.0 0.0 +es 09_hydro_pump 1 219 2030 0.0 0.0 +es 01_solar 1 220 2030 1.0 0.0 +es 02_wind_on 1 220 2030 1.0 0.0 +es 03_wind_off 1 220 2030 1.0 0.0 +es 04_res 1 220 2030 0.0 0.0 +es 05_nuclear 1 220 2030 0.0 0.0 +es 06_coal 1 220 2030 0.0 0.0 +es 07_gas 1 220 2030 0.0 0.0 +es 08_non-res 1 220 2030 0.0 0.0 +es 09_hydro_pump 1 220 2030 0.0 0.0 +es 01_solar 1 221 2030 1.0 0.0 +es 02_wind_on 1 221 2030 1.0 0.0 +es 03_wind_off 1 221 2030 1.0 0.0 +es 04_res 1 221 2030 0.0 0.0 +es 05_nuclear 1 221 2030 0.0 0.0 +es 06_coal 1 221 2030 0.0 0.0 +es 07_gas 1 221 2030 0.0 0.0 +es 08_non-res 1 221 2030 0.0 0.0 +es 09_hydro_pump 1 221 2030 0.0 0.0 +es 01_solar 1 222 2030 1.0 0.0 +es 02_wind_on 1 222 2030 1.0 0.0 +es 03_wind_off 1 222 2030 1.0 0.0 +es 04_res 1 222 2030 0.0 0.0 +es 05_nuclear 1 222 2030 0.0 0.0 +es 06_coal 1 222 2030 0.0 0.0 +es 07_gas 1 222 2030 0.0 0.0 +es 08_non-res 1 222 2030 0.0 0.0 +es 09_hydro_pump 1 222 2030 0.0 0.0 +es 01_solar 1 223 2030 1.0 0.0 +es 02_wind_on 1 223 2030 1.0 0.0 +es 03_wind_off 1 223 2030 1.0 0.0 +es 04_res 1 223 2030 0.0 0.0 +es 05_nuclear 1 223 2030 0.0 0.0 +es 06_coal 1 223 2030 0.0 0.0 +es 07_gas 1 223 2030 0.0 0.0 +es 08_non-res 1 223 2030 0.0 0.0 +es 09_hydro_pump 1 223 2030 0.0 0.0 +es 01_solar 1 224 2030 1.0 0.0 +es 02_wind_on 1 224 2030 1.0 0.0 +es 03_wind_off 1 224 2030 1.0 0.0 +es 04_res 1 224 2030 0.0 0.0 +es 05_nuclear 1 224 2030 0.0 0.0 +es 06_coal 1 224 2030 0.0 0.0 +es 07_gas 1 224 2030 0.0 0.0 +es 08_non-res 1 224 2030 0.0 0.0 +es 09_hydro_pump 1 224 2030 0.0 0.0 +es 01_solar 1 225 2030 1.0 0.0 +es 02_wind_on 1 225 2030 1.0 0.0 +es 03_wind_off 1 225 2030 1.0 0.0 +es 04_res 1 225 2030 0.0 0.0 +es 05_nuclear 1 225 2030 0.0 0.0 +es 06_coal 1 225 2030 0.0 0.0 +es 07_gas 1 225 2030 0.0 0.0 +es 08_non-res 1 225 2030 0.0 0.0 +es 09_hydro_pump 1 225 2030 0.0 0.0 +es 01_solar 1 226 2030 1.0 0.0 +es 02_wind_on 1 226 2030 1.0 0.0 +es 03_wind_off 1 226 2030 1.0 0.0 +es 04_res 1 226 2030 0.0 0.0 +es 05_nuclear 1 226 2030 0.0 0.0 +es 06_coal 1 226 2030 0.0 0.0 +es 07_gas 1 226 2030 0.0 0.0 +es 08_non-res 1 226 2030 0.0 0.0 +es 09_hydro_pump 1 226 2030 0.0 0.0 +es 01_solar 1 227 2030 1.0 0.0 +es 02_wind_on 1 227 2030 1.0 0.0 +es 03_wind_off 1 227 2030 1.0 0.0 +es 04_res 1 227 2030 0.0 0.0 +es 05_nuclear 1 227 2030 0.0 0.0 +es 06_coal 1 227 2030 0.0 0.0 +es 07_gas 1 227 2030 0.0 0.0 +es 08_non-res 1 227 2030 0.0 0.0 +es 09_hydro_pump 1 227 2030 0.0 0.0 +es 01_solar 1 228 2030 1.0 0.0 +es 02_wind_on 1 228 2030 1.0 0.0 +es 03_wind_off 1 228 2030 1.0 0.0 +es 04_res 1 228 2030 0.0 0.0 +es 05_nuclear 1 228 2030 0.0 0.0 +es 06_coal 1 228 2030 0.0 0.0 +es 07_gas 1 228 2030 0.0 0.0 +es 08_non-res 1 228 2030 0.0 0.0 +es 09_hydro_pump 1 228 2030 0.0 0.0 +es 01_solar 1 229 2030 1.0 0.0 +es 02_wind_on 1 229 2030 1.0 0.0 +es 03_wind_off 1 229 2030 1.0 0.0 +es 04_res 1 229 2030 0.0 0.0 +es 05_nuclear 1 229 2030 0.0 0.0 +es 06_coal 1 229 2030 0.0 0.0 +es 07_gas 1 229 2030 0.0 0.0 +es 08_non-res 1 229 2030 0.0 0.0 +es 09_hydro_pump 1 229 2030 0.0 0.0 +es 01_solar 1 230 2030 1.0 0.0 +es 02_wind_on 1 230 2030 1.0 0.0 +es 03_wind_off 1 230 2030 1.0 0.0 +es 04_res 1 230 2030 1.0 0.0 +es 05_nuclear 1 230 2030 0.0 0.0 +es 06_coal 1 230 2030 0.0 0.0 +es 07_gas 1 230 2030 0.0 0.0 +es 08_non-res 1 230 2030 0.0 0.0 +es 09_hydro_pump 1 230 2030 0.0 0.0 +es 01_solar 1 231 2030 1.0 0.0 +es 02_wind_on 1 231 2030 1.0 0.0 +es 03_wind_off 1 231 2030 1.0 0.0 +es 04_res 1 231 2030 1.0 0.0 +es 05_nuclear 1 231 2030 0.0 0.0 +es 06_coal 1 231 2030 0.0 0.0 +es 07_gas 1 231 2030 0.0 0.0 +es 08_non-res 1 231 2030 0.0 0.0 +es 09_hydro_pump 1 231 2030 0.0 0.0 +es 01_solar 1 232 2030 1.0 0.0 +es 02_wind_on 1 232 2030 1.0 0.0 +es 03_wind_off 1 232 2030 1.0 0.0 +es 04_res 1 232 2030 1.0 0.0 +es 05_nuclear 1 232 2030 0.0 0.0 +es 06_coal 1 232 2030 0.0 0.0 +es 07_gas 1 232 2030 0.0 0.0 +es 08_non-res 1 232 2030 0.0 0.0 +es 09_hydro_pump 1 232 2030 0.0 0.0 +es 01_solar 1 233 2030 1.0 0.0 +es 02_wind_on 1 233 2030 1.0 0.0 +es 03_wind_off 1 233 2030 1.0 0.0 +es 04_res 1 233 2030 1.0 0.0 +es 05_nuclear 1 233 2030 0.0 0.0 +es 06_coal 1 233 2030 0.0 0.0 +es 07_gas 1 233 2030 0.0 0.0 +es 08_non-res 1 233 2030 0.0 0.0 +es 09_hydro_pump 1 233 2030 0.0 0.0 +es 01_solar 1 234 2030 1.0 0.0 +es 02_wind_on 1 234 2030 1.0 0.0 +es 03_wind_off 1 234 2030 1.0 0.0 +es 04_res 1 234 2030 1.0 0.0 +es 05_nuclear 1 234 2030 0.0 0.0 +es 06_coal 1 234 2030 0.0 0.0 +es 07_gas 1 234 2030 0.0 0.0 +es 08_non-res 1 234 2030 0.0 0.0 +es 09_hydro_pump 1 234 2030 0.0 0.0 +es 01_solar 1 235 2030 1.0 0.0 +es 02_wind_on 1 235 2030 1.0 0.0 +es 03_wind_off 1 235 2030 1.0 0.0 +es 04_res 1 235 2030 1.0 0.0 +es 05_nuclear 1 235 2030 0.0 0.0 +es 06_coal 1 235 2030 0.0 0.0 +es 07_gas 1 235 2030 0.0 0.0 +es 08_non-res 1 235 2030 0.0 0.0 +es 09_hydro_pump 1 235 2030 0.0 0.0 +es 01_solar 1 236 2030 1.0 0.0 +es 02_wind_on 1 236 2030 1.0 0.0 +es 03_wind_off 1 236 2030 1.0 0.0 +es 04_res 1 236 2030 1.0 0.0 +es 05_nuclear 1 236 2030 0.0 0.0 +es 06_coal 1 236 2030 0.0 0.0 +es 07_gas 1 236 2030 0.0 0.0 +es 08_non-res 1 236 2030 0.0 0.0 +es 09_hydro_pump 1 236 2030 0.0 0.0 +es 01_solar 1 237 2030 1.0 0.0 +es 02_wind_on 1 237 2030 1.0 0.0 +es 03_wind_off 1 237 2030 1.0 0.0 +es 04_res 1 237 2030 1.0 0.0 +es 05_nuclear 1 237 2030 0.0 0.0 +es 06_coal 1 237 2030 0.0 0.0 +es 07_gas 1 237 2030 0.0 0.0 +es 08_non-res 1 237 2030 0.0 0.0 +es 09_hydro_pump 1 237 2030 0.0 0.0 +es 01_solar 1 238 2030 1.0 0.0 +es 02_wind_on 1 238 2030 1.0 0.0 +es 03_wind_off 1 238 2030 1.0 0.0 +es 04_res 1 238 2030 1.0 0.0 +es 05_nuclear 1 238 2030 0.0 0.0 +es 06_coal 1 238 2030 0.0 0.0 +es 07_gas 1 238 2030 0.0 0.0 +es 08_non-res 1 238 2030 0.0 0.0 +es 09_hydro_pump 1 238 2030 0.0 0.0 +es 01_solar 1 239 2030 1.0 0.0 +es 02_wind_on 1 239 2030 1.0 0.0 +es 03_wind_off 1 239 2030 1.0 0.0 +es 04_res 1 239 2030 1.0 0.0 +es 05_nuclear 1 239 2030 0.0 0.0 +es 06_coal 1 239 2030 0.0 0.0 +es 07_gas 1 239 2030 0.0 0.0 +es 08_non-res 1 239 2030 0.0 0.0 +es 09_hydro_pump 1 239 2030 0.0 0.0 +es 01_solar 1 240 2030 1.0 0.0 +es 02_wind_on 1 240 2030 1.0 0.0 +es 03_wind_off 1 240 2030 1.0 0.0 +es 04_res 1 240 2030 1.0 0.0 +es 05_nuclear 1 240 2030 0.0 0.0 +es 06_coal 1 240 2030 0.0 0.0 +es 07_gas 1 240 2030 0.0 0.0 +es 08_non-res 1 240 2030 0.0 0.0 +es 09_hydro_pump 1 240 2030 0.0 0.0 +es 01_solar 1 241 2030 1.0 0.0 +es 02_wind_on 1 241 2030 1.0 0.0 +es 03_wind_off 1 241 2030 1.0 0.0 +es 04_res 1 241 2030 1.0 0.0 +es 05_nuclear 1 241 2030 0.0 0.0 +es 06_coal 1 241 2030 0.0 0.0 +es 07_gas 1 241 2030 0.0 0.0 +es 08_non-res 1 241 2030 0.0 0.0 +es 09_hydro_pump 1 241 2030 0.0 0.0 +es 01_solar 1 242 2030 1.0 0.0 +es 02_wind_on 1 242 2030 1.0 0.0 +es 03_wind_off 1 242 2030 1.0 0.0 +es 04_res 1 242 2030 1.0 0.0 +es 05_nuclear 1 242 2030 0.0 0.0 +es 06_coal 1 242 2030 0.0 0.0 +es 07_gas 1 242 2030 0.0 0.0 +es 08_non-res 1 242 2030 0.0 0.0 +es 09_hydro_pump 1 242 2030 0.0 0.0 +es 01_solar 1 243 2030 1.0 0.0 +es 02_wind_on 1 243 2030 1.0 0.0 +es 03_wind_off 1 243 2030 1.0 0.0 +es 04_res 1 243 2030 1.0 0.0 +es 05_nuclear 1 243 2030 0.0 0.0 +es 06_coal 1 243 2030 0.0 0.0 +es 07_gas 1 243 2030 0.0 0.0 +es 08_non-res 1 243 2030 0.0 0.0 +es 09_hydro_pump 1 243 2030 0.0 0.0 +es 01_solar 1 244 2030 1.0 0.0 +es 02_wind_on 1 244 2030 1.0 0.0 +es 03_wind_off 1 244 2030 1.0 0.0 +es 04_res 1 244 2030 1.0 0.0 +es 05_nuclear 1 244 2030 0.0 0.0 +es 06_coal 1 244 2030 0.0 0.0 +es 07_gas 1 244 2030 0.0 0.0 +es 08_non-res 1 244 2030 0.0 0.0 +es 09_hydro_pump 1 244 2030 0.0 0.0 +es 01_solar 1 245 2030 1.0 0.0 +es 02_wind_on 1 245 2030 1.0 0.0 +es 03_wind_off 1 245 2030 1.0 0.0 +es 04_res 1 245 2030 1.0 0.0 +es 05_nuclear 1 245 2030 0.0 0.0 +es 06_coal 1 245 2030 0.0 0.0 +es 07_gas 1 245 2030 0.0 0.0 +es 08_non-res 1 245 2030 0.0 0.0 +es 09_hydro_pump 1 245 2030 0.0 0.0 +es 01_solar 1 246 2030 1.0 0.0 +es 02_wind_on 1 246 2030 1.0 0.0 +es 03_wind_off 1 246 2030 1.0 0.0 +es 04_res 1 246 2030 1.0 0.0 +es 05_nuclear 1 246 2030 0.0 0.0 +es 06_coal 1 246 2030 0.0 0.0 +es 07_gas 1 246 2030 0.0 0.0 +es 08_non-res 1 246 2030 0.0 0.0 +es 09_hydro_pump 1 246 2030 0.0 0.0 +es 01_solar 1 247 2030 1.0 0.0 +es 02_wind_on 1 247 2030 1.0 0.0 +es 03_wind_off 1 247 2030 1.0 0.0 +es 04_res 1 247 2030 1.0 0.0 +es 05_nuclear 1 247 2030 0.0 0.0 +es 06_coal 1 247 2030 0.0 0.0 +es 07_gas 1 247 2030 0.0 0.0 +es 08_non-res 1 247 2030 0.0 0.0 +es 09_hydro_pump 1 247 2030 0.0 0.0 +es 01_solar 1 248 2030 1.0 0.0 +es 02_wind_on 1 248 2030 1.0 0.0 +es 03_wind_off 1 248 2030 1.0 0.0 +es 04_res 1 248 2030 1.0 0.0 +es 05_nuclear 1 248 2030 0.0 0.0 +es 06_coal 1 248 2030 0.0 0.0 +es 07_gas 1 248 2030 0.0 0.0 +es 08_non-res 1 248 2030 0.0 0.0 +es 09_hydro_pump 1 248 2030 0.0 0.0 +es 01_solar 1 249 2030 1.0 0.0 +es 02_wind_on 1 249 2030 1.0 0.0 +es 03_wind_off 1 249 2030 1.0 0.0 +es 04_res 1 249 2030 1.0 0.0 +es 05_nuclear 1 249 2030 0.0 0.0 +es 06_coal 1 249 2030 0.0 0.0 +es 07_gas 1 249 2030 0.0 0.0 +es 08_non-res 1 249 2030 0.0 0.0 +es 09_hydro_pump 1 249 2030 0.0 0.0 +es 01_solar 1 250 2030 1.0 0.0 +es 02_wind_on 1 250 2030 1.0 0.0 +es 03_wind_off 1 250 2030 1.0 0.0 +es 04_res 1 250 2030 1.0 0.0 +es 05_nuclear 1 250 2030 1.0 0.0 +es 06_coal 1 250 2030 0.0 0.0 +es 07_gas 1 250 2030 0.0 0.0 +es 08_non-res 1 250 2030 0.0 0.0 +es 09_hydro_pump 1 250 2030 0.0 0.0 +es 01_solar 1 251 2030 1.0 0.0 +es 02_wind_on 1 251 2030 1.0 0.0 +es 03_wind_off 1 251 2030 1.0 0.0 +es 04_res 1 251 2030 1.0 0.0 +es 05_nuclear 1 251 2030 1.0 0.0 +es 06_coal 1 251 2030 0.0 0.0 +es 07_gas 1 251 2030 0.0 0.0 +es 08_non-res 1 251 2030 0.0 0.0 +es 09_hydro_pump 1 251 2030 0.0 0.0 +es 01_solar 1 252 2030 1.0 0.0 +es 02_wind_on 1 252 2030 1.0 0.0 +es 03_wind_off 1 252 2030 1.0 0.0 +es 04_res 1 252 2030 1.0 0.0 +es 05_nuclear 1 252 2030 1.0 0.0 +es 06_coal 1 252 2030 0.0 0.0 +es 07_gas 1 252 2030 0.0 0.0 +es 08_non-res 1 252 2030 0.0 0.0 +es 09_hydro_pump 1 252 2030 0.0 0.0 +es 01_solar 1 253 2030 1.0 0.0 +es 02_wind_on 1 253 2030 1.0 0.0 +es 03_wind_off 1 253 2030 1.0 0.0 +es 04_res 1 253 2030 1.0 0.0 +es 05_nuclear 1 253 2030 1.0 0.0 +es 06_coal 1 253 2030 0.0 0.0 +es 07_gas 1 253 2030 0.0 0.0 +es 08_non-res 1 253 2030 0.0 0.0 +es 09_hydro_pump 1 253 2030 0.0 0.0 +es 01_solar 1 254 2030 1.0 0.0 +es 02_wind_on 1 254 2030 1.0 0.0 +es 03_wind_off 1 254 2030 1.0 0.0 +es 04_res 1 254 2030 1.0 0.0 +es 05_nuclear 1 254 2030 1.0 0.0 +es 06_coal 1 254 2030 0.0 0.0 +es 07_gas 1 254 2030 0.0 0.0 +es 08_non-res 1 254 2030 0.0 0.0 +es 09_hydro_pump 1 254 2030 0.0 0.0 +es 01_solar 1 255 2030 1.0 0.0 +es 02_wind_on 1 255 2030 1.0 0.0 +es 03_wind_off 1 255 2030 1.0 0.0 +es 04_res 1 255 2030 1.0 0.0 +es 05_nuclear 1 255 2030 1.0 0.0 +es 06_coal 1 255 2030 0.0 0.0 +es 07_gas 1 255 2030 0.0 0.0 +es 08_non-res 1 255 2030 0.0 0.0 +es 09_hydro_pump 1 255 2030 0.0 0.0 +es 01_solar 1 256 2030 1.0 0.0 +es 02_wind_on 1 256 2030 1.0 0.0 +es 03_wind_off 1 256 2030 1.0 0.0 +es 04_res 1 256 2030 1.0 0.0 +es 05_nuclear 1 256 2030 1.0 0.0 +es 06_coal 1 256 2030 0.0 0.0 +es 07_gas 1 256 2030 0.0 0.0 +es 08_non-res 1 256 2030 0.0 0.0 +es 09_hydro_pump 1 256 2030 0.0 0.0 +es 01_solar 1 257 2030 1.0 0.0 +es 02_wind_on 1 257 2030 1.0 0.0 +es 03_wind_off 1 257 2030 1.0 0.0 +es 04_res 1 257 2030 1.0 0.0 +es 05_nuclear 1 257 2030 1.0 0.0 +es 06_coal 1 257 2030 0.0 0.0 +es 07_gas 1 257 2030 0.0 0.0 +es 08_non-res 1 257 2030 0.0 0.0 +es 09_hydro_pump 1 257 2030 0.0 0.0 +es 01_solar 1 258 2030 1.0 0.0 +es 02_wind_on 1 258 2030 1.0 0.0 +es 03_wind_off 1 258 2030 1.0 0.0 +es 04_res 1 258 2030 1.0 0.0 +es 05_nuclear 1 258 2030 1.0 0.0 +es 06_coal 1 258 2030 0.0 0.0 +es 07_gas 1 258 2030 0.0 0.0 +es 08_non-res 1 258 2030 0.0 0.0 +es 09_hydro_pump 1 258 2030 0.0 0.0 +es 01_solar 1 259 2030 1.0 0.0 +es 02_wind_on 1 259 2030 1.0 0.0 +es 03_wind_off 1 259 2030 1.0 0.0 +es 04_res 1 259 2030 1.0 0.0 +es 05_nuclear 1 259 2030 1.0 0.0 +es 06_coal 1 259 2030 0.0 0.0 +es 07_gas 1 259 2030 0.0 0.0 +es 08_non-res 1 259 2030 0.0 0.0 +es 09_hydro_pump 1 259 2030 0.0 0.0 +es 01_solar 1 260 2030 1.0 0.0 +es 02_wind_on 1 260 2030 1.0 0.0 +es 03_wind_off 1 260 2030 1.0 0.0 +es 04_res 1 260 2030 1.0 0.0 +es 05_nuclear 1 260 2030 1.0 0.0 +es 06_coal 1 260 2030 0.0 0.0 +es 07_gas 1 260 2030 0.0 0.0 +es 08_non-res 1 260 2030 0.0 0.0 +es 09_hydro_pump 1 260 2030 0.0 0.0 +es 01_solar 1 261 2030 1.0 0.0 +es 02_wind_on 1 261 2030 1.0 0.0 +es 03_wind_off 1 261 2030 1.0 0.0 +es 04_res 1 261 2030 1.0 0.0 +es 05_nuclear 1 261 2030 1.0 0.0 +es 06_coal 1 261 2030 0.0 0.0 +es 07_gas 1 261 2030 0.0 0.0 +es 08_non-res 1 261 2030 0.0 0.0 +es 09_hydro_pump 1 261 2030 0.0 0.0 +es 01_solar 1 262 2030 1.0 0.0 +es 02_wind_on 1 262 2030 1.0 0.0 +es 03_wind_off 1 262 2030 1.0 0.0 +es 04_res 1 262 2030 1.0 0.0 +es 05_nuclear 1 262 2030 1.0 0.0 +es 06_coal 1 262 2030 0.0 0.0 +es 07_gas 1 262 2030 0.0 0.0 +es 08_non-res 1 262 2030 0.0 0.0 +es 09_hydro_pump 1 262 2030 0.0 0.0 +es 01_solar 1 263 2030 1.0 0.0 +es 02_wind_on 1 263 2030 1.0 0.0 +es 03_wind_off 1 263 2030 1.0 0.0 +es 04_res 1 263 2030 1.0 0.0 +es 05_nuclear 1 263 2030 1.0 0.0 +es 06_coal 1 263 2030 0.0 0.0 +es 07_gas 1 263 2030 0.0 0.0 +es 08_non-res 1 263 2030 0.0 0.0 +es 09_hydro_pump 1 263 2030 0.0 0.0 +es 01_solar 1 264 2030 1.0 0.0 +es 02_wind_on 1 264 2030 1.0 0.0 +es 03_wind_off 1 264 2030 1.0 0.0 +es 04_res 1 264 2030 1.0 0.0 +es 05_nuclear 1 264 2030 1.0 0.0 +es 06_coal 1 264 2030 0.0 0.0 +es 07_gas 1 264 2030 0.0 0.0 +es 08_non-res 1 264 2030 0.0 0.0 +es 09_hydro_pump 1 264 2030 0.0 0.0 +es 01_solar 1 265 2030 1.0 0.0 +es 02_wind_on 1 265 2030 1.0 0.0 +es 03_wind_off 1 265 2030 1.0 0.0 +es 04_res 1 265 2030 1.0 0.0 +es 05_nuclear 1 265 2030 1.0 0.0 +es 06_coal 1 265 2030 0.0 0.0 +es 07_gas 1 265 2030 0.0 0.0 +es 08_non-res 1 265 2030 0.0 0.0 +es 09_hydro_pump 1 265 2030 0.0 0.0 +es 01_solar 1 266 2030 1.0 0.0 +es 02_wind_on 1 266 2030 1.0 0.0 +es 03_wind_off 1 266 2030 1.0 0.0 +es 04_res 1 266 2030 1.0 0.0 +es 05_nuclear 1 266 2030 1.0 0.0 +es 06_coal 1 266 2030 0.0 0.0 +es 07_gas 1 266 2030 0.0 0.0 +es 08_non-res 1 266 2030 0.0 0.0 +es 09_hydro_pump 1 266 2030 0.0 0.0 +es 01_solar 1 267 2030 1.0 0.0 +es 02_wind_on 1 267 2030 1.0 0.0 +es 03_wind_off 1 267 2030 1.0 0.0 +es 04_res 1 267 2030 1.0 0.0 +es 05_nuclear 1 267 2030 1.0 0.0 +es 06_coal 1 267 2030 0.0 0.0 +es 07_gas 1 267 2030 0.0 0.0 +es 08_non-res 1 267 2030 0.0 0.0 +es 09_hydro_pump 1 267 2030 0.0 0.0 +es 01_solar 1 268 2030 1.0 0.0 +es 02_wind_on 1 268 2030 1.0 0.0 +es 03_wind_off 1 268 2030 1.0 0.0 +es 04_res 1 268 2030 1.0 0.0 +es 05_nuclear 1 268 2030 1.0 0.0 +es 06_coal 1 268 2030 0.0 0.0 +es 07_gas 1 268 2030 0.0 0.0 +es 08_non-res 1 268 2030 0.0 0.0 +es 09_hydro_pump 1 268 2030 0.0 0.0 +es 01_solar 1 269 2030 1.0 0.0 +es 02_wind_on 1 269 2030 1.0 0.0 +es 03_wind_off 1 269 2030 1.0 0.0 +es 04_res 1 269 2030 1.0 0.0 +es 05_nuclear 1 269 2030 1.0 0.0 +es 06_coal 1 269 2030 0.0 0.0 +es 07_gas 1 269 2030 0.0 0.0 +es 08_non-res 1 269 2030 0.0 0.0 +es 09_hydro_pump 1 269 2030 0.0 0.0 +es 01_solar 1 270 2030 1.0 0.0 +es 02_wind_on 1 270 2030 1.0 0.0 +es 03_wind_off 1 270 2030 1.0 0.0 +es 04_res 1 270 2030 1.0 0.0 +es 05_nuclear 1 270 2030 1.0 0.0 +es 06_coal 1 270 2030 1.0 0.0 +es 07_gas 1 270 2030 0.0 0.0 +es 08_non-res 1 270 2030 0.0 0.0 +es 09_hydro_pump 1 270 2030 0.0 0.0 +es 01_solar 1 271 2030 1.0 0.0 +es 02_wind_on 1 271 2030 1.0 0.0 +es 03_wind_off 1 271 2030 1.0 0.0 +es 04_res 1 271 2030 1.0 0.0 +es 05_nuclear 1 271 2030 1.0 0.0 +es 06_coal 1 271 2030 1.0 0.0 +es 07_gas 1 271 2030 0.0 0.0 +es 08_non-res 1 271 2030 0.0 0.0 +es 09_hydro_pump 1 271 2030 0.0 0.0 +es 01_solar 1 272 2030 1.0 0.0 +es 02_wind_on 1 272 2030 1.0 0.0 +es 03_wind_off 1 272 2030 1.0 0.0 +es 04_res 1 272 2030 1.0 0.0 +es 05_nuclear 1 272 2030 1.0 0.0 +es 06_coal 1 272 2030 1.0 0.0 +es 07_gas 1 272 2030 0.0 0.0 +es 08_non-res 1 272 2030 0.0 0.0 +es 09_hydro_pump 1 272 2030 0.0 0.0 +es 01_solar 1 273 2030 1.0 0.0 +es 02_wind_on 1 273 2030 1.0 0.0 +es 03_wind_off 1 273 2030 1.0 0.0 +es 04_res 1 273 2030 1.0 0.0 +es 05_nuclear 1 273 2030 1.0 0.0 +es 06_coal 1 273 2030 1.0 0.0 +es 07_gas 1 273 2030 0.0 0.0 +es 08_non-res 1 273 2030 0.0 0.0 +es 09_hydro_pump 1 273 2030 0.0 0.0 +es 01_solar 1 274 2030 1.0 0.0 +es 02_wind_on 1 274 2030 1.0 0.0 +es 03_wind_off 1 274 2030 1.0 0.0 +es 04_res 1 274 2030 1.0 0.0 +es 05_nuclear 1 274 2030 1.0 0.0 +es 06_coal 1 274 2030 1.0 0.0 +es 07_gas 1 274 2030 0.0 0.0 +es 08_non-res 1 274 2030 0.0 0.0 +es 09_hydro_pump 1 274 2030 0.0 0.0 +es 01_solar 1 275 2030 1.0 0.0 +es 02_wind_on 1 275 2030 1.0 0.0 +es 03_wind_off 1 275 2030 1.0 0.0 +es 04_res 1 275 2030 1.0 0.0 +es 05_nuclear 1 275 2030 1.0 0.0 +es 06_coal 1 275 2030 1.0 0.0 +es 07_gas 1 275 2030 0.0 0.0 +es 08_non-res 1 275 2030 0.0 0.0 +es 09_hydro_pump 1 275 2030 0.0 0.0 +es 01_solar 1 276 2030 1.0 0.0 +es 02_wind_on 1 276 2030 1.0 0.0 +es 03_wind_off 1 276 2030 1.0 0.0 +es 04_res 1 276 2030 1.0 0.0 +es 05_nuclear 1 276 2030 1.0 0.0 +es 06_coal 1 276 2030 1.0 0.0 +es 07_gas 1 276 2030 0.0 0.0 +es 08_non-res 1 276 2030 0.0 0.0 +es 09_hydro_pump 1 276 2030 0.0 0.0 +es 01_solar 1 277 2030 1.0 0.0 +es 02_wind_on 1 277 2030 1.0 0.0 +es 03_wind_off 1 277 2030 1.0 0.0 +es 04_res 1 277 2030 1.0 0.0 +es 05_nuclear 1 277 2030 1.0 0.0 +es 06_coal 1 277 2030 1.0 0.0 +es 07_gas 1 277 2030 0.0 0.0 +es 08_non-res 1 277 2030 0.0 0.0 +es 09_hydro_pump 1 277 2030 0.0 0.0 +es 01_solar 1 278 2030 1.0 0.0 +es 02_wind_on 1 278 2030 1.0 0.0 +es 03_wind_off 1 278 2030 1.0 0.0 +es 04_res 1 278 2030 1.0 0.0 +es 05_nuclear 1 278 2030 1.0 0.0 +es 06_coal 1 278 2030 1.0 0.0 +es 07_gas 1 278 2030 0.0 0.0 +es 08_non-res 1 278 2030 0.0 0.0 +es 09_hydro_pump 1 278 2030 0.0 0.0 +es 01_solar 1 279 2030 1.0 0.0 +es 02_wind_on 1 279 2030 1.0 0.0 +es 03_wind_off 1 279 2030 1.0 0.0 +es 04_res 1 279 2030 1.0 0.0 +es 05_nuclear 1 279 2030 1.0 0.0 +es 06_coal 1 279 2030 1.0 0.0 +es 07_gas 1 279 2030 0.0 0.0 +es 08_non-res 1 279 2030 0.0 0.0 +es 09_hydro_pump 1 279 2030 0.0 0.0 +es 01_solar 1 280 2030 1.0 0.0 +es 02_wind_on 1 280 2030 1.0 0.0 +es 03_wind_off 1 280 2030 1.0 0.0 +es 04_res 1 280 2030 1.0 0.0 +es 05_nuclear 1 280 2030 1.0 0.0 +es 06_coal 1 280 2030 1.0 0.0 +es 07_gas 1 280 2030 0.0 0.0 +es 08_non-res 1 280 2030 0.0 0.0 +es 09_hydro_pump 1 280 2030 0.0 0.0 +es 01_solar 1 281 2030 1.0 0.0 +es 02_wind_on 1 281 2030 1.0 0.0 +es 03_wind_off 1 281 2030 1.0 0.0 +es 04_res 1 281 2030 1.0 0.0 +es 05_nuclear 1 281 2030 1.0 0.0 +es 06_coal 1 281 2030 1.0 0.0 +es 07_gas 1 281 2030 0.0 0.0 +es 08_non-res 1 281 2030 0.0 0.0 +es 09_hydro_pump 1 281 2030 0.0 0.0 +es 01_solar 1 282 2030 1.0 0.0 +es 02_wind_on 1 282 2030 1.0 0.0 +es 03_wind_off 1 282 2030 1.0 0.0 +es 04_res 1 282 2030 1.0 0.0 +es 05_nuclear 1 282 2030 1.0 0.0 +es 06_coal 1 282 2030 1.0 0.0 +es 07_gas 1 282 2030 0.0 0.0 +es 08_non-res 1 282 2030 0.0 0.0 +es 09_hydro_pump 1 282 2030 0.0 0.0 +es 01_solar 1 283 2030 1.0 0.0 +es 02_wind_on 1 283 2030 1.0 0.0 +es 03_wind_off 1 283 2030 1.0 0.0 +es 04_res 1 283 2030 1.0 0.0 +es 05_nuclear 1 283 2030 1.0 0.0 +es 06_coal 1 283 2030 1.0 0.0 +es 07_gas 1 283 2030 0.0 0.0 +es 08_non-res 1 283 2030 0.0 0.0 +es 09_hydro_pump 1 283 2030 0.0 0.0 +es 01_solar 1 284 2030 1.0 0.0 +es 02_wind_on 1 284 2030 1.0 0.0 +es 03_wind_off 1 284 2030 1.0 0.0 +es 04_res 1 284 2030 1.0 0.0 +es 05_nuclear 1 284 2030 1.0 0.0 +es 06_coal 1 284 2030 1.0 0.0 +es 07_gas 1 284 2030 0.0 0.0 +es 08_non-res 1 284 2030 0.0 0.0 +es 09_hydro_pump 1 284 2030 0.0 0.0 +es 01_solar 1 285 2030 1.0 0.0 +es 02_wind_on 1 285 2030 1.0 0.0 +es 03_wind_off 1 285 2030 1.0 0.0 +es 04_res 1 285 2030 1.0 0.0 +es 05_nuclear 1 285 2030 1.0 0.0 +es 06_coal 1 285 2030 1.0 0.0 +es 07_gas 1 285 2030 0.0 0.0 +es 08_non-res 1 285 2030 0.0 0.0 +es 09_hydro_pump 1 285 2030 0.0 0.0 +es 01_solar 1 286 2030 1.0 0.0 +es 02_wind_on 1 286 2030 1.0 0.0 +es 03_wind_off 1 286 2030 1.0 0.0 +es 04_res 1 286 2030 1.0 0.0 +es 05_nuclear 1 286 2030 1.0 0.0 +es 06_coal 1 286 2030 1.0 0.0 +es 07_gas 1 286 2030 0.0 0.0 +es 08_non-res 1 286 2030 0.0 0.0 +es 09_hydro_pump 1 286 2030 0.0 0.0 +es 01_solar 1 287 2030 1.0 0.0 +es 02_wind_on 1 287 2030 1.0 0.0 +es 03_wind_off 1 287 2030 1.0 0.0 +es 04_res 1 287 2030 1.0 0.0 +es 05_nuclear 1 287 2030 1.0 0.0 +es 06_coal 1 287 2030 1.0 0.0 +es 07_gas 1 287 2030 0.0 0.0 +es 08_non-res 1 287 2030 0.0 0.0 +es 09_hydro_pump 1 287 2030 0.0 0.0 +es 01_solar 1 288 2030 1.0 0.0 +es 02_wind_on 1 288 2030 1.0 0.0 +es 03_wind_off 1 288 2030 1.0 0.0 +es 04_res 1 288 2030 1.0 0.0 +es 05_nuclear 1 288 2030 1.0 0.0 +es 06_coal 1 288 2030 1.0 0.0 +es 07_gas 1 288 2030 0.0 0.0 +es 08_non-res 1 288 2030 0.0 0.0 +es 09_hydro_pump 1 288 2030 0.0 0.0 +es 01_solar 1 289 2030 1.0 0.0 +es 02_wind_on 1 289 2030 1.0 0.0 +es 03_wind_off 1 289 2030 1.0 0.0 +es 04_res 1 289 2030 1.0 0.0 +es 05_nuclear 1 289 2030 1.0 0.0 +es 06_coal 1 289 2030 1.0 0.0 +es 07_gas 1 289 2030 0.0 0.0 +es 08_non-res 1 289 2030 0.0 0.0 +es 09_hydro_pump 1 289 2030 0.0 0.0 +es 01_solar 1 290 2030 1.0 0.0 +es 02_wind_on 1 290 2030 1.0 0.0 +es 03_wind_off 1 290 2030 1.0 0.0 +es 04_res 1 290 2030 1.0 0.0 +es 05_nuclear 1 290 2030 1.0 0.0 +es 06_coal 1 290 2030 1.0 0.0 +es 07_gas 1 290 2030 1.0 0.0 +es 08_non-res 1 290 2030 0.0 0.0 +es 09_hydro_pump 1 290 2030 0.0 0.0 +es 01_solar 1 291 2030 1.0 0.0 +es 02_wind_on 1 291 2030 1.0 0.0 +es 03_wind_off 1 291 2030 1.0 0.0 +es 04_res 1 291 2030 1.0 0.0 +es 05_nuclear 1 291 2030 1.0 0.0 +es 06_coal 1 291 2030 1.0 0.0 +es 07_gas 1 291 2030 1.0 0.0 +es 08_non-res 1 291 2030 0.0 0.0 +es 09_hydro_pump 1 291 2030 0.0 0.0 +es 01_solar 1 292 2030 1.0 0.0 +es 02_wind_on 1 292 2030 1.0 0.0 +es 03_wind_off 1 292 2030 1.0 0.0 +es 04_res 1 292 2030 1.0 0.0 +es 05_nuclear 1 292 2030 1.0 0.0 +es 06_coal 1 292 2030 1.0 0.0 +es 07_gas 1 292 2030 1.0 0.0 +es 08_non-res 1 292 2030 0.0 0.0 +es 09_hydro_pump 1 292 2030 0.0 0.0 +es 01_solar 1 293 2030 1.0 0.0 +es 02_wind_on 1 293 2030 1.0 0.0 +es 03_wind_off 1 293 2030 1.0 0.0 +es 04_res 1 293 2030 1.0 0.0 +es 05_nuclear 1 293 2030 1.0 0.0 +es 06_coal 1 293 2030 1.0 0.0 +es 07_gas 1 293 2030 1.0 0.0 +es 08_non-res 1 293 2030 0.0 0.0 +es 09_hydro_pump 1 293 2030 0.0 0.0 +es 01_solar 1 294 2030 1.0 0.0 +es 02_wind_on 1 294 2030 1.0 0.0 +es 03_wind_off 1 294 2030 1.0 0.0 +es 04_res 1 294 2030 1.0 0.0 +es 05_nuclear 1 294 2030 1.0 0.0 +es 06_coal 1 294 2030 1.0 0.0 +es 07_gas 1 294 2030 1.0 0.0 +es 08_non-res 1 294 2030 0.0 0.0 +es 09_hydro_pump 1 294 2030 0.0 0.0 +es 01_solar 1 295 2030 1.0 0.0 +es 02_wind_on 1 295 2030 1.0 0.0 +es 03_wind_off 1 295 2030 1.0 0.0 +es 04_res 1 295 2030 1.0 0.0 +es 05_nuclear 1 295 2030 1.0 0.0 +es 06_coal 1 295 2030 1.0 0.0 +es 07_gas 1 295 2030 1.0 0.0 +es 08_non-res 1 295 2030 0.0 0.0 +es 09_hydro_pump 1 295 2030 0.0 0.0 +es 01_solar 1 296 2030 1.0 0.0 +es 02_wind_on 1 296 2030 1.0 0.0 +es 03_wind_off 1 296 2030 1.0 0.0 +es 04_res 1 296 2030 1.0 0.0 +es 05_nuclear 1 296 2030 1.0 0.0 +es 06_coal 1 296 2030 1.0 0.0 +es 07_gas 1 296 2030 1.0 0.0 +es 08_non-res 1 296 2030 0.0 0.0 +es 09_hydro_pump 1 296 2030 0.0 0.0 +es 01_solar 1 297 2030 1.0 0.0 +es 02_wind_on 1 297 2030 1.0 0.0 +es 03_wind_off 1 297 2030 1.0 0.0 +es 04_res 1 297 2030 1.0 0.0 +es 05_nuclear 1 297 2030 1.0 0.0 +es 06_coal 1 297 2030 1.0 0.0 +es 07_gas 1 297 2030 1.0 0.0 +es 08_non-res 1 297 2030 0.0 0.0 +es 09_hydro_pump 1 297 2030 0.0 0.0 +es 01_solar 1 298 2030 1.0 0.0 +es 02_wind_on 1 298 2030 1.0 0.0 +es 03_wind_off 1 298 2030 1.0 0.0 +es 04_res 1 298 2030 1.0 0.0 +es 05_nuclear 1 298 2030 1.0 0.0 +es 06_coal 1 298 2030 1.0 0.0 +es 07_gas 1 298 2030 1.0 0.0 +es 08_non-res 1 298 2030 0.0 0.0 +es 09_hydro_pump 1 298 2030 0.0 0.0 +es 01_solar 1 299 2030 1.0 0.0 +es 02_wind_on 1 299 2030 1.0 0.0 +es 03_wind_off 1 299 2030 1.0 0.0 +es 04_res 1 299 2030 1.0 0.0 +es 05_nuclear 1 299 2030 1.0 0.0 +es 06_coal 1 299 2030 1.0 0.0 +es 07_gas 1 299 2030 1.0 0.0 +es 08_non-res 1 299 2030 0.0 0.0 +es 09_hydro_pump 1 299 2030 0.0 0.0 +es 01_solar 1 300 2030 1.0 0.0 +es 02_wind_on 1 300 2030 1.0 0.0 +es 03_wind_off 1 300 2030 1.0 0.0 +es 04_res 1 300 2030 1.0 0.0 +es 05_nuclear 1 300 2030 1.0 0.0 +es 06_coal 1 300 2030 1.0 0.0 +es 07_gas 1 300 2030 1.0 0.0 +es 08_non-res 1 300 2030 0.0 0.0 +es 09_hydro_pump 1 300 2030 0.0 0.0 +es 01_solar 1 301 2030 1.0 0.0 +es 02_wind_on 1 301 2030 1.0 0.0 +es 03_wind_off 1 301 2030 1.0 0.0 +es 04_res 1 301 2030 1.0 0.0 +es 05_nuclear 1 301 2030 1.0 0.0 +es 06_coal 1 301 2030 1.0 0.0 +es 07_gas 1 301 2030 1.0 0.0 +es 08_non-res 1 301 2030 0.0 0.0 +es 09_hydro_pump 1 301 2030 0.0 0.0 +es 01_solar 1 302 2030 1.0 0.0 +es 02_wind_on 1 302 2030 1.0 0.0 +es 03_wind_off 1 302 2030 1.0 0.0 +es 04_res 1 302 2030 1.0 0.0 +es 05_nuclear 1 302 2030 1.0 0.0 +es 06_coal 1 302 2030 1.0 0.0 +es 07_gas 1 302 2030 1.0 0.0 +es 08_non-res 1 302 2030 0.0 0.0 +es 09_hydro_pump 1 302 2030 0.0 0.0 +es 01_solar 1 303 2030 1.0 0.0 +es 02_wind_on 1 303 2030 1.0 0.0 +es 03_wind_off 1 303 2030 1.0 0.0 +es 04_res 1 303 2030 1.0 0.0 +es 05_nuclear 1 303 2030 1.0 0.0 +es 06_coal 1 303 2030 1.0 0.0 +es 07_gas 1 303 2030 1.0 0.0 +es 08_non-res 1 303 2030 0.0 0.0 +es 09_hydro_pump 1 303 2030 0.0 0.0 +es 01_solar 1 304 2030 1.0 0.0 +es 02_wind_on 1 304 2030 1.0 0.0 +es 03_wind_off 1 304 2030 1.0 0.0 +es 04_res 1 304 2030 1.0 0.0 +es 05_nuclear 1 304 2030 1.0 0.0 +es 06_coal 1 304 2030 1.0 0.0 +es 07_gas 1 304 2030 1.0 0.0 +es 08_non-res 1 304 2030 0.0 0.0 +es 09_hydro_pump 1 304 2030 0.0 0.0 +es 01_solar 1 305 2030 1.0 0.0 +es 02_wind_on 1 305 2030 1.0 0.0 +es 03_wind_off 1 305 2030 1.0 0.0 +es 04_res 1 305 2030 1.0 0.0 +es 05_nuclear 1 305 2030 1.0 0.0 +es 06_coal 1 305 2030 1.0 0.0 +es 07_gas 1 305 2030 1.0 0.0 +es 08_non-res 1 305 2030 0.0 0.0 +es 09_hydro_pump 1 305 2030 0.0 0.0 +es 01_solar 1 306 2030 1.0 0.0 +es 02_wind_on 1 306 2030 1.0 0.0 +es 03_wind_off 1 306 2030 1.0 0.0 +es 04_res 1 306 2030 1.0 0.0 +es 05_nuclear 1 306 2030 1.0 0.0 +es 06_coal 1 306 2030 1.0 0.0 +es 07_gas 1 306 2030 1.0 0.0 +es 08_non-res 1 306 2030 0.0 0.0 +es 09_hydro_pump 1 306 2030 0.0 0.0 +es 01_solar 1 307 2030 1.0 0.0 +es 02_wind_on 1 307 2030 1.0 0.0 +es 03_wind_off 1 307 2030 1.0 0.0 +es 04_res 1 307 2030 1.0 0.0 +es 05_nuclear 1 307 2030 1.0 0.0 +es 06_coal 1 307 2030 1.0 0.0 +es 07_gas 1 307 2030 1.0 0.0 +es 08_non-res 1 307 2030 0.0 0.0 +es 09_hydro_pump 1 307 2030 0.0 0.0 +es 01_solar 1 308 2030 1.0 0.0 +es 02_wind_on 1 308 2030 1.0 0.0 +es 03_wind_off 1 308 2030 1.0 0.0 +es 04_res 1 308 2030 1.0 0.0 +es 05_nuclear 1 308 2030 1.0 0.0 +es 06_coal 1 308 2030 1.0 0.0 +es 07_gas 1 308 2030 1.0 0.0 +es 08_non-res 1 308 2030 0.0 0.0 +es 09_hydro_pump 1 308 2030 0.0 0.0 +es 01_solar 1 309 2030 1.0 0.0 +es 02_wind_on 1 309 2030 1.0 0.0 +es 03_wind_off 1 309 2030 1.0 0.0 +es 04_res 1 309 2030 1.0 0.0 +es 05_nuclear 1 309 2030 1.0 0.0 +es 06_coal 1 309 2030 1.0 0.0 +es 07_gas 1 309 2030 1.0 0.0 +es 08_non-res 1 309 2030 0.0 0.0 +es 09_hydro_pump 1 309 2030 0.0 0.0 +es 01_solar 1 310 2030 1.0 0.0 +es 02_wind_on 1 310 2030 1.0 0.0 +es 03_wind_off 1 310 2030 1.0 0.0 +es 04_res 1 310 2030 1.0 0.0 +es 05_nuclear 1 310 2030 1.0 0.0 +es 06_coal 1 310 2030 1.0 0.0 +es 07_gas 1 310 2030 1.0 0.0 +es 08_non-res 1 310 2030 1.0 0.0 +es 09_hydro_pump 1 310 2030 0.0 0.0 +es 01_solar 1 311 2030 1.0 0.0 +es 02_wind_on 1 311 2030 1.0 0.0 +es 03_wind_off 1 311 2030 1.0 0.0 +es 04_res 1 311 2030 1.0 0.0 +es 05_nuclear 1 311 2030 1.0 0.0 +es 06_coal 1 311 2030 1.0 0.0 +es 07_gas 1 311 2030 1.0 0.0 +es 08_non-res 1 311 2030 1.0 0.0 +es 09_hydro_pump 1 311 2030 0.0 0.0 +es 01_solar 1 312 2030 1.0 0.0 +es 02_wind_on 1 312 2030 1.0 0.0 +es 03_wind_off 1 312 2030 1.0 0.0 +es 04_res 1 312 2030 1.0 0.0 +es 05_nuclear 1 312 2030 1.0 0.0 +es 06_coal 1 312 2030 1.0 0.0 +es 07_gas 1 312 2030 1.0 0.0 +es 08_non-res 1 312 2030 1.0 0.0 +es 09_hydro_pump 1 312 2030 0.0 0.0 +es 01_solar 1 313 2030 1.0 0.0 +es 02_wind_on 1 313 2030 1.0 0.0 +es 03_wind_off 1 313 2030 1.0 0.0 +es 04_res 1 313 2030 1.0 0.0 +es 05_nuclear 1 313 2030 1.0 0.0 +es 06_coal 1 313 2030 1.0 0.0 +es 07_gas 1 313 2030 1.0 0.0 +es 08_non-res 1 313 2030 1.0 0.0 +es 09_hydro_pump 1 313 2030 0.0 0.0 +es 01_solar 1 314 2030 1.0 0.0 +es 02_wind_on 1 314 2030 1.0 0.0 +es 03_wind_off 1 314 2030 1.0 0.0 +es 04_res 1 314 2030 1.0 0.0 +es 05_nuclear 1 314 2030 1.0 0.0 +es 06_coal 1 314 2030 1.0 0.0 +es 07_gas 1 314 2030 1.0 0.0 +es 08_non-res 1 314 2030 1.0 0.0 +es 09_hydro_pump 1 314 2030 0.0 0.0 +es 01_solar 1 315 2030 1.0 0.0 +es 02_wind_on 1 315 2030 1.0 0.0 +es 03_wind_off 1 315 2030 1.0 0.0 +es 04_res 1 315 2030 1.0 0.0 +es 05_nuclear 1 315 2030 1.0 0.0 +es 06_coal 1 315 2030 1.0 0.0 +es 07_gas 1 315 2030 1.0 0.0 +es 08_non-res 1 315 2030 1.0 0.0 +es 09_hydro_pump 1 315 2030 0.0 0.0 +es 01_solar 1 316 2030 1.0 0.0 +es 02_wind_on 1 316 2030 1.0 0.0 +es 03_wind_off 1 316 2030 1.0 0.0 +es 04_res 1 316 2030 1.0 0.0 +es 05_nuclear 1 316 2030 1.0 0.0 +es 06_coal 1 316 2030 1.0 0.0 +es 07_gas 1 316 2030 1.0 0.0 +es 08_non-res 1 316 2030 1.0 0.0 +es 09_hydro_pump 1 316 2030 0.0 0.0 +es 01_solar 1 317 2030 1.0 0.0 +es 02_wind_on 1 317 2030 1.0 0.0 +es 03_wind_off 1 317 2030 1.0 0.0 +es 04_res 1 317 2030 1.0 0.0 +es 05_nuclear 1 317 2030 1.0 0.0 +es 06_coal 1 317 2030 1.0 0.0 +es 07_gas 1 317 2030 1.0 0.0 +es 08_non-res 1 317 2030 1.0 0.0 +es 09_hydro_pump 1 317 2030 0.0 0.0 +es 01_solar 1 318 2030 1.0 0.0 +es 02_wind_on 1 318 2030 1.0 0.0 +es 03_wind_off 1 318 2030 1.0 0.0 +es 04_res 1 318 2030 1.0 0.0 +es 05_nuclear 1 318 2030 1.0 0.0 +es 06_coal 1 318 2030 1.0 0.0 +es 07_gas 1 318 2030 1.0 0.0 +es 08_non-res 1 318 2030 1.0 0.0 +es 09_hydro_pump 1 318 2030 0.0 0.0 +es 01_solar 1 319 2030 1.0 0.0 +es 02_wind_on 1 319 2030 1.0 0.0 +es 03_wind_off 1 319 2030 1.0 0.0 +es 04_res 1 319 2030 1.0 0.0 +es 05_nuclear 1 319 2030 1.0 0.0 +es 06_coal 1 319 2030 1.0 0.0 +es 07_gas 1 319 2030 1.0 0.0 +es 08_non-res 1 319 2030 1.0 0.0 +es 09_hydro_pump 1 319 2030 0.0 0.0 +es 01_solar 1 320 2030 1.0 0.0 +es 02_wind_on 1 320 2030 1.0 0.0 +es 03_wind_off 1 320 2030 1.0 0.0 +es 04_res 1 320 2030 1.0 0.0 +es 05_nuclear 1 320 2030 1.0 0.0 +es 06_coal 1 320 2030 1.0 0.0 +es 07_gas 1 320 2030 1.0 0.0 +es 08_non-res 1 320 2030 1.0 0.0 +es 09_hydro_pump 1 320 2030 0.0 0.0 +es 01_solar 1 321 2030 1.0 0.0 +es 02_wind_on 1 321 2030 1.0 0.0 +es 03_wind_off 1 321 2030 1.0 0.0 +es 04_res 1 321 2030 1.0 0.0 +es 05_nuclear 1 321 2030 1.0 0.0 +es 06_coal 1 321 2030 1.0 0.0 +es 07_gas 1 321 2030 1.0 0.0 +es 08_non-res 1 321 2030 1.0 0.0 +es 09_hydro_pump 1 321 2030 0.0 0.0 +es 01_solar 1 322 2030 1.0 0.0 +es 02_wind_on 1 322 2030 1.0 0.0 +es 03_wind_off 1 322 2030 1.0 0.0 +es 04_res 1 322 2030 1.0 0.0 +es 05_nuclear 1 322 2030 1.0 0.0 +es 06_coal 1 322 2030 1.0 0.0 +es 07_gas 1 322 2030 1.0 0.0 +es 08_non-res 1 322 2030 1.0 0.0 +es 09_hydro_pump 1 322 2030 0.0 0.0 +es 01_solar 1 323 2030 1.0 0.0 +es 02_wind_on 1 323 2030 1.0 0.0 +es 03_wind_off 1 323 2030 1.0 0.0 +es 04_res 1 323 2030 1.0 0.0 +es 05_nuclear 1 323 2030 1.0 0.0 +es 06_coal 1 323 2030 1.0 0.0 +es 07_gas 1 323 2030 1.0 0.0 +es 08_non-res 1 323 2030 1.0 0.0 +es 09_hydro_pump 1 323 2030 0.0 0.0 +es 01_solar 1 324 2030 1.0 0.0 +es 02_wind_on 1 324 2030 1.0 0.0 +es 03_wind_off 1 324 2030 1.0 0.0 +es 04_res 1 324 2030 1.0 0.0 +es 05_nuclear 1 324 2030 1.0 0.0 +es 06_coal 1 324 2030 1.0 0.0 +es 07_gas 1 324 2030 1.0 0.0 +es 08_non-res 1 324 2030 1.0 0.0 +es 09_hydro_pump 1 324 2030 0.0 0.0 +es 01_solar 1 325 2030 1.0 0.0 +es 02_wind_on 1 325 2030 1.0 0.0 +es 03_wind_off 1 325 2030 1.0 0.0 +es 04_res 1 325 2030 1.0 0.0 +es 05_nuclear 1 325 2030 1.0 0.0 +es 06_coal 1 325 2030 1.0 0.0 +es 07_gas 1 325 2030 1.0 0.0 +es 08_non-res 1 325 2030 1.0 0.0 +es 09_hydro_pump 1 325 2030 0.0 0.0 +es 01_solar 1 326 2030 1.0 0.0 +es 02_wind_on 1 326 2030 1.0 0.0 +es 03_wind_off 1 326 2030 1.0 0.0 +es 04_res 1 326 2030 1.0 0.0 +es 05_nuclear 1 326 2030 1.0 0.0 +es 06_coal 1 326 2030 1.0 0.0 +es 07_gas 1 326 2030 1.0 0.0 +es 08_non-res 1 326 2030 1.0 0.0 +es 09_hydro_pump 1 326 2030 0.0 0.0 +es 01_solar 1 327 2030 1.0 0.0 +es 02_wind_on 1 327 2030 1.0 0.0 +es 03_wind_off 1 327 2030 1.0 0.0 +es 04_res 1 327 2030 1.0 0.0 +es 05_nuclear 1 327 2030 1.0 0.0 +es 06_coal 1 327 2030 1.0 0.0 +es 07_gas 1 327 2030 1.0 0.0 +es 08_non-res 1 327 2030 1.0 0.0 +es 09_hydro_pump 1 327 2030 0.0 0.0 +es 01_solar 1 328 2030 1.0 0.0 +es 02_wind_on 1 328 2030 1.0 0.0 +es 03_wind_off 1 328 2030 1.0 0.0 +es 04_res 1 328 2030 1.0 0.0 +es 05_nuclear 1 328 2030 1.0 0.0 +es 06_coal 1 328 2030 1.0 0.0 +es 07_gas 1 328 2030 1.0 0.0 +es 08_non-res 1 328 2030 1.0 0.0 +es 09_hydro_pump 1 328 2030 0.0 0.0 +es 01_solar 1 329 2030 1.0 0.0 +es 02_wind_on 1 329 2030 1.0 0.0 +es 03_wind_off 1 329 2030 1.0 0.0 +es 04_res 1 329 2030 1.0 0.0 +es 05_nuclear 1 329 2030 1.0 0.0 +es 06_coal 1 329 2030 1.0 0.0 +es 07_gas 1 329 2030 1.0 0.0 +es 08_non-res 1 329 2030 1.0 0.0 +es 09_hydro_pump 1 329 2030 0.0 0.0 +es 01_solar 1 330 2030 1.0 0.0 +es 02_wind_on 1 330 2030 1.0 0.0 +es 03_wind_off 1 330 2030 1.0 0.0 +es 04_res 1 330 2030 1.0 0.0 +es 05_nuclear 1 330 2030 1.0 0.0 +es 06_coal 1 330 2030 1.0 0.0 +es 07_gas 1 330 2030 1.0 0.0 +es 08_non-res 1 330 2030 1.0 0.0 +es 09_hydro_pump 1 330 2030 1.0 0.0 +es 01_solar 1 331 2030 1.0 0.0 +es 02_wind_on 1 331 2030 1.0 0.0 +es 03_wind_off 1 331 2030 1.0 0.0 +es 04_res 1 331 2030 1.0 0.0 +es 05_nuclear 1 331 2030 1.0 0.0 +es 06_coal 1 331 2030 1.0 0.0 +es 07_gas 1 331 2030 1.0 0.0 +es 08_non-res 1 331 2030 1.0 0.0 +es 09_hydro_pump 1 331 2030 1.0 0.0 +es 01_solar 1 332 2030 1.0 0.0 +es 02_wind_on 1 332 2030 1.0 0.0 +es 03_wind_off 1 332 2030 1.0 0.0 +es 04_res 1 332 2030 1.0 0.0 +es 05_nuclear 1 332 2030 1.0 0.0 +es 06_coal 1 332 2030 1.0 0.0 +es 07_gas 1 332 2030 1.0 0.0 +es 08_non-res 1 332 2030 1.0 0.0 +es 09_hydro_pump 1 332 2030 1.0 0.0 +es 01_solar 1 333 2030 1.0 0.0 +es 02_wind_on 1 333 2030 1.0 0.0 +es 03_wind_off 1 333 2030 1.0 0.0 +es 04_res 1 333 2030 1.0 0.0 +es 05_nuclear 1 333 2030 1.0 0.0 +es 06_coal 1 333 2030 1.0 0.0 +es 07_gas 1 333 2030 1.0 0.0 +es 08_non-res 1 333 2030 1.0 0.0 +es 09_hydro_pump 1 333 2030 1.0 0.0 +es 01_solar 1 334 2030 1.0 0.0 +es 02_wind_on 1 334 2030 1.0 0.0 +es 03_wind_off 1 334 2030 1.0 0.0 +es 04_res 1 334 2030 1.0 0.0 +es 05_nuclear 1 334 2030 1.0 0.0 +es 06_coal 1 334 2030 1.0 0.0 +es 07_gas 1 334 2030 1.0 0.0 +es 08_non-res 1 334 2030 1.0 0.0 +es 09_hydro_pump 1 334 2030 1.0 0.0 +es 01_solar 1 335 2030 1.0 0.0 +es 02_wind_on 1 335 2030 1.0 0.0 +es 03_wind_off 1 335 2030 1.0 0.0 +es 04_res 1 335 2030 1.0 0.0 +es 05_nuclear 1 335 2030 1.0 0.0 +es 06_coal 1 335 2030 1.0 0.0 +es 07_gas 1 335 2030 1.0 0.0 +es 08_non-res 1 335 2030 1.0 0.0 +es 09_hydro_pump 1 335 2030 1.0 0.0 +es 01_solar 1 336 2030 1.0 0.0 +es 02_wind_on 1 336 2030 1.0 0.0 +es 03_wind_off 1 336 2030 1.0 0.0 +es 04_res 1 336 2030 1.0 0.0 +es 05_nuclear 1 336 2030 1.0 0.0 +es 06_coal 1 336 2030 1.0 0.0 +es 07_gas 1 336 2030 1.0 0.0 +es 08_non-res 1 336 2030 1.0 0.0 +es 09_hydro_pump 1 336 2030 1.0 0.0 +fr 01_solar 1 1 2030 0.0 0.0 +fr 02_wind_on 1 1 2030 0.0 0.0 +fr 03_wind_off 1 1 2030 0.0 0.0 +fr 04_res 1 1 2030 0.0 0.0 +fr 05_nuclear 1 1 2030 0.0 0.0 +fr 06_coal 1 1 2030 0.0 0.0 +fr 07_gas 1 1 2030 0.0 0.0 +fr 08_non-res 1 1 2030 0.0 0.0 +fr 09_hydro_pump 1 1 2030 0.0 0.0 +fr 01_solar 1 2 2030 1.0 0.0 +fr 02_wind_on 1 2 2030 0.0 0.0 +fr 03_wind_off 1 2 2030 0.0 0.0 +fr 04_res 1 2 2030 0.0 0.0 +fr 05_nuclear 1 2 2030 0.0 0.0 +fr 06_coal 1 2 2030 0.0 0.0 +fr 07_gas 1 2 2030 0.0 0.0 +fr 08_non-res 1 2 2030 0.0 0.0 +fr 09_hydro_pump 1 2 2030 0.0 0.0 +fr 01_solar 1 3 2030 1.0 0.0 +fr 02_wind_on 1 3 2030 0.0 0.0 +fr 03_wind_off 1 3 2030 0.0 0.0 +fr 04_res 1 3 2030 0.0 0.0 +fr 05_nuclear 1 3 2030 0.0 0.0 +fr 06_coal 1 3 2030 0.0 0.0 +fr 07_gas 1 3 2030 0.0 0.0 +fr 08_non-res 1 3 2030 0.0 0.0 +fr 09_hydro_pump 1 3 2030 0.0 0.0 +fr 01_solar 1 4 2030 1.0 0.0 +fr 02_wind_on 1 4 2030 0.0 0.0 +fr 03_wind_off 1 4 2030 0.0 0.0 +fr 04_res 1 4 2030 0.0 0.0 +fr 05_nuclear 1 4 2030 0.0 0.0 +fr 06_coal 1 4 2030 0.0 0.0 +fr 07_gas 1 4 2030 0.0 0.0 +fr 08_non-res 1 4 2030 0.0 0.0 +fr 09_hydro_pump 1 4 2030 0.0 0.0 +fr 01_solar 1 5 2030 1.0 0.0 +fr 02_wind_on 1 5 2030 0.0 0.0 +fr 03_wind_off 1 5 2030 0.0 0.0 +fr 04_res 1 5 2030 0.0 0.0 +fr 05_nuclear 1 5 2030 0.0 0.0 +fr 06_coal 1 5 2030 0.0 0.0 +fr 07_gas 1 5 2030 0.0 0.0 +fr 08_non-res 1 5 2030 0.0 0.0 +fr 09_hydro_pump 1 5 2030 0.0 0.0 +fr 01_solar 1 6 2030 1.0 0.0 +fr 02_wind_on 1 6 2030 0.0 0.0 +fr 03_wind_off 1 6 2030 0.0 0.0 +fr 04_res 1 6 2030 0.0 0.0 +fr 05_nuclear 1 6 2030 0.0 0.0 +fr 06_coal 1 6 2030 0.0 0.0 +fr 07_gas 1 6 2030 0.0 0.0 +fr 08_non-res 1 6 2030 0.0 0.0 +fr 09_hydro_pump 1 6 2030 0.0 0.0 +fr 01_solar 1 7 2030 1.0 0.0 +fr 02_wind_on 1 7 2030 0.0 0.0 +fr 03_wind_off 1 7 2030 0.0 0.0 +fr 04_res 1 7 2030 0.0 0.0 +fr 05_nuclear 1 7 2030 0.0 0.0 +fr 06_coal 1 7 2030 0.0 0.0 +fr 07_gas 1 7 2030 0.0 0.0 +fr 08_non-res 1 7 2030 0.0 0.0 +fr 09_hydro_pump 1 7 2030 0.0 0.0 +fr 01_solar 1 8 2030 1.0 0.0 +fr 02_wind_on 1 8 2030 0.0 0.0 +fr 03_wind_off 1 8 2030 0.0 0.0 +fr 04_res 1 8 2030 0.0 0.0 +fr 05_nuclear 1 8 2030 0.0 0.0 +fr 06_coal 1 8 2030 0.0 0.0 +fr 07_gas 1 8 2030 0.0 0.0 +fr 08_non-res 1 8 2030 0.0 0.0 +fr 09_hydro_pump 1 8 2030 0.0 0.0 +fr 01_solar 1 9 2030 1.0 0.0 +fr 02_wind_on 1 9 2030 0.0 0.0 +fr 03_wind_off 1 9 2030 0.0 0.0 +fr 04_res 1 9 2030 0.0 0.0 +fr 05_nuclear 1 9 2030 0.0 0.0 +fr 06_coal 1 9 2030 0.0 0.0 +fr 07_gas 1 9 2030 0.0 0.0 +fr 08_non-res 1 9 2030 0.0 0.0 +fr 09_hydro_pump 1 9 2030 0.0 0.0 +fr 01_solar 1 10 2030 1.0 0.0 +fr 02_wind_on 1 10 2030 0.0 0.0 +fr 03_wind_off 1 10 2030 0.0 0.0 +fr 04_res 1 10 2030 0.0 0.0 +fr 05_nuclear 1 10 2030 0.0 0.0 +fr 06_coal 1 10 2030 0.0 0.0 +fr 07_gas 1 10 2030 0.0 0.0 +fr 08_non-res 1 10 2030 0.0 0.0 +fr 09_hydro_pump 1 10 2030 0.0 0.0 +fr 01_solar 1 11 2030 1.0 0.0 +fr 02_wind_on 1 11 2030 0.0 0.0 +fr 03_wind_off 1 11 2030 0.0 0.0 +fr 04_res 1 11 2030 0.0 0.0 +fr 05_nuclear 1 11 2030 0.0 0.0 +fr 06_coal 1 11 2030 0.0 0.0 +fr 07_gas 1 11 2030 0.0 0.0 +fr 08_non-res 1 11 2030 0.0 0.0 +fr 09_hydro_pump 1 11 2030 0.0 0.0 +fr 01_solar 1 12 2030 1.0 0.0 +fr 02_wind_on 1 12 2030 0.0 0.0 +fr 03_wind_off 1 12 2030 0.0 0.0 +fr 04_res 1 12 2030 0.0 0.0 +fr 05_nuclear 1 12 2030 0.0 0.0 +fr 06_coal 1 12 2030 0.0 0.0 +fr 07_gas 1 12 2030 0.0 0.0 +fr 08_non-res 1 12 2030 0.0 0.0 +fr 09_hydro_pump 1 12 2030 0.0 0.0 +fr 01_solar 1 13 2030 1.0 0.0 +fr 02_wind_on 1 13 2030 0.0 0.0 +fr 03_wind_off 1 13 2030 0.0 0.0 +fr 04_res 1 13 2030 0.0 0.0 +fr 05_nuclear 1 13 2030 0.0 0.0 +fr 06_coal 1 13 2030 0.0 0.0 +fr 07_gas 1 13 2030 0.0 0.0 +fr 08_non-res 1 13 2030 0.0 0.0 +fr 09_hydro_pump 1 13 2030 0.0 0.0 +fr 01_solar 1 14 2030 1.0 0.0 +fr 02_wind_on 1 14 2030 0.0 0.0 +fr 03_wind_off 1 14 2030 0.0 0.0 +fr 04_res 1 14 2030 0.0 0.0 +fr 05_nuclear 1 14 2030 0.0 0.0 +fr 06_coal 1 14 2030 0.0 0.0 +fr 07_gas 1 14 2030 0.0 0.0 +fr 08_non-res 1 14 2030 0.0 0.0 +fr 09_hydro_pump 1 14 2030 0.0 0.0 +fr 01_solar 1 15 2030 1.0 0.0 +fr 02_wind_on 1 15 2030 0.0 0.0 +fr 03_wind_off 1 15 2030 0.0 0.0 +fr 04_res 1 15 2030 0.0 0.0 +fr 05_nuclear 1 15 2030 0.0 0.0 +fr 06_coal 1 15 2030 0.0 0.0 +fr 07_gas 1 15 2030 0.0 0.0 +fr 08_non-res 1 15 2030 0.0 0.0 +fr 09_hydro_pump 1 15 2030 0.0 0.0 +fr 01_solar 1 16 2030 1.0 0.0 +fr 02_wind_on 1 16 2030 0.0 0.0 +fr 03_wind_off 1 16 2030 0.0 0.0 +fr 04_res 1 16 2030 0.0 0.0 +fr 05_nuclear 1 16 2030 0.0 0.0 +fr 06_coal 1 16 2030 0.0 0.0 +fr 07_gas 1 16 2030 0.0 0.0 +fr 08_non-res 1 16 2030 0.0 0.0 +fr 09_hydro_pump 1 16 2030 0.0 0.0 +fr 01_solar 1 17 2030 1.0 0.0 +fr 02_wind_on 1 17 2030 0.0 0.0 +fr 03_wind_off 1 17 2030 0.0 0.0 +fr 04_res 1 17 2030 0.0 0.0 +fr 05_nuclear 1 17 2030 0.0 0.0 +fr 06_coal 1 17 2030 0.0 0.0 +fr 07_gas 1 17 2030 0.0 0.0 +fr 08_non-res 1 17 2030 0.0 0.0 +fr 09_hydro_pump 1 17 2030 0.0 0.0 +fr 01_solar 1 18 2030 1.0 0.0 +fr 02_wind_on 1 18 2030 0.0 0.0 +fr 03_wind_off 1 18 2030 0.0 0.0 +fr 04_res 1 18 2030 0.0 0.0 +fr 05_nuclear 1 18 2030 0.0 0.0 +fr 06_coal 1 18 2030 0.0 0.0 +fr 07_gas 1 18 2030 0.0 0.0 +fr 08_non-res 1 18 2030 0.0 0.0 +fr 09_hydro_pump 1 18 2030 0.0 0.0 +fr 01_solar 1 19 2030 1.0 0.0 +fr 02_wind_on 1 19 2030 0.0 0.0 +fr 03_wind_off 1 19 2030 0.0 0.0 +fr 04_res 1 19 2030 0.0 0.0 +fr 05_nuclear 1 19 2030 0.0 0.0 +fr 06_coal 1 19 2030 0.0 0.0 +fr 07_gas 1 19 2030 0.0 0.0 +fr 08_non-res 1 19 2030 0.0 0.0 +fr 09_hydro_pump 1 19 2030 0.0 0.0 +fr 01_solar 1 20 2030 1.0 0.0 +fr 02_wind_on 1 20 2030 0.0 0.0 +fr 03_wind_off 1 20 2030 0.0 0.0 +fr 04_res 1 20 2030 0.0 0.0 +fr 05_nuclear 1 20 2030 0.0 0.0 +fr 06_coal 1 20 2030 0.0 0.0 +fr 07_gas 1 20 2030 0.0 0.0 +fr 08_non-res 1 20 2030 0.0 0.0 +fr 09_hydro_pump 1 20 2030 0.0 0.0 +fr 01_solar 1 21 2030 1.0 0.0 +fr 02_wind_on 1 21 2030 0.0 0.0 +fr 03_wind_off 1 21 2030 0.0 0.0 +fr 04_res 1 21 2030 0.0 0.0 +fr 05_nuclear 1 21 2030 0.0 0.0 +fr 06_coal 1 21 2030 0.0 0.0 +fr 07_gas 1 21 2030 0.0 0.0 +fr 08_non-res 1 21 2030 0.0 0.0 +fr 09_hydro_pump 1 21 2030 0.0 0.0 +fr 01_solar 1 22 2030 1.0 0.0 +fr 02_wind_on 1 22 2030 1.0 0.0 +fr 03_wind_off 1 22 2030 0.0 0.0 +fr 04_res 1 22 2030 0.0 0.0 +fr 05_nuclear 1 22 2030 0.0 0.0 +fr 06_coal 1 22 2030 0.0 0.0 +fr 07_gas 1 22 2030 0.0 0.0 +fr 08_non-res 1 22 2030 0.0 0.0 +fr 09_hydro_pump 1 22 2030 0.0 0.0 +fr 01_solar 1 23 2030 1.0 0.0 +fr 02_wind_on 1 23 2030 1.0 0.0 +fr 03_wind_off 1 23 2030 0.0 0.0 +fr 04_res 1 23 2030 0.0 0.0 +fr 05_nuclear 1 23 2030 0.0 0.0 +fr 06_coal 1 23 2030 0.0 0.0 +fr 07_gas 1 23 2030 0.0 0.0 +fr 08_non-res 1 23 2030 0.0 0.0 +fr 09_hydro_pump 1 23 2030 0.0 0.0 +fr 01_solar 1 24 2030 1.0 0.0 +fr 02_wind_on 1 24 2030 1.0 0.0 +fr 03_wind_off 1 24 2030 0.0 0.0 +fr 04_res 1 24 2030 0.0 0.0 +fr 05_nuclear 1 24 2030 0.0 0.0 +fr 06_coal 1 24 2030 0.0 0.0 +fr 07_gas 1 24 2030 0.0 0.0 +fr 08_non-res 1 24 2030 0.0 0.0 +fr 09_hydro_pump 1 24 2030 0.0 0.0 +fr 01_solar 1 25 2030 1.0 0.0 +fr 02_wind_on 1 25 2030 1.0 0.0 +fr 03_wind_off 1 25 2030 0.0 0.0 +fr 04_res 1 25 2030 0.0 0.0 +fr 05_nuclear 1 25 2030 0.0 0.0 +fr 06_coal 1 25 2030 0.0 0.0 +fr 07_gas 1 25 2030 0.0 0.0 +fr 08_non-res 1 25 2030 0.0 0.0 +fr 09_hydro_pump 1 25 2030 0.0 0.0 +fr 01_solar 1 26 2030 1.0 0.0 +fr 02_wind_on 1 26 2030 1.0 0.0 +fr 03_wind_off 1 26 2030 0.0 0.0 +fr 04_res 1 26 2030 0.0 0.0 +fr 05_nuclear 1 26 2030 0.0 0.0 +fr 06_coal 1 26 2030 0.0 0.0 +fr 07_gas 1 26 2030 0.0 0.0 +fr 08_non-res 1 26 2030 0.0 0.0 +fr 09_hydro_pump 1 26 2030 0.0 0.0 +fr 01_solar 1 27 2030 1.0 0.0 +fr 02_wind_on 1 27 2030 1.0 0.0 +fr 03_wind_off 1 27 2030 0.0 0.0 +fr 04_res 1 27 2030 0.0 0.0 +fr 05_nuclear 1 27 2030 0.0 0.0 +fr 06_coal 1 27 2030 0.0 0.0 +fr 07_gas 1 27 2030 0.0 0.0 +fr 08_non-res 1 27 2030 0.0 0.0 +fr 09_hydro_pump 1 27 2030 0.0 0.0 +fr 01_solar 1 28 2030 1.0 0.0 +fr 02_wind_on 1 28 2030 1.0 0.0 +fr 03_wind_off 1 28 2030 0.0 0.0 +fr 04_res 1 28 2030 0.0 0.0 +fr 05_nuclear 1 28 2030 0.0 0.0 +fr 06_coal 1 28 2030 0.0 0.0 +fr 07_gas 1 28 2030 0.0 0.0 +fr 08_non-res 1 28 2030 0.0 0.0 +fr 09_hydro_pump 1 28 2030 0.0 0.0 +fr 01_solar 1 29 2030 1.0 0.0 +fr 02_wind_on 1 29 2030 1.0 0.0 +fr 03_wind_off 1 29 2030 0.0 0.0 +fr 04_res 1 29 2030 0.0 0.0 +fr 05_nuclear 1 29 2030 0.0 0.0 +fr 06_coal 1 29 2030 0.0 0.0 +fr 07_gas 1 29 2030 0.0 0.0 +fr 08_non-res 1 29 2030 0.0 0.0 +fr 09_hydro_pump 1 29 2030 0.0 0.0 +fr 01_solar 1 30 2030 1.0 0.0 +fr 02_wind_on 1 30 2030 1.0 0.0 +fr 03_wind_off 1 30 2030 0.0 0.0 +fr 04_res 1 30 2030 0.0 0.0 +fr 05_nuclear 1 30 2030 0.0 0.0 +fr 06_coal 1 30 2030 0.0 0.0 +fr 07_gas 1 30 2030 0.0 0.0 +fr 08_non-res 1 30 2030 0.0 0.0 +fr 09_hydro_pump 1 30 2030 0.0 0.0 +fr 01_solar 1 31 2030 1.0 0.0 +fr 02_wind_on 1 31 2030 1.0 0.0 +fr 03_wind_off 1 31 2030 0.0 0.0 +fr 04_res 1 31 2030 0.0 0.0 +fr 05_nuclear 1 31 2030 0.0 0.0 +fr 06_coal 1 31 2030 0.0 0.0 +fr 07_gas 1 31 2030 0.0 0.0 +fr 08_non-res 1 31 2030 0.0 0.0 +fr 09_hydro_pump 1 31 2030 0.0 0.0 +fr 01_solar 1 32 2030 1.0 0.0 +fr 02_wind_on 1 32 2030 1.0 0.0 +fr 03_wind_off 1 32 2030 0.0 0.0 +fr 04_res 1 32 2030 0.0 0.0 +fr 05_nuclear 1 32 2030 0.0 0.0 +fr 06_coal 1 32 2030 0.0 0.0 +fr 07_gas 1 32 2030 0.0 0.0 +fr 08_non-res 1 32 2030 0.0 0.0 +fr 09_hydro_pump 1 32 2030 0.0 0.0 +fr 01_solar 1 33 2030 1.0 0.0 +fr 02_wind_on 1 33 2030 1.0 0.0 +fr 03_wind_off 1 33 2030 0.0 0.0 +fr 04_res 1 33 2030 0.0 0.0 +fr 05_nuclear 1 33 2030 0.0 0.0 +fr 06_coal 1 33 2030 0.0 0.0 +fr 07_gas 1 33 2030 0.0 0.0 +fr 08_non-res 1 33 2030 0.0 0.0 +fr 09_hydro_pump 1 33 2030 0.0 0.0 +fr 01_solar 1 34 2030 1.0 0.0 +fr 02_wind_on 1 34 2030 1.0 0.0 +fr 03_wind_off 1 34 2030 0.0 0.0 +fr 04_res 1 34 2030 0.0 0.0 +fr 05_nuclear 1 34 2030 0.0 0.0 +fr 06_coal 1 34 2030 0.0 0.0 +fr 07_gas 1 34 2030 0.0 0.0 +fr 08_non-res 1 34 2030 0.0 0.0 +fr 09_hydro_pump 1 34 2030 0.0 0.0 +fr 01_solar 1 35 2030 1.0 0.0 +fr 02_wind_on 1 35 2030 1.0 0.0 +fr 03_wind_off 1 35 2030 0.0 0.0 +fr 04_res 1 35 2030 0.0 0.0 +fr 05_nuclear 1 35 2030 0.0 0.0 +fr 06_coal 1 35 2030 0.0 0.0 +fr 07_gas 1 35 2030 0.0 0.0 +fr 08_non-res 1 35 2030 0.0 0.0 +fr 09_hydro_pump 1 35 2030 0.0 0.0 +fr 01_solar 1 36 2030 1.0 0.0 +fr 02_wind_on 1 36 2030 1.0 0.0 +fr 03_wind_off 1 36 2030 0.0 0.0 +fr 04_res 1 36 2030 0.0 0.0 +fr 05_nuclear 1 36 2030 0.0 0.0 +fr 06_coal 1 36 2030 0.0 0.0 +fr 07_gas 1 36 2030 0.0 0.0 +fr 08_non-res 1 36 2030 0.0 0.0 +fr 09_hydro_pump 1 36 2030 0.0 0.0 +fr 01_solar 1 37 2030 1.0 0.0 +fr 02_wind_on 1 37 2030 1.0 0.0 +fr 03_wind_off 1 37 2030 0.0 0.0 +fr 04_res 1 37 2030 0.0 0.0 +fr 05_nuclear 1 37 2030 0.0 0.0 +fr 06_coal 1 37 2030 0.0 0.0 +fr 07_gas 1 37 2030 0.0 0.0 +fr 08_non-res 1 37 2030 0.0 0.0 +fr 09_hydro_pump 1 37 2030 0.0 0.0 +fr 01_solar 1 38 2030 1.0 0.0 +fr 02_wind_on 1 38 2030 1.0 0.0 +fr 03_wind_off 1 38 2030 0.0 0.0 +fr 04_res 1 38 2030 0.0 0.0 +fr 05_nuclear 1 38 2030 0.0 0.0 +fr 06_coal 1 38 2030 0.0 0.0 +fr 07_gas 1 38 2030 0.0 0.0 +fr 08_non-res 1 38 2030 0.0 0.0 +fr 09_hydro_pump 1 38 2030 0.0 0.0 +fr 01_solar 1 39 2030 1.0 0.0 +fr 02_wind_on 1 39 2030 1.0 0.0 +fr 03_wind_off 1 39 2030 0.0 0.0 +fr 04_res 1 39 2030 0.0 0.0 +fr 05_nuclear 1 39 2030 0.0 0.0 +fr 06_coal 1 39 2030 0.0 0.0 +fr 07_gas 1 39 2030 0.0 0.0 +fr 08_non-res 1 39 2030 0.0 0.0 +fr 09_hydro_pump 1 39 2030 0.0 0.0 +fr 01_solar 1 40 2030 1.0 0.0 +fr 02_wind_on 1 40 2030 1.0 0.0 +fr 03_wind_off 1 40 2030 0.0 0.0 +fr 04_res 1 40 2030 0.0 0.0 +fr 05_nuclear 1 40 2030 0.0 0.0 +fr 06_coal 1 40 2030 0.0 0.0 +fr 07_gas 1 40 2030 0.0 0.0 +fr 08_non-res 1 40 2030 0.0 0.0 +fr 09_hydro_pump 1 40 2030 0.0 0.0 +fr 01_solar 1 41 2030 1.0 0.0 +fr 02_wind_on 1 41 2030 1.0 0.0 +fr 03_wind_off 1 41 2030 0.0 0.0 +fr 04_res 1 41 2030 0.0 0.0 +fr 05_nuclear 1 41 2030 0.0 0.0 +fr 06_coal 1 41 2030 0.0 0.0 +fr 07_gas 1 41 2030 0.0 0.0 +fr 08_non-res 1 41 2030 0.0 0.0 +fr 09_hydro_pump 1 41 2030 0.0 0.0 +fr 01_solar 1 42 2030 1.0 0.0 +fr 02_wind_on 1 42 2030 1.0 0.0 +fr 03_wind_off 1 42 2030 1.0 0.0 +fr 04_res 1 42 2030 0.0 0.0 +fr 05_nuclear 1 42 2030 0.0 0.0 +fr 06_coal 1 42 2030 0.0 0.0 +fr 07_gas 1 42 2030 0.0 0.0 +fr 08_non-res 1 42 2030 0.0 0.0 +fr 09_hydro_pump 1 42 2030 0.0 0.0 +fr 01_solar 1 43 2030 1.0 0.0 +fr 02_wind_on 1 43 2030 1.0 0.0 +fr 03_wind_off 1 43 2030 1.0 0.0 +fr 04_res 1 43 2030 0.0 0.0 +fr 05_nuclear 1 43 2030 0.0 0.0 +fr 06_coal 1 43 2030 0.0 0.0 +fr 07_gas 1 43 2030 0.0 0.0 +fr 08_non-res 1 43 2030 0.0 0.0 +fr 09_hydro_pump 1 43 2030 0.0 0.0 +fr 01_solar 1 44 2030 1.0 0.0 +fr 02_wind_on 1 44 2030 1.0 0.0 +fr 03_wind_off 1 44 2030 1.0 0.0 +fr 04_res 1 44 2030 0.0 0.0 +fr 05_nuclear 1 44 2030 0.0 0.0 +fr 06_coal 1 44 2030 0.0 0.0 +fr 07_gas 1 44 2030 0.0 0.0 +fr 08_non-res 1 44 2030 0.0 0.0 +fr 09_hydro_pump 1 44 2030 0.0 0.0 +fr 01_solar 1 45 2030 1.0 0.0 +fr 02_wind_on 1 45 2030 1.0 0.0 +fr 03_wind_off 1 45 2030 1.0 0.0 +fr 04_res 1 45 2030 0.0 0.0 +fr 05_nuclear 1 45 2030 0.0 0.0 +fr 06_coal 1 45 2030 0.0 0.0 +fr 07_gas 1 45 2030 0.0 0.0 +fr 08_non-res 1 45 2030 0.0 0.0 +fr 09_hydro_pump 1 45 2030 0.0 0.0 +fr 01_solar 1 46 2030 1.0 0.0 +fr 02_wind_on 1 46 2030 1.0 0.0 +fr 03_wind_off 1 46 2030 1.0 0.0 +fr 04_res 1 46 2030 0.0 0.0 +fr 05_nuclear 1 46 2030 0.0 0.0 +fr 06_coal 1 46 2030 0.0 0.0 +fr 07_gas 1 46 2030 0.0 0.0 +fr 08_non-res 1 46 2030 0.0 0.0 +fr 09_hydro_pump 1 46 2030 0.0 0.0 +fr 01_solar 1 47 2030 1.0 0.0 +fr 02_wind_on 1 47 2030 1.0 0.0 +fr 03_wind_off 1 47 2030 1.0 0.0 +fr 04_res 1 47 2030 0.0 0.0 +fr 05_nuclear 1 47 2030 0.0 0.0 +fr 06_coal 1 47 2030 0.0 0.0 +fr 07_gas 1 47 2030 0.0 0.0 +fr 08_non-res 1 47 2030 0.0 0.0 +fr 09_hydro_pump 1 47 2030 0.0 0.0 +fr 01_solar 1 48 2030 1.0 0.0 +fr 02_wind_on 1 48 2030 1.0 0.0 +fr 03_wind_off 1 48 2030 1.0 0.0 +fr 04_res 1 48 2030 0.0 0.0 +fr 05_nuclear 1 48 2030 0.0 0.0 +fr 06_coal 1 48 2030 0.0 0.0 +fr 07_gas 1 48 2030 0.0 0.0 +fr 08_non-res 1 48 2030 0.0 0.0 +fr 09_hydro_pump 1 48 2030 0.0 0.0 +fr 01_solar 1 49 2030 1.0 0.0 +fr 02_wind_on 1 49 2030 1.0 0.0 +fr 03_wind_off 1 49 2030 1.0 0.0 +fr 04_res 1 49 2030 0.0 0.0 +fr 05_nuclear 1 49 2030 0.0 0.0 +fr 06_coal 1 49 2030 0.0 0.0 +fr 07_gas 1 49 2030 0.0 0.0 +fr 08_non-res 1 49 2030 0.0 0.0 +fr 09_hydro_pump 1 49 2030 0.0 0.0 +fr 01_solar 1 50 2030 1.0 0.0 +fr 02_wind_on 1 50 2030 1.0 0.0 +fr 03_wind_off 1 50 2030 1.0 0.0 +fr 04_res 1 50 2030 0.0 0.0 +fr 05_nuclear 1 50 2030 0.0 0.0 +fr 06_coal 1 50 2030 0.0 0.0 +fr 07_gas 1 50 2030 0.0 0.0 +fr 08_non-res 1 50 2030 0.0 0.0 +fr 09_hydro_pump 1 50 2030 0.0 0.0 +fr 01_solar 1 51 2030 1.0 0.0 +fr 02_wind_on 1 51 2030 1.0 0.0 +fr 03_wind_off 1 51 2030 1.0 0.0 +fr 04_res 1 51 2030 0.0 0.0 +fr 05_nuclear 1 51 2030 0.0 0.0 +fr 06_coal 1 51 2030 0.0 0.0 +fr 07_gas 1 51 2030 0.0 0.0 +fr 08_non-res 1 51 2030 0.0 0.0 +fr 09_hydro_pump 1 51 2030 0.0 0.0 +fr 01_solar 1 52 2030 1.0 0.0 +fr 02_wind_on 1 52 2030 1.0 0.0 +fr 03_wind_off 1 52 2030 1.0 0.0 +fr 04_res 1 52 2030 0.0 0.0 +fr 05_nuclear 1 52 2030 0.0 0.0 +fr 06_coal 1 52 2030 0.0 0.0 +fr 07_gas 1 52 2030 0.0 0.0 +fr 08_non-res 1 52 2030 0.0 0.0 +fr 09_hydro_pump 1 52 2030 0.0 0.0 +fr 01_solar 1 53 2030 1.0 0.0 +fr 02_wind_on 1 53 2030 1.0 0.0 +fr 03_wind_off 1 53 2030 1.0 0.0 +fr 04_res 1 53 2030 0.0 0.0 +fr 05_nuclear 1 53 2030 0.0 0.0 +fr 06_coal 1 53 2030 0.0 0.0 +fr 07_gas 1 53 2030 0.0 0.0 +fr 08_non-res 1 53 2030 0.0 0.0 +fr 09_hydro_pump 1 53 2030 0.0 0.0 +fr 01_solar 1 54 2030 1.0 0.0 +fr 02_wind_on 1 54 2030 1.0 0.0 +fr 03_wind_off 1 54 2030 1.0 0.0 +fr 04_res 1 54 2030 0.0 0.0 +fr 05_nuclear 1 54 2030 0.0 0.0 +fr 06_coal 1 54 2030 0.0 0.0 +fr 07_gas 1 54 2030 0.0 0.0 +fr 08_non-res 1 54 2030 0.0 0.0 +fr 09_hydro_pump 1 54 2030 0.0 0.0 +fr 01_solar 1 55 2030 1.0 0.0 +fr 02_wind_on 1 55 2030 1.0 0.0 +fr 03_wind_off 1 55 2030 1.0 0.0 +fr 04_res 1 55 2030 0.0 0.0 +fr 05_nuclear 1 55 2030 0.0 0.0 +fr 06_coal 1 55 2030 0.0 0.0 +fr 07_gas 1 55 2030 0.0 0.0 +fr 08_non-res 1 55 2030 0.0 0.0 +fr 09_hydro_pump 1 55 2030 0.0 0.0 +fr 01_solar 1 56 2030 1.0 0.0 +fr 02_wind_on 1 56 2030 1.0 0.0 +fr 03_wind_off 1 56 2030 1.0 0.0 +fr 04_res 1 56 2030 0.0 0.0 +fr 05_nuclear 1 56 2030 0.0 0.0 +fr 06_coal 1 56 2030 0.0 0.0 +fr 07_gas 1 56 2030 0.0 0.0 +fr 08_non-res 1 56 2030 0.0 0.0 +fr 09_hydro_pump 1 56 2030 0.0 0.0 +fr 01_solar 1 57 2030 1.0 0.0 +fr 02_wind_on 1 57 2030 1.0 0.0 +fr 03_wind_off 1 57 2030 1.0 0.0 +fr 04_res 1 57 2030 0.0 0.0 +fr 05_nuclear 1 57 2030 0.0 0.0 +fr 06_coal 1 57 2030 0.0 0.0 +fr 07_gas 1 57 2030 0.0 0.0 +fr 08_non-res 1 57 2030 0.0 0.0 +fr 09_hydro_pump 1 57 2030 0.0 0.0 +fr 01_solar 1 58 2030 1.0 0.0 +fr 02_wind_on 1 58 2030 1.0 0.0 +fr 03_wind_off 1 58 2030 1.0 0.0 +fr 04_res 1 58 2030 0.0 0.0 +fr 05_nuclear 1 58 2030 0.0 0.0 +fr 06_coal 1 58 2030 0.0 0.0 +fr 07_gas 1 58 2030 0.0 0.0 +fr 08_non-res 1 58 2030 0.0 0.0 +fr 09_hydro_pump 1 58 2030 0.0 0.0 +fr 01_solar 1 59 2030 1.0 0.0 +fr 02_wind_on 1 59 2030 1.0 0.0 +fr 03_wind_off 1 59 2030 1.0 0.0 +fr 04_res 1 59 2030 0.0 0.0 +fr 05_nuclear 1 59 2030 0.0 0.0 +fr 06_coal 1 59 2030 0.0 0.0 +fr 07_gas 1 59 2030 0.0 0.0 +fr 08_non-res 1 59 2030 0.0 0.0 +fr 09_hydro_pump 1 59 2030 0.0 0.0 +fr 01_solar 1 60 2030 1.0 0.0 +fr 02_wind_on 1 60 2030 1.0 0.0 +fr 03_wind_off 1 60 2030 1.0 0.0 +fr 04_res 1 60 2030 0.0 0.0 +fr 05_nuclear 1 60 2030 0.0 0.0 +fr 06_coal 1 60 2030 0.0 0.0 +fr 07_gas 1 60 2030 0.0 0.0 +fr 08_non-res 1 60 2030 0.0 0.0 +fr 09_hydro_pump 1 60 2030 0.0 0.0 +fr 01_solar 1 61 2030 1.0 0.0 +fr 02_wind_on 1 61 2030 1.0 0.0 +fr 03_wind_off 1 61 2030 1.0 0.0 +fr 04_res 1 61 2030 0.0 0.0 +fr 05_nuclear 1 61 2030 0.0 0.0 +fr 06_coal 1 61 2030 0.0 0.0 +fr 07_gas 1 61 2030 0.0 0.0 +fr 08_non-res 1 61 2030 0.0 0.0 +fr 09_hydro_pump 1 61 2030 0.0 0.0 +fr 01_solar 1 62 2030 1.0 0.0 +fr 02_wind_on 1 62 2030 1.0 0.0 +fr 03_wind_off 1 62 2030 1.0 0.0 +fr 04_res 1 62 2030 1.0 0.0 +fr 05_nuclear 1 62 2030 0.0 0.0 +fr 06_coal 1 62 2030 0.0 0.0 +fr 07_gas 1 62 2030 0.0 0.0 +fr 08_non-res 1 62 2030 0.0 0.0 +fr 09_hydro_pump 1 62 2030 0.0 0.0 +fr 01_solar 1 63 2030 1.0 0.0 +fr 02_wind_on 1 63 2030 1.0 0.0 +fr 03_wind_off 1 63 2030 1.0 0.0 +fr 04_res 1 63 2030 1.0 0.0 +fr 05_nuclear 1 63 2030 0.0 0.0 +fr 06_coal 1 63 2030 0.0 0.0 +fr 07_gas 1 63 2030 0.0 0.0 +fr 08_non-res 1 63 2030 0.0 0.0 +fr 09_hydro_pump 1 63 2030 0.0 0.0 +fr 01_solar 1 64 2030 1.0 0.0 +fr 02_wind_on 1 64 2030 1.0 0.0 +fr 03_wind_off 1 64 2030 1.0 0.0 +fr 04_res 1 64 2030 1.0 0.0 +fr 05_nuclear 1 64 2030 0.0 0.0 +fr 06_coal 1 64 2030 0.0 0.0 +fr 07_gas 1 64 2030 0.0 0.0 +fr 08_non-res 1 64 2030 0.0 0.0 +fr 09_hydro_pump 1 64 2030 0.0 0.0 +fr 01_solar 1 65 2030 1.0 0.0 +fr 02_wind_on 1 65 2030 1.0 0.0 +fr 03_wind_off 1 65 2030 1.0 0.0 +fr 04_res 1 65 2030 1.0 0.0 +fr 05_nuclear 1 65 2030 0.0 0.0 +fr 06_coal 1 65 2030 0.0 0.0 +fr 07_gas 1 65 2030 0.0 0.0 +fr 08_non-res 1 65 2030 0.0 0.0 +fr 09_hydro_pump 1 65 2030 0.0 0.0 +fr 01_solar 1 66 2030 1.0 0.0 +fr 02_wind_on 1 66 2030 1.0 0.0 +fr 03_wind_off 1 66 2030 1.0 0.0 +fr 04_res 1 66 2030 1.0 0.0 +fr 05_nuclear 1 66 2030 0.0 0.0 +fr 06_coal 1 66 2030 0.0 0.0 +fr 07_gas 1 66 2030 0.0 0.0 +fr 08_non-res 1 66 2030 0.0 0.0 +fr 09_hydro_pump 1 66 2030 0.0 0.0 +fr 01_solar 1 67 2030 1.0 0.0 +fr 02_wind_on 1 67 2030 1.0 0.0 +fr 03_wind_off 1 67 2030 1.0 0.0 +fr 04_res 1 67 2030 1.0 0.0 +fr 05_nuclear 1 67 2030 0.0 0.0 +fr 06_coal 1 67 2030 0.0 0.0 +fr 07_gas 1 67 2030 0.0 0.0 +fr 08_non-res 1 67 2030 0.0 0.0 +fr 09_hydro_pump 1 67 2030 0.0 0.0 +fr 01_solar 1 68 2030 1.0 0.0 +fr 02_wind_on 1 68 2030 1.0 0.0 +fr 03_wind_off 1 68 2030 1.0 0.0 +fr 04_res 1 68 2030 1.0 0.0 +fr 05_nuclear 1 68 2030 0.0 0.0 +fr 06_coal 1 68 2030 0.0 0.0 +fr 07_gas 1 68 2030 0.0 0.0 +fr 08_non-res 1 68 2030 0.0 0.0 +fr 09_hydro_pump 1 68 2030 0.0 0.0 +fr 01_solar 1 69 2030 1.0 0.0 +fr 02_wind_on 1 69 2030 1.0 0.0 +fr 03_wind_off 1 69 2030 1.0 0.0 +fr 04_res 1 69 2030 1.0 0.0 +fr 05_nuclear 1 69 2030 0.0 0.0 +fr 06_coal 1 69 2030 0.0 0.0 +fr 07_gas 1 69 2030 0.0 0.0 +fr 08_non-res 1 69 2030 0.0 0.0 +fr 09_hydro_pump 1 69 2030 0.0 0.0 +fr 01_solar 1 70 2030 1.0 0.0 +fr 02_wind_on 1 70 2030 1.0 0.0 +fr 03_wind_off 1 70 2030 1.0 0.0 +fr 04_res 1 70 2030 1.0 0.0 +fr 05_nuclear 1 70 2030 0.0 0.0 +fr 06_coal 1 70 2030 0.0 0.0 +fr 07_gas 1 70 2030 0.0 0.0 +fr 08_non-res 1 70 2030 0.0 0.0 +fr 09_hydro_pump 1 70 2030 0.0 0.0 +fr 01_solar 1 71 2030 1.0 0.0 +fr 02_wind_on 1 71 2030 1.0 0.0 +fr 03_wind_off 1 71 2030 1.0 0.0 +fr 04_res 1 71 2030 1.0 0.0 +fr 05_nuclear 1 71 2030 0.0 0.0 +fr 06_coal 1 71 2030 0.0 0.0 +fr 07_gas 1 71 2030 0.0 0.0 +fr 08_non-res 1 71 2030 0.0 0.0 +fr 09_hydro_pump 1 71 2030 0.0 0.0 +fr 01_solar 1 72 2030 1.0 0.0 +fr 02_wind_on 1 72 2030 1.0 0.0 +fr 03_wind_off 1 72 2030 1.0 0.0 +fr 04_res 1 72 2030 1.0 0.0 +fr 05_nuclear 1 72 2030 0.0 0.0 +fr 06_coal 1 72 2030 0.0 0.0 +fr 07_gas 1 72 2030 0.0 0.0 +fr 08_non-res 1 72 2030 0.0 0.0 +fr 09_hydro_pump 1 72 2030 0.0 0.0 +fr 01_solar 1 73 2030 1.0 0.0 +fr 02_wind_on 1 73 2030 1.0 0.0 +fr 03_wind_off 1 73 2030 1.0 0.0 +fr 04_res 1 73 2030 1.0 0.0 +fr 05_nuclear 1 73 2030 0.0 0.0 +fr 06_coal 1 73 2030 0.0 0.0 +fr 07_gas 1 73 2030 0.0 0.0 +fr 08_non-res 1 73 2030 0.0 0.0 +fr 09_hydro_pump 1 73 2030 0.0 0.0 +fr 01_solar 1 74 2030 1.0 0.0 +fr 02_wind_on 1 74 2030 1.0 0.0 +fr 03_wind_off 1 74 2030 1.0 0.0 +fr 04_res 1 74 2030 1.0 0.0 +fr 05_nuclear 1 74 2030 0.0 0.0 +fr 06_coal 1 74 2030 0.0 0.0 +fr 07_gas 1 74 2030 0.0 0.0 +fr 08_non-res 1 74 2030 0.0 0.0 +fr 09_hydro_pump 1 74 2030 0.0 0.0 +fr 01_solar 1 75 2030 1.0 0.0 +fr 02_wind_on 1 75 2030 1.0 0.0 +fr 03_wind_off 1 75 2030 1.0 0.0 +fr 04_res 1 75 2030 1.0 0.0 +fr 05_nuclear 1 75 2030 0.0 0.0 +fr 06_coal 1 75 2030 0.0 0.0 +fr 07_gas 1 75 2030 0.0 0.0 +fr 08_non-res 1 75 2030 0.0 0.0 +fr 09_hydro_pump 1 75 2030 0.0 0.0 +fr 01_solar 1 76 2030 1.0 0.0 +fr 02_wind_on 1 76 2030 1.0 0.0 +fr 03_wind_off 1 76 2030 1.0 0.0 +fr 04_res 1 76 2030 1.0 0.0 +fr 05_nuclear 1 76 2030 0.0 0.0 +fr 06_coal 1 76 2030 0.0 0.0 +fr 07_gas 1 76 2030 0.0 0.0 +fr 08_non-res 1 76 2030 0.0 0.0 +fr 09_hydro_pump 1 76 2030 0.0 0.0 +fr 01_solar 1 77 2030 1.0 0.0 +fr 02_wind_on 1 77 2030 1.0 0.0 +fr 03_wind_off 1 77 2030 1.0 0.0 +fr 04_res 1 77 2030 1.0 0.0 +fr 05_nuclear 1 77 2030 0.0 0.0 +fr 06_coal 1 77 2030 0.0 0.0 +fr 07_gas 1 77 2030 0.0 0.0 +fr 08_non-res 1 77 2030 0.0 0.0 +fr 09_hydro_pump 1 77 2030 0.0 0.0 +fr 01_solar 1 78 2030 1.0 0.0 +fr 02_wind_on 1 78 2030 1.0 0.0 +fr 03_wind_off 1 78 2030 1.0 0.0 +fr 04_res 1 78 2030 1.0 0.0 +fr 05_nuclear 1 78 2030 0.0 0.0 +fr 06_coal 1 78 2030 0.0 0.0 +fr 07_gas 1 78 2030 0.0 0.0 +fr 08_non-res 1 78 2030 0.0 0.0 +fr 09_hydro_pump 1 78 2030 0.0 0.0 +fr 01_solar 1 79 2030 1.0 0.0 +fr 02_wind_on 1 79 2030 1.0 0.0 +fr 03_wind_off 1 79 2030 1.0 0.0 +fr 04_res 1 79 2030 1.0 0.0 +fr 05_nuclear 1 79 2030 0.0 0.0 +fr 06_coal 1 79 2030 0.0 0.0 +fr 07_gas 1 79 2030 0.0 0.0 +fr 08_non-res 1 79 2030 0.0 0.0 +fr 09_hydro_pump 1 79 2030 0.0 0.0 +fr 01_solar 1 80 2030 1.0 0.0 +fr 02_wind_on 1 80 2030 1.0 0.0 +fr 03_wind_off 1 80 2030 1.0 0.0 +fr 04_res 1 80 2030 1.0 0.0 +fr 05_nuclear 1 80 2030 0.0 0.0 +fr 06_coal 1 80 2030 0.0 0.0 +fr 07_gas 1 80 2030 0.0 0.0 +fr 08_non-res 1 80 2030 0.0 0.0 +fr 09_hydro_pump 1 80 2030 0.0 0.0 +fr 01_solar 1 81 2030 1.0 0.0 +fr 02_wind_on 1 81 2030 1.0 0.0 +fr 03_wind_off 1 81 2030 1.0 0.0 +fr 04_res 1 81 2030 1.0 0.0 +fr 05_nuclear 1 81 2030 0.0 0.0 +fr 06_coal 1 81 2030 0.0 0.0 +fr 07_gas 1 81 2030 0.0 0.0 +fr 08_non-res 1 81 2030 0.0 0.0 +fr 09_hydro_pump 1 81 2030 0.0 0.0 +fr 01_solar 1 82 2030 1.0 0.0 +fr 02_wind_on 1 82 2030 1.0 0.0 +fr 03_wind_off 1 82 2030 1.0 0.0 +fr 04_res 1 82 2030 1.0 0.0 +fr 05_nuclear 1 82 2030 1.0 0.0 +fr 06_coal 1 82 2030 0.0 0.0 +fr 07_gas 1 82 2030 0.0 0.0 +fr 08_non-res 1 82 2030 0.0 0.0 +fr 09_hydro_pump 1 82 2030 0.0 0.0 +fr 01_solar 1 83 2030 1.0 0.0 +fr 02_wind_on 1 83 2030 1.0 0.0 +fr 03_wind_off 1 83 2030 1.0 0.0 +fr 04_res 1 83 2030 1.0 0.0 +fr 05_nuclear 1 83 2030 1.0 0.0 +fr 06_coal 1 83 2030 0.0 0.0 +fr 07_gas 1 83 2030 0.0 0.0 +fr 08_non-res 1 83 2030 0.0 0.0 +fr 09_hydro_pump 1 83 2030 0.0 0.0 +fr 01_solar 1 84 2030 1.0 0.0 +fr 02_wind_on 1 84 2030 1.0 0.0 +fr 03_wind_off 1 84 2030 1.0 0.0 +fr 04_res 1 84 2030 1.0 0.0 +fr 05_nuclear 1 84 2030 1.0 0.0 +fr 06_coal 1 84 2030 0.0 0.0 +fr 07_gas 1 84 2030 0.0 0.0 +fr 08_non-res 1 84 2030 0.0 0.0 +fr 09_hydro_pump 1 84 2030 0.0 0.0 +fr 01_solar 1 85 2030 1.0 0.0 +fr 02_wind_on 1 85 2030 1.0 0.0 +fr 03_wind_off 1 85 2030 1.0 0.0 +fr 04_res 1 85 2030 1.0 0.0 +fr 05_nuclear 1 85 2030 1.0 0.0 +fr 06_coal 1 85 2030 0.0 0.0 +fr 07_gas 1 85 2030 0.0 0.0 +fr 08_non-res 1 85 2030 0.0 0.0 +fr 09_hydro_pump 1 85 2030 0.0 0.0 +fr 01_solar 1 86 2030 1.0 0.0 +fr 02_wind_on 1 86 2030 1.0 0.0 +fr 03_wind_off 1 86 2030 1.0 0.0 +fr 04_res 1 86 2030 1.0 0.0 +fr 05_nuclear 1 86 2030 1.0 0.0 +fr 06_coal 1 86 2030 0.0 0.0 +fr 07_gas 1 86 2030 0.0 0.0 +fr 08_non-res 1 86 2030 0.0 0.0 +fr 09_hydro_pump 1 86 2030 0.0 0.0 +fr 01_solar 1 87 2030 1.0 0.0 +fr 02_wind_on 1 87 2030 1.0 0.0 +fr 03_wind_off 1 87 2030 1.0 0.0 +fr 04_res 1 87 2030 1.0 0.0 +fr 05_nuclear 1 87 2030 1.0 0.0 +fr 06_coal 1 87 2030 0.0 0.0 +fr 07_gas 1 87 2030 0.0 0.0 +fr 08_non-res 1 87 2030 0.0 0.0 +fr 09_hydro_pump 1 87 2030 0.0 0.0 +fr 01_solar 1 88 2030 1.0 0.0 +fr 02_wind_on 1 88 2030 1.0 0.0 +fr 03_wind_off 1 88 2030 1.0 0.0 +fr 04_res 1 88 2030 1.0 0.0 +fr 05_nuclear 1 88 2030 1.0 0.0 +fr 06_coal 1 88 2030 0.0 0.0 +fr 07_gas 1 88 2030 0.0 0.0 +fr 08_non-res 1 88 2030 0.0 0.0 +fr 09_hydro_pump 1 88 2030 0.0 0.0 +fr 01_solar 1 89 2030 1.0 0.0 +fr 02_wind_on 1 89 2030 1.0 0.0 +fr 03_wind_off 1 89 2030 1.0 0.0 +fr 04_res 1 89 2030 1.0 0.0 +fr 05_nuclear 1 89 2030 1.0 0.0 +fr 06_coal 1 89 2030 0.0 0.0 +fr 07_gas 1 89 2030 0.0 0.0 +fr 08_non-res 1 89 2030 0.0 0.0 +fr 09_hydro_pump 1 89 2030 0.0 0.0 +fr 01_solar 1 90 2030 1.0 0.0 +fr 02_wind_on 1 90 2030 1.0 0.0 +fr 03_wind_off 1 90 2030 1.0 0.0 +fr 04_res 1 90 2030 1.0 0.0 +fr 05_nuclear 1 90 2030 1.0 0.0 +fr 06_coal 1 90 2030 0.0 0.0 +fr 07_gas 1 90 2030 0.0 0.0 +fr 08_non-res 1 90 2030 0.0 0.0 +fr 09_hydro_pump 1 90 2030 0.0 0.0 +fr 01_solar 1 91 2030 1.0 0.0 +fr 02_wind_on 1 91 2030 1.0 0.0 +fr 03_wind_off 1 91 2030 1.0 0.0 +fr 04_res 1 91 2030 1.0 0.0 +fr 05_nuclear 1 91 2030 1.0 0.0 +fr 06_coal 1 91 2030 0.0 0.0 +fr 07_gas 1 91 2030 0.0 0.0 +fr 08_non-res 1 91 2030 0.0 0.0 +fr 09_hydro_pump 1 91 2030 0.0 0.0 +fr 01_solar 1 92 2030 1.0 0.0 +fr 02_wind_on 1 92 2030 1.0 0.0 +fr 03_wind_off 1 92 2030 1.0 0.0 +fr 04_res 1 92 2030 1.0 0.0 +fr 05_nuclear 1 92 2030 1.0 0.0 +fr 06_coal 1 92 2030 0.0 0.0 +fr 07_gas 1 92 2030 0.0 0.0 +fr 08_non-res 1 92 2030 0.0 0.0 +fr 09_hydro_pump 1 92 2030 0.0 0.0 +fr 01_solar 1 93 2030 1.0 0.0 +fr 02_wind_on 1 93 2030 1.0 0.0 +fr 03_wind_off 1 93 2030 1.0 0.0 +fr 04_res 1 93 2030 1.0 0.0 +fr 05_nuclear 1 93 2030 1.0 0.0 +fr 06_coal 1 93 2030 0.0 0.0 +fr 07_gas 1 93 2030 0.0 0.0 +fr 08_non-res 1 93 2030 0.0 0.0 +fr 09_hydro_pump 1 93 2030 0.0 0.0 +fr 01_solar 1 94 2030 1.0 0.0 +fr 02_wind_on 1 94 2030 1.0 0.0 +fr 03_wind_off 1 94 2030 1.0 0.0 +fr 04_res 1 94 2030 1.0 0.0 +fr 05_nuclear 1 94 2030 1.0 0.0 +fr 06_coal 1 94 2030 0.0 0.0 +fr 07_gas 1 94 2030 0.0 0.0 +fr 08_non-res 1 94 2030 0.0 0.0 +fr 09_hydro_pump 1 94 2030 0.0 0.0 +fr 01_solar 1 95 2030 1.0 0.0 +fr 02_wind_on 1 95 2030 1.0 0.0 +fr 03_wind_off 1 95 2030 1.0 0.0 +fr 04_res 1 95 2030 1.0 0.0 +fr 05_nuclear 1 95 2030 1.0 0.0 +fr 06_coal 1 95 2030 0.0 0.0 +fr 07_gas 1 95 2030 0.0 0.0 +fr 08_non-res 1 95 2030 0.0 0.0 +fr 09_hydro_pump 1 95 2030 0.0 0.0 +fr 01_solar 1 96 2030 1.0 0.0 +fr 02_wind_on 1 96 2030 1.0 0.0 +fr 03_wind_off 1 96 2030 1.0 0.0 +fr 04_res 1 96 2030 1.0 0.0 +fr 05_nuclear 1 96 2030 1.0 0.0 +fr 06_coal 1 96 2030 0.0 0.0 +fr 07_gas 1 96 2030 0.0 0.0 +fr 08_non-res 1 96 2030 0.0 0.0 +fr 09_hydro_pump 1 96 2030 0.0 0.0 +fr 01_solar 1 97 2030 1.0 0.0 +fr 02_wind_on 1 97 2030 1.0 0.0 +fr 03_wind_off 1 97 2030 1.0 0.0 +fr 04_res 1 97 2030 1.0 0.0 +fr 05_nuclear 1 97 2030 1.0 0.0 +fr 06_coal 1 97 2030 0.0 0.0 +fr 07_gas 1 97 2030 0.0 0.0 +fr 08_non-res 1 97 2030 0.0 0.0 +fr 09_hydro_pump 1 97 2030 0.0 0.0 +fr 01_solar 1 98 2030 1.0 0.0 +fr 02_wind_on 1 98 2030 1.0 0.0 +fr 03_wind_off 1 98 2030 1.0 0.0 +fr 04_res 1 98 2030 1.0 0.0 +fr 05_nuclear 1 98 2030 1.0 0.0 +fr 06_coal 1 98 2030 0.0 0.0 +fr 07_gas 1 98 2030 0.0 0.0 +fr 08_non-res 1 98 2030 0.0 0.0 +fr 09_hydro_pump 1 98 2030 0.0 0.0 +fr 01_solar 1 99 2030 1.0 0.0 +fr 02_wind_on 1 99 2030 1.0 0.0 +fr 03_wind_off 1 99 2030 1.0 0.0 +fr 04_res 1 99 2030 1.0 0.0 +fr 05_nuclear 1 99 2030 1.0 0.0 +fr 06_coal 1 99 2030 0.0 0.0 +fr 07_gas 1 99 2030 0.0 0.0 +fr 08_non-res 1 99 2030 0.0 0.0 +fr 09_hydro_pump 1 99 2030 0.0 0.0 +fr 01_solar 1 100 2030 1.0 0.0 +fr 02_wind_on 1 100 2030 1.0 0.0 +fr 03_wind_off 1 100 2030 1.0 0.0 +fr 04_res 1 100 2030 1.0 0.0 +fr 05_nuclear 1 100 2030 1.0 0.0 +fr 06_coal 1 100 2030 0.0 0.0 +fr 07_gas 1 100 2030 0.0 0.0 +fr 08_non-res 1 100 2030 0.0 0.0 +fr 09_hydro_pump 1 100 2030 0.0 0.0 +fr 01_solar 1 101 2030 1.0 0.0 +fr 02_wind_on 1 101 2030 1.0 0.0 +fr 03_wind_off 1 101 2030 1.0 0.0 +fr 04_res 1 101 2030 1.0 0.0 +fr 05_nuclear 1 101 2030 1.0 0.0 +fr 06_coal 1 101 2030 0.0 0.0 +fr 07_gas 1 101 2030 0.0 0.0 +fr 08_non-res 1 101 2030 0.0 0.0 +fr 09_hydro_pump 1 101 2030 0.0 0.0 +fr 01_solar 1 102 2030 1.0 0.0 +fr 02_wind_on 1 102 2030 1.0 0.0 +fr 03_wind_off 1 102 2030 1.0 0.0 +fr 04_res 1 102 2030 1.0 0.0 +fr 05_nuclear 1 102 2030 1.0 0.0 +fr 06_coal 1 102 2030 1.0 0.0 +fr 07_gas 1 102 2030 0.0 0.0 +fr 08_non-res 1 102 2030 0.0 0.0 +fr 09_hydro_pump 1 102 2030 0.0 0.0 +fr 01_solar 1 103 2030 1.0 0.0 +fr 02_wind_on 1 103 2030 1.0 0.0 +fr 03_wind_off 1 103 2030 1.0 0.0 +fr 04_res 1 103 2030 1.0 0.0 +fr 05_nuclear 1 103 2030 1.0 0.0 +fr 06_coal 1 103 2030 1.0 0.0 +fr 07_gas 1 103 2030 0.0 0.0 +fr 08_non-res 1 103 2030 0.0 0.0 +fr 09_hydro_pump 1 103 2030 0.0 0.0 +fr 01_solar 1 104 2030 1.0 0.0 +fr 02_wind_on 1 104 2030 1.0 0.0 +fr 03_wind_off 1 104 2030 1.0 0.0 +fr 04_res 1 104 2030 1.0 0.0 +fr 05_nuclear 1 104 2030 1.0 0.0 +fr 06_coal 1 104 2030 1.0 0.0 +fr 07_gas 1 104 2030 0.0 0.0 +fr 08_non-res 1 104 2030 0.0 0.0 +fr 09_hydro_pump 1 104 2030 0.0 0.0 +fr 01_solar 1 105 2030 1.0 0.0 +fr 02_wind_on 1 105 2030 1.0 0.0 +fr 03_wind_off 1 105 2030 1.0 0.0 +fr 04_res 1 105 2030 1.0 0.0 +fr 05_nuclear 1 105 2030 1.0 0.0 +fr 06_coal 1 105 2030 1.0 0.0 +fr 07_gas 1 105 2030 0.0 0.0 +fr 08_non-res 1 105 2030 0.0 0.0 +fr 09_hydro_pump 1 105 2030 0.0 0.0 +fr 01_solar 1 106 2030 1.0 0.0 +fr 02_wind_on 1 106 2030 1.0 0.0 +fr 03_wind_off 1 106 2030 1.0 0.0 +fr 04_res 1 106 2030 1.0 0.0 +fr 05_nuclear 1 106 2030 1.0 0.0 +fr 06_coal 1 106 2030 1.0 0.0 +fr 07_gas 1 106 2030 0.0 0.0 +fr 08_non-res 1 106 2030 0.0 0.0 +fr 09_hydro_pump 1 106 2030 0.0 0.0 +fr 01_solar 1 107 2030 1.0 0.0 +fr 02_wind_on 1 107 2030 1.0 0.0 +fr 03_wind_off 1 107 2030 1.0 0.0 +fr 04_res 1 107 2030 1.0 0.0 +fr 05_nuclear 1 107 2030 1.0 0.0 +fr 06_coal 1 107 2030 1.0 0.0 +fr 07_gas 1 107 2030 0.0 0.0 +fr 08_non-res 1 107 2030 0.0 0.0 +fr 09_hydro_pump 1 107 2030 0.0 0.0 +fr 01_solar 1 108 2030 1.0 0.0 +fr 02_wind_on 1 108 2030 1.0 0.0 +fr 03_wind_off 1 108 2030 1.0 0.0 +fr 04_res 1 108 2030 1.0 0.0 +fr 05_nuclear 1 108 2030 1.0 0.0 +fr 06_coal 1 108 2030 1.0 0.0 +fr 07_gas 1 108 2030 0.0 0.0 +fr 08_non-res 1 108 2030 0.0 0.0 +fr 09_hydro_pump 1 108 2030 0.0 0.0 +fr 01_solar 1 109 2030 1.0 0.0 +fr 02_wind_on 1 109 2030 1.0 0.0 +fr 03_wind_off 1 109 2030 1.0 0.0 +fr 04_res 1 109 2030 1.0 0.0 +fr 05_nuclear 1 109 2030 1.0 0.0 +fr 06_coal 1 109 2030 1.0 0.0 +fr 07_gas 1 109 2030 0.0 0.0 +fr 08_non-res 1 109 2030 0.0 0.0 +fr 09_hydro_pump 1 109 2030 0.0 0.0 +fr 01_solar 1 110 2030 1.0 0.0 +fr 02_wind_on 1 110 2030 1.0 0.0 +fr 03_wind_off 1 110 2030 1.0 0.0 +fr 04_res 1 110 2030 1.0 0.0 +fr 05_nuclear 1 110 2030 1.0 0.0 +fr 06_coal 1 110 2030 1.0 0.0 +fr 07_gas 1 110 2030 0.0 0.0 +fr 08_non-res 1 110 2030 0.0 0.0 +fr 09_hydro_pump 1 110 2030 0.0 0.0 +fr 01_solar 1 111 2030 1.0 0.0 +fr 02_wind_on 1 111 2030 1.0 0.0 +fr 03_wind_off 1 111 2030 1.0 0.0 +fr 04_res 1 111 2030 1.0 0.0 +fr 05_nuclear 1 111 2030 1.0 0.0 +fr 06_coal 1 111 2030 1.0 0.0 +fr 07_gas 1 111 2030 0.0 0.0 +fr 08_non-res 1 111 2030 0.0 0.0 +fr 09_hydro_pump 1 111 2030 0.0 0.0 +fr 01_solar 1 112 2030 1.0 0.0 +fr 02_wind_on 1 112 2030 1.0 0.0 +fr 03_wind_off 1 112 2030 1.0 0.0 +fr 04_res 1 112 2030 1.0 0.0 +fr 05_nuclear 1 112 2030 1.0 0.0 +fr 06_coal 1 112 2030 1.0 0.0 +fr 07_gas 1 112 2030 0.0 0.0 +fr 08_non-res 1 112 2030 0.0 0.0 +fr 09_hydro_pump 1 112 2030 0.0 0.0 +fr 01_solar 1 113 2030 1.0 0.0 +fr 02_wind_on 1 113 2030 1.0 0.0 +fr 03_wind_off 1 113 2030 1.0 0.0 +fr 04_res 1 113 2030 1.0 0.0 +fr 05_nuclear 1 113 2030 1.0 0.0 +fr 06_coal 1 113 2030 1.0 0.0 +fr 07_gas 1 113 2030 0.0 0.0 +fr 08_non-res 1 113 2030 0.0 0.0 +fr 09_hydro_pump 1 113 2030 0.0 0.0 +fr 01_solar 1 114 2030 1.0 0.0 +fr 02_wind_on 1 114 2030 1.0 0.0 +fr 03_wind_off 1 114 2030 1.0 0.0 +fr 04_res 1 114 2030 1.0 0.0 +fr 05_nuclear 1 114 2030 1.0 0.0 +fr 06_coal 1 114 2030 1.0 0.0 +fr 07_gas 1 114 2030 0.0 0.0 +fr 08_non-res 1 114 2030 0.0 0.0 +fr 09_hydro_pump 1 114 2030 0.0 0.0 +fr 01_solar 1 115 2030 1.0 0.0 +fr 02_wind_on 1 115 2030 1.0 0.0 +fr 03_wind_off 1 115 2030 1.0 0.0 +fr 04_res 1 115 2030 1.0 0.0 +fr 05_nuclear 1 115 2030 1.0 0.0 +fr 06_coal 1 115 2030 1.0 0.0 +fr 07_gas 1 115 2030 0.0 0.0 +fr 08_non-res 1 115 2030 0.0 0.0 +fr 09_hydro_pump 1 115 2030 0.0 0.0 +fr 01_solar 1 116 2030 1.0 0.0 +fr 02_wind_on 1 116 2030 1.0 0.0 +fr 03_wind_off 1 116 2030 1.0 0.0 +fr 04_res 1 116 2030 1.0 0.0 +fr 05_nuclear 1 116 2030 1.0 0.0 +fr 06_coal 1 116 2030 1.0 0.0 +fr 07_gas 1 116 2030 0.0 0.0 +fr 08_non-res 1 116 2030 0.0 0.0 +fr 09_hydro_pump 1 116 2030 0.0 0.0 +fr 01_solar 1 117 2030 1.0 0.0 +fr 02_wind_on 1 117 2030 1.0 0.0 +fr 03_wind_off 1 117 2030 1.0 0.0 +fr 04_res 1 117 2030 1.0 0.0 +fr 05_nuclear 1 117 2030 1.0 0.0 +fr 06_coal 1 117 2030 1.0 0.0 +fr 07_gas 1 117 2030 0.0 0.0 +fr 08_non-res 1 117 2030 0.0 0.0 +fr 09_hydro_pump 1 117 2030 0.0 0.0 +fr 01_solar 1 118 2030 1.0 0.0 +fr 02_wind_on 1 118 2030 1.0 0.0 +fr 03_wind_off 1 118 2030 1.0 0.0 +fr 04_res 1 118 2030 1.0 0.0 +fr 05_nuclear 1 118 2030 1.0 0.0 +fr 06_coal 1 118 2030 1.0 0.0 +fr 07_gas 1 118 2030 0.0 0.0 +fr 08_non-res 1 118 2030 0.0 0.0 +fr 09_hydro_pump 1 118 2030 0.0 0.0 +fr 01_solar 1 119 2030 1.0 0.0 +fr 02_wind_on 1 119 2030 1.0 0.0 +fr 03_wind_off 1 119 2030 1.0 0.0 +fr 04_res 1 119 2030 1.0 0.0 +fr 05_nuclear 1 119 2030 1.0 0.0 +fr 06_coal 1 119 2030 1.0 0.0 +fr 07_gas 1 119 2030 0.0 0.0 +fr 08_non-res 1 119 2030 0.0 0.0 +fr 09_hydro_pump 1 119 2030 0.0 0.0 +fr 01_solar 1 120 2030 1.0 0.0 +fr 02_wind_on 1 120 2030 1.0 0.0 +fr 03_wind_off 1 120 2030 1.0 0.0 +fr 04_res 1 120 2030 1.0 0.0 +fr 05_nuclear 1 120 2030 1.0 0.0 +fr 06_coal 1 120 2030 1.0 0.0 +fr 07_gas 1 120 2030 0.0 0.0 +fr 08_non-res 1 120 2030 0.0 0.0 +fr 09_hydro_pump 1 120 2030 0.0 0.0 +fr 01_solar 1 121 2030 1.0 0.0 +fr 02_wind_on 1 121 2030 1.0 0.0 +fr 03_wind_off 1 121 2030 1.0 0.0 +fr 04_res 1 121 2030 1.0 0.0 +fr 05_nuclear 1 121 2030 1.0 0.0 +fr 06_coal 1 121 2030 1.0 0.0 +fr 07_gas 1 121 2030 0.0 0.0 +fr 08_non-res 1 121 2030 0.0 0.0 +fr 09_hydro_pump 1 121 2030 0.0 0.0 +fr 01_solar 1 122 2030 1.0 0.0 +fr 02_wind_on 1 122 2030 1.0 0.0 +fr 03_wind_off 1 122 2030 1.0 0.0 +fr 04_res 1 122 2030 1.0 0.0 +fr 05_nuclear 1 122 2030 1.0 0.0 +fr 06_coal 1 122 2030 1.0 0.0 +fr 07_gas 1 122 2030 1.0 0.0 +fr 08_non-res 1 122 2030 0.0 0.0 +fr 09_hydro_pump 1 122 2030 0.0 0.0 +fr 01_solar 1 123 2030 1.0 0.0 +fr 02_wind_on 1 123 2030 1.0 0.0 +fr 03_wind_off 1 123 2030 1.0 0.0 +fr 04_res 1 123 2030 1.0 0.0 +fr 05_nuclear 1 123 2030 1.0 0.0 +fr 06_coal 1 123 2030 1.0 0.0 +fr 07_gas 1 123 2030 1.0 0.0 +fr 08_non-res 1 123 2030 0.0 0.0 +fr 09_hydro_pump 1 123 2030 0.0 0.0 +fr 01_solar 1 124 2030 1.0 0.0 +fr 02_wind_on 1 124 2030 1.0 0.0 +fr 03_wind_off 1 124 2030 1.0 0.0 +fr 04_res 1 124 2030 1.0 0.0 +fr 05_nuclear 1 124 2030 1.0 0.0 +fr 06_coal 1 124 2030 1.0 0.0 +fr 07_gas 1 124 2030 1.0 0.0 +fr 08_non-res 1 124 2030 0.0 0.0 +fr 09_hydro_pump 1 124 2030 0.0 0.0 +fr 01_solar 1 125 2030 1.0 0.0 +fr 02_wind_on 1 125 2030 1.0 0.0 +fr 03_wind_off 1 125 2030 1.0 0.0 +fr 04_res 1 125 2030 1.0 0.0 +fr 05_nuclear 1 125 2030 1.0 0.0 +fr 06_coal 1 125 2030 1.0 0.0 +fr 07_gas 1 125 2030 1.0 0.0 +fr 08_non-res 1 125 2030 0.0 0.0 +fr 09_hydro_pump 1 125 2030 0.0 0.0 +fr 01_solar 1 126 2030 1.0 0.0 +fr 02_wind_on 1 126 2030 1.0 0.0 +fr 03_wind_off 1 126 2030 1.0 0.0 +fr 04_res 1 126 2030 1.0 0.0 +fr 05_nuclear 1 126 2030 1.0 0.0 +fr 06_coal 1 126 2030 1.0 0.0 +fr 07_gas 1 126 2030 1.0 0.0 +fr 08_non-res 1 126 2030 0.0 0.0 +fr 09_hydro_pump 1 126 2030 0.0 0.0 +fr 01_solar 1 127 2030 1.0 0.0 +fr 02_wind_on 1 127 2030 1.0 0.0 +fr 03_wind_off 1 127 2030 1.0 0.0 +fr 04_res 1 127 2030 1.0 0.0 +fr 05_nuclear 1 127 2030 1.0 0.0 +fr 06_coal 1 127 2030 1.0 0.0 +fr 07_gas 1 127 2030 1.0 0.0 +fr 08_non-res 1 127 2030 0.0 0.0 +fr 09_hydro_pump 1 127 2030 0.0 0.0 +fr 01_solar 1 128 2030 1.0 0.0 +fr 02_wind_on 1 128 2030 1.0 0.0 +fr 03_wind_off 1 128 2030 1.0 0.0 +fr 04_res 1 128 2030 1.0 0.0 +fr 05_nuclear 1 128 2030 1.0 0.0 +fr 06_coal 1 128 2030 1.0 0.0 +fr 07_gas 1 128 2030 1.0 0.0 +fr 08_non-res 1 128 2030 0.0 0.0 +fr 09_hydro_pump 1 128 2030 0.0 0.0 +fr 01_solar 1 129 2030 1.0 0.0 +fr 02_wind_on 1 129 2030 1.0 0.0 +fr 03_wind_off 1 129 2030 1.0 0.0 +fr 04_res 1 129 2030 1.0 0.0 +fr 05_nuclear 1 129 2030 1.0 0.0 +fr 06_coal 1 129 2030 1.0 0.0 +fr 07_gas 1 129 2030 1.0 0.0 +fr 08_non-res 1 129 2030 0.0 0.0 +fr 09_hydro_pump 1 129 2030 0.0 0.0 +fr 01_solar 1 130 2030 1.0 0.0 +fr 02_wind_on 1 130 2030 1.0 0.0 +fr 03_wind_off 1 130 2030 1.0 0.0 +fr 04_res 1 130 2030 1.0 0.0 +fr 05_nuclear 1 130 2030 1.0 0.0 +fr 06_coal 1 130 2030 1.0 0.0 +fr 07_gas 1 130 2030 1.0 0.0 +fr 08_non-res 1 130 2030 0.0 0.0 +fr 09_hydro_pump 1 130 2030 0.0 0.0 +fr 01_solar 1 131 2030 1.0 0.0 +fr 02_wind_on 1 131 2030 1.0 0.0 +fr 03_wind_off 1 131 2030 1.0 0.0 +fr 04_res 1 131 2030 1.0 0.0 +fr 05_nuclear 1 131 2030 1.0 0.0 +fr 06_coal 1 131 2030 1.0 0.0 +fr 07_gas 1 131 2030 1.0 0.0 +fr 08_non-res 1 131 2030 0.0 0.0 +fr 09_hydro_pump 1 131 2030 0.0 0.0 +fr 01_solar 1 132 2030 1.0 0.0 +fr 02_wind_on 1 132 2030 1.0 0.0 +fr 03_wind_off 1 132 2030 1.0 0.0 +fr 04_res 1 132 2030 1.0 0.0 +fr 05_nuclear 1 132 2030 1.0 0.0 +fr 06_coal 1 132 2030 1.0 0.0 +fr 07_gas 1 132 2030 1.0 0.0 +fr 08_non-res 1 132 2030 0.0 0.0 +fr 09_hydro_pump 1 132 2030 0.0 0.0 +fr 01_solar 1 133 2030 1.0 0.0 +fr 02_wind_on 1 133 2030 1.0 0.0 +fr 03_wind_off 1 133 2030 1.0 0.0 +fr 04_res 1 133 2030 1.0 0.0 +fr 05_nuclear 1 133 2030 1.0 0.0 +fr 06_coal 1 133 2030 1.0 0.0 +fr 07_gas 1 133 2030 1.0 0.0 +fr 08_non-res 1 133 2030 0.0 0.0 +fr 09_hydro_pump 1 133 2030 0.0 0.0 +fr 01_solar 1 134 2030 1.0 0.0 +fr 02_wind_on 1 134 2030 1.0 0.0 +fr 03_wind_off 1 134 2030 1.0 0.0 +fr 04_res 1 134 2030 1.0 0.0 +fr 05_nuclear 1 134 2030 1.0 0.0 +fr 06_coal 1 134 2030 1.0 0.0 +fr 07_gas 1 134 2030 1.0 0.0 +fr 08_non-res 1 134 2030 0.0 0.0 +fr 09_hydro_pump 1 134 2030 0.0 0.0 +fr 01_solar 1 135 2030 1.0 0.0 +fr 02_wind_on 1 135 2030 1.0 0.0 +fr 03_wind_off 1 135 2030 1.0 0.0 +fr 04_res 1 135 2030 1.0 0.0 +fr 05_nuclear 1 135 2030 1.0 0.0 +fr 06_coal 1 135 2030 1.0 0.0 +fr 07_gas 1 135 2030 1.0 0.0 +fr 08_non-res 1 135 2030 0.0 0.0 +fr 09_hydro_pump 1 135 2030 0.0 0.0 +fr 01_solar 1 136 2030 1.0 0.0 +fr 02_wind_on 1 136 2030 1.0 0.0 +fr 03_wind_off 1 136 2030 1.0 0.0 +fr 04_res 1 136 2030 1.0 0.0 +fr 05_nuclear 1 136 2030 1.0 0.0 +fr 06_coal 1 136 2030 1.0 0.0 +fr 07_gas 1 136 2030 1.0 0.0 +fr 08_non-res 1 136 2030 0.0 0.0 +fr 09_hydro_pump 1 136 2030 0.0 0.0 +fr 01_solar 1 137 2030 1.0 0.0 +fr 02_wind_on 1 137 2030 1.0 0.0 +fr 03_wind_off 1 137 2030 1.0 0.0 +fr 04_res 1 137 2030 1.0 0.0 +fr 05_nuclear 1 137 2030 1.0 0.0 +fr 06_coal 1 137 2030 1.0 0.0 +fr 07_gas 1 137 2030 1.0 0.0 +fr 08_non-res 1 137 2030 0.0 0.0 +fr 09_hydro_pump 1 137 2030 0.0 0.0 +fr 01_solar 1 138 2030 1.0 0.0 +fr 02_wind_on 1 138 2030 1.0 0.0 +fr 03_wind_off 1 138 2030 1.0 0.0 +fr 04_res 1 138 2030 1.0 0.0 +fr 05_nuclear 1 138 2030 1.0 0.0 +fr 06_coal 1 138 2030 1.0 0.0 +fr 07_gas 1 138 2030 1.0 0.0 +fr 08_non-res 1 138 2030 0.0 0.0 +fr 09_hydro_pump 1 138 2030 0.0 0.0 +fr 01_solar 1 139 2030 1.0 0.0 +fr 02_wind_on 1 139 2030 1.0 0.0 +fr 03_wind_off 1 139 2030 1.0 0.0 +fr 04_res 1 139 2030 1.0 0.0 +fr 05_nuclear 1 139 2030 1.0 0.0 +fr 06_coal 1 139 2030 1.0 0.0 +fr 07_gas 1 139 2030 1.0 0.0 +fr 08_non-res 1 139 2030 0.0 0.0 +fr 09_hydro_pump 1 139 2030 0.0 0.0 +fr 01_solar 1 140 2030 1.0 0.0 +fr 02_wind_on 1 140 2030 1.0 0.0 +fr 03_wind_off 1 140 2030 1.0 0.0 +fr 04_res 1 140 2030 1.0 0.0 +fr 05_nuclear 1 140 2030 1.0 0.0 +fr 06_coal 1 140 2030 1.0 0.0 +fr 07_gas 1 140 2030 1.0 0.0 +fr 08_non-res 1 140 2030 0.0 0.0 +fr 09_hydro_pump 1 140 2030 0.0 0.0 +fr 01_solar 1 141 2030 1.0 0.0 +fr 02_wind_on 1 141 2030 1.0 0.0 +fr 03_wind_off 1 141 2030 1.0 0.0 +fr 04_res 1 141 2030 1.0 0.0 +fr 05_nuclear 1 141 2030 1.0 0.0 +fr 06_coal 1 141 2030 1.0 0.0 +fr 07_gas 1 141 2030 1.0 0.0 +fr 08_non-res 1 141 2030 0.0 0.0 +fr 09_hydro_pump 1 141 2030 0.0 0.0 +fr 01_solar 1 142 2030 1.0 0.0 +fr 02_wind_on 1 142 2030 1.0 0.0 +fr 03_wind_off 1 142 2030 1.0 0.0 +fr 04_res 1 142 2030 1.0 0.0 +fr 05_nuclear 1 142 2030 1.0 0.0 +fr 06_coal 1 142 2030 1.0 0.0 +fr 07_gas 1 142 2030 1.0 0.0 +fr 08_non-res 1 142 2030 1.0 0.0 +fr 09_hydro_pump 1 142 2030 0.0 0.0 +fr 01_solar 1 143 2030 1.0 0.0 +fr 02_wind_on 1 143 2030 1.0 0.0 +fr 03_wind_off 1 143 2030 1.0 0.0 +fr 04_res 1 143 2030 1.0 0.0 +fr 05_nuclear 1 143 2030 1.0 0.0 +fr 06_coal 1 143 2030 1.0 0.0 +fr 07_gas 1 143 2030 1.0 0.0 +fr 08_non-res 1 143 2030 1.0 0.0 +fr 09_hydro_pump 1 143 2030 0.0 0.0 +fr 01_solar 1 144 2030 1.0 0.0 +fr 02_wind_on 1 144 2030 1.0 0.0 +fr 03_wind_off 1 144 2030 1.0 0.0 +fr 04_res 1 144 2030 1.0 0.0 +fr 05_nuclear 1 144 2030 1.0 0.0 +fr 06_coal 1 144 2030 1.0 0.0 +fr 07_gas 1 144 2030 1.0 0.0 +fr 08_non-res 1 144 2030 1.0 0.0 +fr 09_hydro_pump 1 144 2030 0.0 0.0 +fr 01_solar 1 145 2030 1.0 0.0 +fr 02_wind_on 1 145 2030 1.0 0.0 +fr 03_wind_off 1 145 2030 1.0 0.0 +fr 04_res 1 145 2030 1.0 0.0 +fr 05_nuclear 1 145 2030 1.0 0.0 +fr 06_coal 1 145 2030 1.0 0.0 +fr 07_gas 1 145 2030 1.0 0.0 +fr 08_non-res 1 145 2030 1.0 0.0 +fr 09_hydro_pump 1 145 2030 0.0 0.0 +fr 01_solar 1 146 2030 1.0 0.0 +fr 02_wind_on 1 146 2030 1.0 0.0 +fr 03_wind_off 1 146 2030 1.0 0.0 +fr 04_res 1 146 2030 1.0 0.0 +fr 05_nuclear 1 146 2030 1.0 0.0 +fr 06_coal 1 146 2030 1.0 0.0 +fr 07_gas 1 146 2030 1.0 0.0 +fr 08_non-res 1 146 2030 1.0 0.0 +fr 09_hydro_pump 1 146 2030 0.0 0.0 +fr 01_solar 1 147 2030 1.0 0.0 +fr 02_wind_on 1 147 2030 1.0 0.0 +fr 03_wind_off 1 147 2030 1.0 0.0 +fr 04_res 1 147 2030 1.0 0.0 +fr 05_nuclear 1 147 2030 1.0 0.0 +fr 06_coal 1 147 2030 1.0 0.0 +fr 07_gas 1 147 2030 1.0 0.0 +fr 08_non-res 1 147 2030 1.0 0.0 +fr 09_hydro_pump 1 147 2030 0.0 0.0 +fr 01_solar 1 148 2030 1.0 0.0 +fr 02_wind_on 1 148 2030 1.0 0.0 +fr 03_wind_off 1 148 2030 1.0 0.0 +fr 04_res 1 148 2030 1.0 0.0 +fr 05_nuclear 1 148 2030 1.0 0.0 +fr 06_coal 1 148 2030 1.0 0.0 +fr 07_gas 1 148 2030 1.0 0.0 +fr 08_non-res 1 148 2030 1.0 0.0 +fr 09_hydro_pump 1 148 2030 0.0 0.0 +fr 01_solar 1 149 2030 1.0 0.0 +fr 02_wind_on 1 149 2030 1.0 0.0 +fr 03_wind_off 1 149 2030 1.0 0.0 +fr 04_res 1 149 2030 1.0 0.0 +fr 05_nuclear 1 149 2030 1.0 0.0 +fr 06_coal 1 149 2030 1.0 0.0 +fr 07_gas 1 149 2030 1.0 0.0 +fr 08_non-res 1 149 2030 1.0 0.0 +fr 09_hydro_pump 1 149 2030 0.0 0.0 +fr 01_solar 1 150 2030 1.0 0.0 +fr 02_wind_on 1 150 2030 1.0 0.0 +fr 03_wind_off 1 150 2030 1.0 0.0 +fr 04_res 1 150 2030 1.0 0.0 +fr 05_nuclear 1 150 2030 1.0 0.0 +fr 06_coal 1 150 2030 1.0 0.0 +fr 07_gas 1 150 2030 1.0 0.0 +fr 08_non-res 1 150 2030 1.0 0.0 +fr 09_hydro_pump 1 150 2030 0.0 0.0 +fr 01_solar 1 151 2030 1.0 0.0 +fr 02_wind_on 1 151 2030 1.0 0.0 +fr 03_wind_off 1 151 2030 1.0 0.0 +fr 04_res 1 151 2030 1.0 0.0 +fr 05_nuclear 1 151 2030 1.0 0.0 +fr 06_coal 1 151 2030 1.0 0.0 +fr 07_gas 1 151 2030 1.0 0.0 +fr 08_non-res 1 151 2030 1.0 0.0 +fr 09_hydro_pump 1 151 2030 0.0 0.0 +fr 01_solar 1 152 2030 1.0 0.0 +fr 02_wind_on 1 152 2030 1.0 0.0 +fr 03_wind_off 1 152 2030 1.0 0.0 +fr 04_res 1 152 2030 1.0 0.0 +fr 05_nuclear 1 152 2030 1.0 0.0 +fr 06_coal 1 152 2030 1.0 0.0 +fr 07_gas 1 152 2030 1.0 0.0 +fr 08_non-res 1 152 2030 1.0 0.0 +fr 09_hydro_pump 1 152 2030 0.0 0.0 +fr 01_solar 1 153 2030 1.0 0.0 +fr 02_wind_on 1 153 2030 1.0 0.0 +fr 03_wind_off 1 153 2030 1.0 0.0 +fr 04_res 1 153 2030 1.0 0.0 +fr 05_nuclear 1 153 2030 1.0 0.0 +fr 06_coal 1 153 2030 1.0 0.0 +fr 07_gas 1 153 2030 1.0 0.0 +fr 08_non-res 1 153 2030 1.0 0.0 +fr 09_hydro_pump 1 153 2030 0.0 0.0 +fr 01_solar 1 154 2030 1.0 0.0 +fr 02_wind_on 1 154 2030 1.0 0.0 +fr 03_wind_off 1 154 2030 1.0 0.0 +fr 04_res 1 154 2030 1.0 0.0 +fr 05_nuclear 1 154 2030 1.0 0.0 +fr 06_coal 1 154 2030 1.0 0.0 +fr 07_gas 1 154 2030 1.0 0.0 +fr 08_non-res 1 154 2030 1.0 0.0 +fr 09_hydro_pump 1 154 2030 0.0 0.0 +fr 01_solar 1 155 2030 1.0 0.0 +fr 02_wind_on 1 155 2030 1.0 0.0 +fr 03_wind_off 1 155 2030 1.0 0.0 +fr 04_res 1 155 2030 1.0 0.0 +fr 05_nuclear 1 155 2030 1.0 0.0 +fr 06_coal 1 155 2030 1.0 0.0 +fr 07_gas 1 155 2030 1.0 0.0 +fr 08_non-res 1 155 2030 1.0 0.0 +fr 09_hydro_pump 1 155 2030 0.0 0.0 +fr 01_solar 1 156 2030 1.0 0.0 +fr 02_wind_on 1 156 2030 1.0 0.0 +fr 03_wind_off 1 156 2030 1.0 0.0 +fr 04_res 1 156 2030 1.0 0.0 +fr 05_nuclear 1 156 2030 1.0 0.0 +fr 06_coal 1 156 2030 1.0 0.0 +fr 07_gas 1 156 2030 1.0 0.0 +fr 08_non-res 1 156 2030 1.0 0.0 +fr 09_hydro_pump 1 156 2030 0.0 0.0 +fr 01_solar 1 157 2030 1.0 0.0 +fr 02_wind_on 1 157 2030 1.0 0.0 +fr 03_wind_off 1 157 2030 1.0 0.0 +fr 04_res 1 157 2030 1.0 0.0 +fr 05_nuclear 1 157 2030 1.0 0.0 +fr 06_coal 1 157 2030 1.0 0.0 +fr 07_gas 1 157 2030 1.0 0.0 +fr 08_non-res 1 157 2030 1.0 0.0 +fr 09_hydro_pump 1 157 2030 0.0 0.0 +fr 01_solar 1 158 2030 1.0 0.0 +fr 02_wind_on 1 158 2030 1.0 0.0 +fr 03_wind_off 1 158 2030 1.0 0.0 +fr 04_res 1 158 2030 1.0 0.0 +fr 05_nuclear 1 158 2030 1.0 0.0 +fr 06_coal 1 158 2030 1.0 0.0 +fr 07_gas 1 158 2030 1.0 0.0 +fr 08_non-res 1 158 2030 1.0 0.0 +fr 09_hydro_pump 1 158 2030 0.0 0.0 +fr 01_solar 1 159 2030 1.0 0.0 +fr 02_wind_on 1 159 2030 1.0 0.0 +fr 03_wind_off 1 159 2030 1.0 0.0 +fr 04_res 1 159 2030 1.0 0.0 +fr 05_nuclear 1 159 2030 1.0 0.0 +fr 06_coal 1 159 2030 1.0 0.0 +fr 07_gas 1 159 2030 1.0 0.0 +fr 08_non-res 1 159 2030 1.0 0.0 +fr 09_hydro_pump 1 159 2030 0.0 0.0 +fr 01_solar 1 160 2030 1.0 0.0 +fr 02_wind_on 1 160 2030 1.0 0.0 +fr 03_wind_off 1 160 2030 1.0 0.0 +fr 04_res 1 160 2030 1.0 0.0 +fr 05_nuclear 1 160 2030 1.0 0.0 +fr 06_coal 1 160 2030 1.0 0.0 +fr 07_gas 1 160 2030 1.0 0.0 +fr 08_non-res 1 160 2030 1.0 0.0 +fr 09_hydro_pump 1 160 2030 0.0 0.0 +fr 01_solar 1 161 2030 1.0 0.0 +fr 02_wind_on 1 161 2030 1.0 0.0 +fr 03_wind_off 1 161 2030 1.0 0.0 +fr 04_res 1 161 2030 1.0 0.0 +fr 05_nuclear 1 161 2030 1.0 0.0 +fr 06_coal 1 161 2030 1.0 0.0 +fr 07_gas 1 161 2030 1.0 0.0 +fr 08_non-res 1 161 2030 1.0 0.0 +fr 09_hydro_pump 1 161 2030 0.0 0.0 +fr 01_solar 1 162 2030 1.0 0.0 +fr 02_wind_on 1 162 2030 1.0 0.0 +fr 03_wind_off 1 162 2030 1.0 0.0 +fr 04_res 1 162 2030 1.0 0.0 +fr 05_nuclear 1 162 2030 1.0 0.0 +fr 06_coal 1 162 2030 1.0 0.0 +fr 07_gas 1 162 2030 1.0 0.0 +fr 08_non-res 1 162 2030 1.0 0.0 +fr 09_hydro_pump 1 162 2030 1.0 0.0 +fr 01_solar 1 163 2030 1.0 0.0 +fr 02_wind_on 1 163 2030 1.0 0.0 +fr 03_wind_off 1 163 2030 1.0 0.0 +fr 04_res 1 163 2030 1.0 0.0 +fr 05_nuclear 1 163 2030 1.0 0.0 +fr 06_coal 1 163 2030 1.0 0.0 +fr 07_gas 1 163 2030 1.0 0.0 +fr 08_non-res 1 163 2030 1.0 0.0 +fr 09_hydro_pump 1 163 2030 1.0 0.0 +fr 01_solar 1 164 2030 1.0 0.0 +fr 02_wind_on 1 164 2030 1.0 0.0 +fr 03_wind_off 1 164 2030 1.0 0.0 +fr 04_res 1 164 2030 1.0 0.0 +fr 05_nuclear 1 164 2030 1.0 0.0 +fr 06_coal 1 164 2030 1.0 0.0 +fr 07_gas 1 164 2030 1.0 0.0 +fr 08_non-res 1 164 2030 1.0 0.0 +fr 09_hydro_pump 1 164 2030 1.0 0.0 +fr 01_solar 1 165 2030 1.0 0.0 +fr 02_wind_on 1 165 2030 1.0 0.0 +fr 03_wind_off 1 165 2030 1.0 0.0 +fr 04_res 1 165 2030 1.0 0.0 +fr 05_nuclear 1 165 2030 1.0 0.0 +fr 06_coal 1 165 2030 1.0 0.0 +fr 07_gas 1 165 2030 1.0 0.0 +fr 08_non-res 1 165 2030 1.0 0.0 +fr 09_hydro_pump 1 165 2030 1.0 0.0 +fr 01_solar 1 166 2030 1.0 0.0 +fr 02_wind_on 1 166 2030 1.0 0.0 +fr 03_wind_off 1 166 2030 1.0 0.0 +fr 04_res 1 166 2030 1.0 0.0 +fr 05_nuclear 1 166 2030 1.0 0.0 +fr 06_coal 1 166 2030 1.0 0.0 +fr 07_gas 1 166 2030 1.0 0.0 +fr 08_non-res 1 166 2030 1.0 0.0 +fr 09_hydro_pump 1 166 2030 1.0 0.0 +fr 01_solar 1 167 2030 1.0 0.0 +fr 02_wind_on 1 167 2030 1.0 0.0 +fr 03_wind_off 1 167 2030 1.0 0.0 +fr 04_res 1 167 2030 1.0 0.0 +fr 05_nuclear 1 167 2030 1.0 0.0 +fr 06_coal 1 167 2030 1.0 0.0 +fr 07_gas 1 167 2030 1.0 0.0 +fr 08_non-res 1 167 2030 1.0 0.0 +fr 09_hydro_pump 1 167 2030 1.0 0.0 +fr 01_solar 1 168 2030 1.0 0.0 +fr 02_wind_on 1 168 2030 1.0 0.0 +fr 03_wind_off 1 168 2030 1.0 0.0 +fr 04_res 1 168 2030 1.0 0.0 +fr 05_nuclear 1 168 2030 1.0 0.0 +fr 06_coal 1 168 2030 1.0 0.0 +fr 07_gas 1 168 2030 1.0 0.0 +fr 08_non-res 1 168 2030 1.0 0.0 +fr 09_hydro_pump 1 168 2030 1.0 0.0 +fr 01_solar 1 169 2030 0.0 0.0 +fr 02_wind_on 1 169 2030 0.0 0.0 +fr 03_wind_off 1 169 2030 0.0 0.0 +fr 04_res 1 169 2030 0.0 0.0 +fr 05_nuclear 1 169 2030 0.0 0.0 +fr 06_coal 1 169 2030 0.0 0.0 +fr 07_gas 1 169 2030 0.0 0.0 +fr 08_non-res 1 169 2030 0.0 0.0 +fr 09_hydro_pump 1 169 2030 0.0 0.0 +fr 01_solar 1 170 2030 1.0 0.0 +fr 02_wind_on 1 170 2030 0.0 0.0 +fr 03_wind_off 1 170 2030 0.0 0.0 +fr 04_res 1 170 2030 0.0 0.0 +fr 05_nuclear 1 170 2030 0.0 0.0 +fr 06_coal 1 170 2030 0.0 0.0 +fr 07_gas 1 170 2030 0.0 0.0 +fr 08_non-res 1 170 2030 0.0 0.0 +fr 09_hydro_pump 1 170 2030 0.0 0.0 +fr 01_solar 1 171 2030 1.0 0.0 +fr 02_wind_on 1 171 2030 0.0 0.0 +fr 03_wind_off 1 171 2030 0.0 0.0 +fr 04_res 1 171 2030 0.0 0.0 +fr 05_nuclear 1 171 2030 0.0 0.0 +fr 06_coal 1 171 2030 0.0 0.0 +fr 07_gas 1 171 2030 0.0 0.0 +fr 08_non-res 1 171 2030 0.0 0.0 +fr 09_hydro_pump 1 171 2030 0.0 0.0 +fr 01_solar 1 172 2030 1.0 0.0 +fr 02_wind_on 1 172 2030 0.0 0.0 +fr 03_wind_off 1 172 2030 0.0 0.0 +fr 04_res 1 172 2030 0.0 0.0 +fr 05_nuclear 1 172 2030 0.0 0.0 +fr 06_coal 1 172 2030 0.0 0.0 +fr 07_gas 1 172 2030 0.0 0.0 +fr 08_non-res 1 172 2030 0.0 0.0 +fr 09_hydro_pump 1 172 2030 0.0 0.0 +fr 01_solar 1 173 2030 1.0 0.0 +fr 02_wind_on 1 173 2030 0.0 0.0 +fr 03_wind_off 1 173 2030 0.0 0.0 +fr 04_res 1 173 2030 0.0 0.0 +fr 05_nuclear 1 173 2030 0.0 0.0 +fr 06_coal 1 173 2030 0.0 0.0 +fr 07_gas 1 173 2030 0.0 0.0 +fr 08_non-res 1 173 2030 0.0 0.0 +fr 09_hydro_pump 1 173 2030 0.0 0.0 +fr 01_solar 1 174 2030 1.0 0.0 +fr 02_wind_on 1 174 2030 0.0 0.0 +fr 03_wind_off 1 174 2030 0.0 0.0 +fr 04_res 1 174 2030 0.0 0.0 +fr 05_nuclear 1 174 2030 0.0 0.0 +fr 06_coal 1 174 2030 0.0 0.0 +fr 07_gas 1 174 2030 0.0 0.0 +fr 08_non-res 1 174 2030 0.0 0.0 +fr 09_hydro_pump 1 174 2030 0.0 0.0 +fr 01_solar 1 175 2030 1.0 0.0 +fr 02_wind_on 1 175 2030 0.0 0.0 +fr 03_wind_off 1 175 2030 0.0 0.0 +fr 04_res 1 175 2030 0.0 0.0 +fr 05_nuclear 1 175 2030 0.0 0.0 +fr 06_coal 1 175 2030 0.0 0.0 +fr 07_gas 1 175 2030 0.0 0.0 +fr 08_non-res 1 175 2030 0.0 0.0 +fr 09_hydro_pump 1 175 2030 0.0 0.0 +fr 01_solar 1 176 2030 1.0 0.0 +fr 02_wind_on 1 176 2030 0.0 0.0 +fr 03_wind_off 1 176 2030 0.0 0.0 +fr 04_res 1 176 2030 0.0 0.0 +fr 05_nuclear 1 176 2030 0.0 0.0 +fr 06_coal 1 176 2030 0.0 0.0 +fr 07_gas 1 176 2030 0.0 0.0 +fr 08_non-res 1 176 2030 0.0 0.0 +fr 09_hydro_pump 1 176 2030 0.0 0.0 +fr 01_solar 1 177 2030 1.0 0.0 +fr 02_wind_on 1 177 2030 0.0 0.0 +fr 03_wind_off 1 177 2030 0.0 0.0 +fr 04_res 1 177 2030 0.0 0.0 +fr 05_nuclear 1 177 2030 0.0 0.0 +fr 06_coal 1 177 2030 0.0 0.0 +fr 07_gas 1 177 2030 0.0 0.0 +fr 08_non-res 1 177 2030 0.0 0.0 +fr 09_hydro_pump 1 177 2030 0.0 0.0 +fr 01_solar 1 178 2030 1.0 0.0 +fr 02_wind_on 1 178 2030 0.0 0.0 +fr 03_wind_off 1 178 2030 0.0 0.0 +fr 04_res 1 178 2030 0.0 0.0 +fr 05_nuclear 1 178 2030 0.0 0.0 +fr 06_coal 1 178 2030 0.0 0.0 +fr 07_gas 1 178 2030 0.0 0.0 +fr 08_non-res 1 178 2030 0.0 0.0 +fr 09_hydro_pump 1 178 2030 0.0 0.0 +fr 01_solar 1 179 2030 1.0 0.0 +fr 02_wind_on 1 179 2030 0.0 0.0 +fr 03_wind_off 1 179 2030 0.0 0.0 +fr 04_res 1 179 2030 0.0 0.0 +fr 05_nuclear 1 179 2030 0.0 0.0 +fr 06_coal 1 179 2030 0.0 0.0 +fr 07_gas 1 179 2030 0.0 0.0 +fr 08_non-res 1 179 2030 0.0 0.0 +fr 09_hydro_pump 1 179 2030 0.0 0.0 +fr 01_solar 1 180 2030 1.0 0.0 +fr 02_wind_on 1 180 2030 0.0 0.0 +fr 03_wind_off 1 180 2030 0.0 0.0 +fr 04_res 1 180 2030 0.0 0.0 +fr 05_nuclear 1 180 2030 0.0 0.0 +fr 06_coal 1 180 2030 0.0 0.0 +fr 07_gas 1 180 2030 0.0 0.0 +fr 08_non-res 1 180 2030 0.0 0.0 +fr 09_hydro_pump 1 180 2030 0.0 0.0 +fr 01_solar 1 181 2030 1.0 0.0 +fr 02_wind_on 1 181 2030 0.0 0.0 +fr 03_wind_off 1 181 2030 0.0 0.0 +fr 04_res 1 181 2030 0.0 0.0 +fr 05_nuclear 1 181 2030 0.0 0.0 +fr 06_coal 1 181 2030 0.0 0.0 +fr 07_gas 1 181 2030 0.0 0.0 +fr 08_non-res 1 181 2030 0.0 0.0 +fr 09_hydro_pump 1 181 2030 0.0 0.0 +fr 01_solar 1 182 2030 1.0 0.0 +fr 02_wind_on 1 182 2030 0.0 0.0 +fr 03_wind_off 1 182 2030 0.0 0.0 +fr 04_res 1 182 2030 0.0 0.0 +fr 05_nuclear 1 182 2030 0.0 0.0 +fr 06_coal 1 182 2030 0.0 0.0 +fr 07_gas 1 182 2030 0.0 0.0 +fr 08_non-res 1 182 2030 0.0 0.0 +fr 09_hydro_pump 1 182 2030 0.0 0.0 +fr 01_solar 1 183 2030 1.0 0.0 +fr 02_wind_on 1 183 2030 0.0 0.0 +fr 03_wind_off 1 183 2030 0.0 0.0 +fr 04_res 1 183 2030 0.0 0.0 +fr 05_nuclear 1 183 2030 0.0 0.0 +fr 06_coal 1 183 2030 0.0 0.0 +fr 07_gas 1 183 2030 0.0 0.0 +fr 08_non-res 1 183 2030 0.0 0.0 +fr 09_hydro_pump 1 183 2030 0.0 0.0 +fr 01_solar 1 184 2030 1.0 0.0 +fr 02_wind_on 1 184 2030 0.0 0.0 +fr 03_wind_off 1 184 2030 0.0 0.0 +fr 04_res 1 184 2030 0.0 0.0 +fr 05_nuclear 1 184 2030 0.0 0.0 +fr 06_coal 1 184 2030 0.0 0.0 +fr 07_gas 1 184 2030 0.0 0.0 +fr 08_non-res 1 184 2030 0.0 0.0 +fr 09_hydro_pump 1 184 2030 0.0 0.0 +fr 01_solar 1 185 2030 1.0 0.0 +fr 02_wind_on 1 185 2030 0.0 0.0 +fr 03_wind_off 1 185 2030 0.0 0.0 +fr 04_res 1 185 2030 0.0 0.0 +fr 05_nuclear 1 185 2030 0.0 0.0 +fr 06_coal 1 185 2030 0.0 0.0 +fr 07_gas 1 185 2030 0.0 0.0 +fr 08_non-res 1 185 2030 0.0 0.0 +fr 09_hydro_pump 1 185 2030 0.0 0.0 +fr 01_solar 1 186 2030 1.0 0.0 +fr 02_wind_on 1 186 2030 0.0 0.0 +fr 03_wind_off 1 186 2030 0.0 0.0 +fr 04_res 1 186 2030 0.0 0.0 +fr 05_nuclear 1 186 2030 0.0 0.0 +fr 06_coal 1 186 2030 0.0 0.0 +fr 07_gas 1 186 2030 0.0 0.0 +fr 08_non-res 1 186 2030 0.0 0.0 +fr 09_hydro_pump 1 186 2030 0.0 0.0 +fr 01_solar 1 187 2030 1.0 0.0 +fr 02_wind_on 1 187 2030 0.0 0.0 +fr 03_wind_off 1 187 2030 0.0 0.0 +fr 04_res 1 187 2030 0.0 0.0 +fr 05_nuclear 1 187 2030 0.0 0.0 +fr 06_coal 1 187 2030 0.0 0.0 +fr 07_gas 1 187 2030 0.0 0.0 +fr 08_non-res 1 187 2030 0.0 0.0 +fr 09_hydro_pump 1 187 2030 0.0 0.0 +fr 01_solar 1 188 2030 1.0 0.0 +fr 02_wind_on 1 188 2030 0.0 0.0 +fr 03_wind_off 1 188 2030 0.0 0.0 +fr 04_res 1 188 2030 0.0 0.0 +fr 05_nuclear 1 188 2030 0.0 0.0 +fr 06_coal 1 188 2030 0.0 0.0 +fr 07_gas 1 188 2030 0.0 0.0 +fr 08_non-res 1 188 2030 0.0 0.0 +fr 09_hydro_pump 1 188 2030 0.0 0.0 +fr 01_solar 1 189 2030 1.0 0.0 +fr 02_wind_on 1 189 2030 0.0 0.0 +fr 03_wind_off 1 189 2030 0.0 0.0 +fr 04_res 1 189 2030 0.0 0.0 +fr 05_nuclear 1 189 2030 0.0 0.0 +fr 06_coal 1 189 2030 0.0 0.0 +fr 07_gas 1 189 2030 0.0 0.0 +fr 08_non-res 1 189 2030 0.0 0.0 +fr 09_hydro_pump 1 189 2030 0.0 0.0 +fr 01_solar 1 190 2030 1.0 0.0 +fr 02_wind_on 1 190 2030 1.0 0.0 +fr 03_wind_off 1 190 2030 0.0 0.0 +fr 04_res 1 190 2030 0.0 0.0 +fr 05_nuclear 1 190 2030 0.0 0.0 +fr 06_coal 1 190 2030 0.0 0.0 +fr 07_gas 1 190 2030 0.0 0.0 +fr 08_non-res 1 190 2030 0.0 0.0 +fr 09_hydro_pump 1 190 2030 0.0 0.0 +fr 01_solar 1 191 2030 1.0 0.0 +fr 02_wind_on 1 191 2030 1.0 0.0 +fr 03_wind_off 1 191 2030 0.0 0.0 +fr 04_res 1 191 2030 0.0 0.0 +fr 05_nuclear 1 191 2030 0.0 0.0 +fr 06_coal 1 191 2030 0.0 0.0 +fr 07_gas 1 191 2030 0.0 0.0 +fr 08_non-res 1 191 2030 0.0 0.0 +fr 09_hydro_pump 1 191 2030 0.0 0.0 +fr 01_solar 1 192 2030 1.0 0.0 +fr 02_wind_on 1 192 2030 1.0 0.0 +fr 03_wind_off 1 192 2030 0.0 0.0 +fr 04_res 1 192 2030 0.0 0.0 +fr 05_nuclear 1 192 2030 0.0 0.0 +fr 06_coal 1 192 2030 0.0 0.0 +fr 07_gas 1 192 2030 0.0 0.0 +fr 08_non-res 1 192 2030 0.0 0.0 +fr 09_hydro_pump 1 192 2030 0.0 0.0 +fr 01_solar 1 193 2030 1.0 0.0 +fr 02_wind_on 1 193 2030 1.0 0.0 +fr 03_wind_off 1 193 2030 0.0 0.0 +fr 04_res 1 193 2030 0.0 0.0 +fr 05_nuclear 1 193 2030 0.0 0.0 +fr 06_coal 1 193 2030 0.0 0.0 +fr 07_gas 1 193 2030 0.0 0.0 +fr 08_non-res 1 193 2030 0.0 0.0 +fr 09_hydro_pump 1 193 2030 0.0 0.0 +fr 01_solar 1 194 2030 1.0 0.0 +fr 02_wind_on 1 194 2030 1.0 0.0 +fr 03_wind_off 1 194 2030 0.0 0.0 +fr 04_res 1 194 2030 0.0 0.0 +fr 05_nuclear 1 194 2030 0.0 0.0 +fr 06_coal 1 194 2030 0.0 0.0 +fr 07_gas 1 194 2030 0.0 0.0 +fr 08_non-res 1 194 2030 0.0 0.0 +fr 09_hydro_pump 1 194 2030 0.0 0.0 +fr 01_solar 1 195 2030 1.0 0.0 +fr 02_wind_on 1 195 2030 1.0 0.0 +fr 03_wind_off 1 195 2030 0.0 0.0 +fr 04_res 1 195 2030 0.0 0.0 +fr 05_nuclear 1 195 2030 0.0 0.0 +fr 06_coal 1 195 2030 0.0 0.0 +fr 07_gas 1 195 2030 0.0 0.0 +fr 08_non-res 1 195 2030 0.0 0.0 +fr 09_hydro_pump 1 195 2030 0.0 0.0 +fr 01_solar 1 196 2030 1.0 0.0 +fr 02_wind_on 1 196 2030 1.0 0.0 +fr 03_wind_off 1 196 2030 0.0 0.0 +fr 04_res 1 196 2030 0.0 0.0 +fr 05_nuclear 1 196 2030 0.0 0.0 +fr 06_coal 1 196 2030 0.0 0.0 +fr 07_gas 1 196 2030 0.0 0.0 +fr 08_non-res 1 196 2030 0.0 0.0 +fr 09_hydro_pump 1 196 2030 0.0 0.0 +fr 01_solar 1 197 2030 1.0 0.0 +fr 02_wind_on 1 197 2030 1.0 0.0 +fr 03_wind_off 1 197 2030 0.0 0.0 +fr 04_res 1 197 2030 0.0 0.0 +fr 05_nuclear 1 197 2030 0.0 0.0 +fr 06_coal 1 197 2030 0.0 0.0 +fr 07_gas 1 197 2030 0.0 0.0 +fr 08_non-res 1 197 2030 0.0 0.0 +fr 09_hydro_pump 1 197 2030 0.0 0.0 +fr 01_solar 1 198 2030 1.0 0.0 +fr 02_wind_on 1 198 2030 1.0 0.0 +fr 03_wind_off 1 198 2030 0.0 0.0 +fr 04_res 1 198 2030 0.0 0.0 +fr 05_nuclear 1 198 2030 0.0 0.0 +fr 06_coal 1 198 2030 0.0 0.0 +fr 07_gas 1 198 2030 0.0 0.0 +fr 08_non-res 1 198 2030 0.0 0.0 +fr 09_hydro_pump 1 198 2030 0.0 0.0 +fr 01_solar 1 199 2030 1.0 0.0 +fr 02_wind_on 1 199 2030 1.0 0.0 +fr 03_wind_off 1 199 2030 0.0 0.0 +fr 04_res 1 199 2030 0.0 0.0 +fr 05_nuclear 1 199 2030 0.0 0.0 +fr 06_coal 1 199 2030 0.0 0.0 +fr 07_gas 1 199 2030 0.0 0.0 +fr 08_non-res 1 199 2030 0.0 0.0 +fr 09_hydro_pump 1 199 2030 0.0 0.0 +fr 01_solar 1 200 2030 1.0 0.0 +fr 02_wind_on 1 200 2030 1.0 0.0 +fr 03_wind_off 1 200 2030 0.0 0.0 +fr 04_res 1 200 2030 0.0 0.0 +fr 05_nuclear 1 200 2030 0.0 0.0 +fr 06_coal 1 200 2030 0.0 0.0 +fr 07_gas 1 200 2030 0.0 0.0 +fr 08_non-res 1 200 2030 0.0 0.0 +fr 09_hydro_pump 1 200 2030 0.0 0.0 +fr 01_solar 1 201 2030 1.0 0.0 +fr 02_wind_on 1 201 2030 1.0 0.0 +fr 03_wind_off 1 201 2030 0.0 0.0 +fr 04_res 1 201 2030 0.0 0.0 +fr 05_nuclear 1 201 2030 0.0 0.0 +fr 06_coal 1 201 2030 0.0 0.0 +fr 07_gas 1 201 2030 0.0 0.0 +fr 08_non-res 1 201 2030 0.0 0.0 +fr 09_hydro_pump 1 201 2030 0.0 0.0 +fr 01_solar 1 202 2030 1.0 0.0 +fr 02_wind_on 1 202 2030 1.0 0.0 +fr 03_wind_off 1 202 2030 0.0 0.0 +fr 04_res 1 202 2030 0.0 0.0 +fr 05_nuclear 1 202 2030 0.0 0.0 +fr 06_coal 1 202 2030 0.0 0.0 +fr 07_gas 1 202 2030 0.0 0.0 +fr 08_non-res 1 202 2030 0.0 0.0 +fr 09_hydro_pump 1 202 2030 0.0 0.0 +fr 01_solar 1 203 2030 1.0 0.0 +fr 02_wind_on 1 203 2030 1.0 0.0 +fr 03_wind_off 1 203 2030 0.0 0.0 +fr 04_res 1 203 2030 0.0 0.0 +fr 05_nuclear 1 203 2030 0.0 0.0 +fr 06_coal 1 203 2030 0.0 0.0 +fr 07_gas 1 203 2030 0.0 0.0 +fr 08_non-res 1 203 2030 0.0 0.0 +fr 09_hydro_pump 1 203 2030 0.0 0.0 +fr 01_solar 1 204 2030 1.0 0.0 +fr 02_wind_on 1 204 2030 1.0 0.0 +fr 03_wind_off 1 204 2030 0.0 0.0 +fr 04_res 1 204 2030 0.0 0.0 +fr 05_nuclear 1 204 2030 0.0 0.0 +fr 06_coal 1 204 2030 0.0 0.0 +fr 07_gas 1 204 2030 0.0 0.0 +fr 08_non-res 1 204 2030 0.0 0.0 +fr 09_hydro_pump 1 204 2030 0.0 0.0 +fr 01_solar 1 205 2030 1.0 0.0 +fr 02_wind_on 1 205 2030 1.0 0.0 +fr 03_wind_off 1 205 2030 0.0 0.0 +fr 04_res 1 205 2030 0.0 0.0 +fr 05_nuclear 1 205 2030 0.0 0.0 +fr 06_coal 1 205 2030 0.0 0.0 +fr 07_gas 1 205 2030 0.0 0.0 +fr 08_non-res 1 205 2030 0.0 0.0 +fr 09_hydro_pump 1 205 2030 0.0 0.0 +fr 01_solar 1 206 2030 1.0 0.0 +fr 02_wind_on 1 206 2030 1.0 0.0 +fr 03_wind_off 1 206 2030 0.0 0.0 +fr 04_res 1 206 2030 0.0 0.0 +fr 05_nuclear 1 206 2030 0.0 0.0 +fr 06_coal 1 206 2030 0.0 0.0 +fr 07_gas 1 206 2030 0.0 0.0 +fr 08_non-res 1 206 2030 0.0 0.0 +fr 09_hydro_pump 1 206 2030 0.0 0.0 +fr 01_solar 1 207 2030 1.0 0.0 +fr 02_wind_on 1 207 2030 1.0 0.0 +fr 03_wind_off 1 207 2030 0.0 0.0 +fr 04_res 1 207 2030 0.0 0.0 +fr 05_nuclear 1 207 2030 0.0 0.0 +fr 06_coal 1 207 2030 0.0 0.0 +fr 07_gas 1 207 2030 0.0 0.0 +fr 08_non-res 1 207 2030 0.0 0.0 +fr 09_hydro_pump 1 207 2030 0.0 0.0 +fr 01_solar 1 208 2030 1.0 0.0 +fr 02_wind_on 1 208 2030 1.0 0.0 +fr 03_wind_off 1 208 2030 0.0 0.0 +fr 04_res 1 208 2030 0.0 0.0 +fr 05_nuclear 1 208 2030 0.0 0.0 +fr 06_coal 1 208 2030 0.0 0.0 +fr 07_gas 1 208 2030 0.0 0.0 +fr 08_non-res 1 208 2030 0.0 0.0 +fr 09_hydro_pump 1 208 2030 0.0 0.0 +fr 01_solar 1 209 2030 1.0 0.0 +fr 02_wind_on 1 209 2030 1.0 0.0 +fr 03_wind_off 1 209 2030 0.0 0.0 +fr 04_res 1 209 2030 0.0 0.0 +fr 05_nuclear 1 209 2030 0.0 0.0 +fr 06_coal 1 209 2030 0.0 0.0 +fr 07_gas 1 209 2030 0.0 0.0 +fr 08_non-res 1 209 2030 0.0 0.0 +fr 09_hydro_pump 1 209 2030 0.0 0.0 +fr 01_solar 1 210 2030 1.0 0.0 +fr 02_wind_on 1 210 2030 1.0 0.0 +fr 03_wind_off 1 210 2030 1.0 0.0 +fr 04_res 1 210 2030 0.0 0.0 +fr 05_nuclear 1 210 2030 0.0 0.0 +fr 06_coal 1 210 2030 0.0 0.0 +fr 07_gas 1 210 2030 0.0 0.0 +fr 08_non-res 1 210 2030 0.0 0.0 +fr 09_hydro_pump 1 210 2030 0.0 0.0 +fr 01_solar 1 211 2030 1.0 0.0 +fr 02_wind_on 1 211 2030 1.0 0.0 +fr 03_wind_off 1 211 2030 1.0 0.0 +fr 04_res 1 211 2030 0.0 0.0 +fr 05_nuclear 1 211 2030 0.0 0.0 +fr 06_coal 1 211 2030 0.0 0.0 +fr 07_gas 1 211 2030 0.0 0.0 +fr 08_non-res 1 211 2030 0.0 0.0 +fr 09_hydro_pump 1 211 2030 0.0 0.0 +fr 01_solar 1 212 2030 1.0 0.0 +fr 02_wind_on 1 212 2030 1.0 0.0 +fr 03_wind_off 1 212 2030 1.0 0.0 +fr 04_res 1 212 2030 0.0 0.0 +fr 05_nuclear 1 212 2030 0.0 0.0 +fr 06_coal 1 212 2030 0.0 0.0 +fr 07_gas 1 212 2030 0.0 0.0 +fr 08_non-res 1 212 2030 0.0 0.0 +fr 09_hydro_pump 1 212 2030 0.0 0.0 +fr 01_solar 1 213 2030 1.0 0.0 +fr 02_wind_on 1 213 2030 1.0 0.0 +fr 03_wind_off 1 213 2030 1.0 0.0 +fr 04_res 1 213 2030 0.0 0.0 +fr 05_nuclear 1 213 2030 0.0 0.0 +fr 06_coal 1 213 2030 0.0 0.0 +fr 07_gas 1 213 2030 0.0 0.0 +fr 08_non-res 1 213 2030 0.0 0.0 +fr 09_hydro_pump 1 213 2030 0.0 0.0 +fr 01_solar 1 214 2030 1.0 0.0 +fr 02_wind_on 1 214 2030 1.0 0.0 +fr 03_wind_off 1 214 2030 1.0 0.0 +fr 04_res 1 214 2030 0.0 0.0 +fr 05_nuclear 1 214 2030 0.0 0.0 +fr 06_coal 1 214 2030 0.0 0.0 +fr 07_gas 1 214 2030 0.0 0.0 +fr 08_non-res 1 214 2030 0.0 0.0 +fr 09_hydro_pump 1 214 2030 0.0 0.0 +fr 01_solar 1 215 2030 1.0 0.0 +fr 02_wind_on 1 215 2030 1.0 0.0 +fr 03_wind_off 1 215 2030 1.0 0.0 +fr 04_res 1 215 2030 0.0 0.0 +fr 05_nuclear 1 215 2030 0.0 0.0 +fr 06_coal 1 215 2030 0.0 0.0 +fr 07_gas 1 215 2030 0.0 0.0 +fr 08_non-res 1 215 2030 0.0 0.0 +fr 09_hydro_pump 1 215 2030 0.0 0.0 +fr 01_solar 1 216 2030 1.0 0.0 +fr 02_wind_on 1 216 2030 1.0 0.0 +fr 03_wind_off 1 216 2030 1.0 0.0 +fr 04_res 1 216 2030 0.0 0.0 +fr 05_nuclear 1 216 2030 0.0 0.0 +fr 06_coal 1 216 2030 0.0 0.0 +fr 07_gas 1 216 2030 0.0 0.0 +fr 08_non-res 1 216 2030 0.0 0.0 +fr 09_hydro_pump 1 216 2030 0.0 0.0 +fr 01_solar 1 217 2030 1.0 0.0 +fr 02_wind_on 1 217 2030 1.0 0.0 +fr 03_wind_off 1 217 2030 1.0 0.0 +fr 04_res 1 217 2030 0.0 0.0 +fr 05_nuclear 1 217 2030 0.0 0.0 +fr 06_coal 1 217 2030 0.0 0.0 +fr 07_gas 1 217 2030 0.0 0.0 +fr 08_non-res 1 217 2030 0.0 0.0 +fr 09_hydro_pump 1 217 2030 0.0 0.0 +fr 01_solar 1 218 2030 1.0 0.0 +fr 02_wind_on 1 218 2030 1.0 0.0 +fr 03_wind_off 1 218 2030 1.0 0.0 +fr 04_res 1 218 2030 0.0 0.0 +fr 05_nuclear 1 218 2030 0.0 0.0 +fr 06_coal 1 218 2030 0.0 0.0 +fr 07_gas 1 218 2030 0.0 0.0 +fr 08_non-res 1 218 2030 0.0 0.0 +fr 09_hydro_pump 1 218 2030 0.0 0.0 +fr 01_solar 1 219 2030 1.0 0.0 +fr 02_wind_on 1 219 2030 1.0 0.0 +fr 03_wind_off 1 219 2030 1.0 0.0 +fr 04_res 1 219 2030 0.0 0.0 +fr 05_nuclear 1 219 2030 0.0 0.0 +fr 06_coal 1 219 2030 0.0 0.0 +fr 07_gas 1 219 2030 0.0 0.0 +fr 08_non-res 1 219 2030 0.0 0.0 +fr 09_hydro_pump 1 219 2030 0.0 0.0 +fr 01_solar 1 220 2030 1.0 0.0 +fr 02_wind_on 1 220 2030 1.0 0.0 +fr 03_wind_off 1 220 2030 1.0 0.0 +fr 04_res 1 220 2030 0.0 0.0 +fr 05_nuclear 1 220 2030 0.0 0.0 +fr 06_coal 1 220 2030 0.0 0.0 +fr 07_gas 1 220 2030 0.0 0.0 +fr 08_non-res 1 220 2030 0.0 0.0 +fr 09_hydro_pump 1 220 2030 0.0 0.0 +fr 01_solar 1 221 2030 1.0 0.0 +fr 02_wind_on 1 221 2030 1.0 0.0 +fr 03_wind_off 1 221 2030 1.0 0.0 +fr 04_res 1 221 2030 0.0 0.0 +fr 05_nuclear 1 221 2030 0.0 0.0 +fr 06_coal 1 221 2030 0.0 0.0 +fr 07_gas 1 221 2030 0.0 0.0 +fr 08_non-res 1 221 2030 0.0 0.0 +fr 09_hydro_pump 1 221 2030 0.0 0.0 +fr 01_solar 1 222 2030 1.0 0.0 +fr 02_wind_on 1 222 2030 1.0 0.0 +fr 03_wind_off 1 222 2030 1.0 0.0 +fr 04_res 1 222 2030 0.0 0.0 +fr 05_nuclear 1 222 2030 0.0 0.0 +fr 06_coal 1 222 2030 0.0 0.0 +fr 07_gas 1 222 2030 0.0 0.0 +fr 08_non-res 1 222 2030 0.0 0.0 +fr 09_hydro_pump 1 222 2030 0.0 0.0 +fr 01_solar 1 223 2030 1.0 0.0 +fr 02_wind_on 1 223 2030 1.0 0.0 +fr 03_wind_off 1 223 2030 1.0 0.0 +fr 04_res 1 223 2030 0.0 0.0 +fr 05_nuclear 1 223 2030 0.0 0.0 +fr 06_coal 1 223 2030 0.0 0.0 +fr 07_gas 1 223 2030 0.0 0.0 +fr 08_non-res 1 223 2030 0.0 0.0 +fr 09_hydro_pump 1 223 2030 0.0 0.0 +fr 01_solar 1 224 2030 1.0 0.0 +fr 02_wind_on 1 224 2030 1.0 0.0 +fr 03_wind_off 1 224 2030 1.0 0.0 +fr 04_res 1 224 2030 0.0 0.0 +fr 05_nuclear 1 224 2030 0.0 0.0 +fr 06_coal 1 224 2030 0.0 0.0 +fr 07_gas 1 224 2030 0.0 0.0 +fr 08_non-res 1 224 2030 0.0 0.0 +fr 09_hydro_pump 1 224 2030 0.0 0.0 +fr 01_solar 1 225 2030 1.0 0.0 +fr 02_wind_on 1 225 2030 1.0 0.0 +fr 03_wind_off 1 225 2030 1.0 0.0 +fr 04_res 1 225 2030 0.0 0.0 +fr 05_nuclear 1 225 2030 0.0 0.0 +fr 06_coal 1 225 2030 0.0 0.0 +fr 07_gas 1 225 2030 0.0 0.0 +fr 08_non-res 1 225 2030 0.0 0.0 +fr 09_hydro_pump 1 225 2030 0.0 0.0 +fr 01_solar 1 226 2030 1.0 0.0 +fr 02_wind_on 1 226 2030 1.0 0.0 +fr 03_wind_off 1 226 2030 1.0 0.0 +fr 04_res 1 226 2030 0.0 0.0 +fr 05_nuclear 1 226 2030 0.0 0.0 +fr 06_coal 1 226 2030 0.0 0.0 +fr 07_gas 1 226 2030 0.0 0.0 +fr 08_non-res 1 226 2030 0.0 0.0 +fr 09_hydro_pump 1 226 2030 0.0 0.0 +fr 01_solar 1 227 2030 1.0 0.0 +fr 02_wind_on 1 227 2030 1.0 0.0 +fr 03_wind_off 1 227 2030 1.0 0.0 +fr 04_res 1 227 2030 0.0 0.0 +fr 05_nuclear 1 227 2030 0.0 0.0 +fr 06_coal 1 227 2030 0.0 0.0 +fr 07_gas 1 227 2030 0.0 0.0 +fr 08_non-res 1 227 2030 0.0 0.0 +fr 09_hydro_pump 1 227 2030 0.0 0.0 +fr 01_solar 1 228 2030 1.0 0.0 +fr 02_wind_on 1 228 2030 1.0 0.0 +fr 03_wind_off 1 228 2030 1.0 0.0 +fr 04_res 1 228 2030 0.0 0.0 +fr 05_nuclear 1 228 2030 0.0 0.0 +fr 06_coal 1 228 2030 0.0 0.0 +fr 07_gas 1 228 2030 0.0 0.0 +fr 08_non-res 1 228 2030 0.0 0.0 +fr 09_hydro_pump 1 228 2030 0.0 0.0 +fr 01_solar 1 229 2030 1.0 0.0 +fr 02_wind_on 1 229 2030 1.0 0.0 +fr 03_wind_off 1 229 2030 1.0 0.0 +fr 04_res 1 229 2030 0.0 0.0 +fr 05_nuclear 1 229 2030 0.0 0.0 +fr 06_coal 1 229 2030 0.0 0.0 +fr 07_gas 1 229 2030 0.0 0.0 +fr 08_non-res 1 229 2030 0.0 0.0 +fr 09_hydro_pump 1 229 2030 0.0 0.0 +fr 01_solar 1 230 2030 1.0 0.0 +fr 02_wind_on 1 230 2030 1.0 0.0 +fr 03_wind_off 1 230 2030 1.0 0.0 +fr 04_res 1 230 2030 1.0 0.0 +fr 05_nuclear 1 230 2030 0.0 0.0 +fr 06_coal 1 230 2030 0.0 0.0 +fr 07_gas 1 230 2030 0.0 0.0 +fr 08_non-res 1 230 2030 0.0 0.0 +fr 09_hydro_pump 1 230 2030 0.0 0.0 +fr 01_solar 1 231 2030 1.0 0.0 +fr 02_wind_on 1 231 2030 1.0 0.0 +fr 03_wind_off 1 231 2030 1.0 0.0 +fr 04_res 1 231 2030 1.0 0.0 +fr 05_nuclear 1 231 2030 0.0 0.0 +fr 06_coal 1 231 2030 0.0 0.0 +fr 07_gas 1 231 2030 0.0 0.0 +fr 08_non-res 1 231 2030 0.0 0.0 +fr 09_hydro_pump 1 231 2030 0.0 0.0 +fr 01_solar 1 232 2030 1.0 0.0 +fr 02_wind_on 1 232 2030 1.0 0.0 +fr 03_wind_off 1 232 2030 1.0 0.0 +fr 04_res 1 232 2030 1.0 0.0 +fr 05_nuclear 1 232 2030 0.0 0.0 +fr 06_coal 1 232 2030 0.0 0.0 +fr 07_gas 1 232 2030 0.0 0.0 +fr 08_non-res 1 232 2030 0.0 0.0 +fr 09_hydro_pump 1 232 2030 0.0 0.0 +fr 01_solar 1 233 2030 1.0 0.0 +fr 02_wind_on 1 233 2030 1.0 0.0 +fr 03_wind_off 1 233 2030 1.0 0.0 +fr 04_res 1 233 2030 1.0 0.0 +fr 05_nuclear 1 233 2030 0.0 0.0 +fr 06_coal 1 233 2030 0.0 0.0 +fr 07_gas 1 233 2030 0.0 0.0 +fr 08_non-res 1 233 2030 0.0 0.0 +fr 09_hydro_pump 1 233 2030 0.0 0.0 +fr 01_solar 1 234 2030 1.0 0.0 +fr 02_wind_on 1 234 2030 1.0 0.0 +fr 03_wind_off 1 234 2030 1.0 0.0 +fr 04_res 1 234 2030 1.0 0.0 +fr 05_nuclear 1 234 2030 0.0 0.0 +fr 06_coal 1 234 2030 0.0 0.0 +fr 07_gas 1 234 2030 0.0 0.0 +fr 08_non-res 1 234 2030 0.0 0.0 +fr 09_hydro_pump 1 234 2030 0.0 0.0 +fr 01_solar 1 235 2030 1.0 0.0 +fr 02_wind_on 1 235 2030 1.0 0.0 +fr 03_wind_off 1 235 2030 1.0 0.0 +fr 04_res 1 235 2030 1.0 0.0 +fr 05_nuclear 1 235 2030 0.0 0.0 +fr 06_coal 1 235 2030 0.0 0.0 +fr 07_gas 1 235 2030 0.0 0.0 +fr 08_non-res 1 235 2030 0.0 0.0 +fr 09_hydro_pump 1 235 2030 0.0 0.0 +fr 01_solar 1 236 2030 1.0 0.0 +fr 02_wind_on 1 236 2030 1.0 0.0 +fr 03_wind_off 1 236 2030 1.0 0.0 +fr 04_res 1 236 2030 1.0 0.0 +fr 05_nuclear 1 236 2030 0.0 0.0 +fr 06_coal 1 236 2030 0.0 0.0 +fr 07_gas 1 236 2030 0.0 0.0 +fr 08_non-res 1 236 2030 0.0 0.0 +fr 09_hydro_pump 1 236 2030 0.0 0.0 +fr 01_solar 1 237 2030 1.0 0.0 +fr 02_wind_on 1 237 2030 1.0 0.0 +fr 03_wind_off 1 237 2030 1.0 0.0 +fr 04_res 1 237 2030 1.0 0.0 +fr 05_nuclear 1 237 2030 0.0 0.0 +fr 06_coal 1 237 2030 0.0 0.0 +fr 07_gas 1 237 2030 0.0 0.0 +fr 08_non-res 1 237 2030 0.0 0.0 +fr 09_hydro_pump 1 237 2030 0.0 0.0 +fr 01_solar 1 238 2030 1.0 0.0 +fr 02_wind_on 1 238 2030 1.0 0.0 +fr 03_wind_off 1 238 2030 1.0 0.0 +fr 04_res 1 238 2030 1.0 0.0 +fr 05_nuclear 1 238 2030 0.0 0.0 +fr 06_coal 1 238 2030 0.0 0.0 +fr 07_gas 1 238 2030 0.0 0.0 +fr 08_non-res 1 238 2030 0.0 0.0 +fr 09_hydro_pump 1 238 2030 0.0 0.0 +fr 01_solar 1 239 2030 1.0 0.0 +fr 02_wind_on 1 239 2030 1.0 0.0 +fr 03_wind_off 1 239 2030 1.0 0.0 +fr 04_res 1 239 2030 1.0 0.0 +fr 05_nuclear 1 239 2030 0.0 0.0 +fr 06_coal 1 239 2030 0.0 0.0 +fr 07_gas 1 239 2030 0.0 0.0 +fr 08_non-res 1 239 2030 0.0 0.0 +fr 09_hydro_pump 1 239 2030 0.0 0.0 +fr 01_solar 1 240 2030 1.0 0.0 +fr 02_wind_on 1 240 2030 1.0 0.0 +fr 03_wind_off 1 240 2030 1.0 0.0 +fr 04_res 1 240 2030 1.0 0.0 +fr 05_nuclear 1 240 2030 0.0 0.0 +fr 06_coal 1 240 2030 0.0 0.0 +fr 07_gas 1 240 2030 0.0 0.0 +fr 08_non-res 1 240 2030 0.0 0.0 +fr 09_hydro_pump 1 240 2030 0.0 0.0 +fr 01_solar 1 241 2030 1.0 0.0 +fr 02_wind_on 1 241 2030 1.0 0.0 +fr 03_wind_off 1 241 2030 1.0 0.0 +fr 04_res 1 241 2030 1.0 0.0 +fr 05_nuclear 1 241 2030 0.0 0.0 +fr 06_coal 1 241 2030 0.0 0.0 +fr 07_gas 1 241 2030 0.0 0.0 +fr 08_non-res 1 241 2030 0.0 0.0 +fr 09_hydro_pump 1 241 2030 0.0 0.0 +fr 01_solar 1 242 2030 1.0 0.0 +fr 02_wind_on 1 242 2030 1.0 0.0 +fr 03_wind_off 1 242 2030 1.0 0.0 +fr 04_res 1 242 2030 1.0 0.0 +fr 05_nuclear 1 242 2030 0.0 0.0 +fr 06_coal 1 242 2030 0.0 0.0 +fr 07_gas 1 242 2030 0.0 0.0 +fr 08_non-res 1 242 2030 0.0 0.0 +fr 09_hydro_pump 1 242 2030 0.0 0.0 +fr 01_solar 1 243 2030 1.0 0.0 +fr 02_wind_on 1 243 2030 1.0 0.0 +fr 03_wind_off 1 243 2030 1.0 0.0 +fr 04_res 1 243 2030 1.0 0.0 +fr 05_nuclear 1 243 2030 0.0 0.0 +fr 06_coal 1 243 2030 0.0 0.0 +fr 07_gas 1 243 2030 0.0 0.0 +fr 08_non-res 1 243 2030 0.0 0.0 +fr 09_hydro_pump 1 243 2030 0.0 0.0 +fr 01_solar 1 244 2030 1.0 0.0 +fr 02_wind_on 1 244 2030 1.0 0.0 +fr 03_wind_off 1 244 2030 1.0 0.0 +fr 04_res 1 244 2030 1.0 0.0 +fr 05_nuclear 1 244 2030 0.0 0.0 +fr 06_coal 1 244 2030 0.0 0.0 +fr 07_gas 1 244 2030 0.0 0.0 +fr 08_non-res 1 244 2030 0.0 0.0 +fr 09_hydro_pump 1 244 2030 0.0 0.0 +fr 01_solar 1 245 2030 1.0 0.0 +fr 02_wind_on 1 245 2030 1.0 0.0 +fr 03_wind_off 1 245 2030 1.0 0.0 +fr 04_res 1 245 2030 1.0 0.0 +fr 05_nuclear 1 245 2030 0.0 0.0 +fr 06_coal 1 245 2030 0.0 0.0 +fr 07_gas 1 245 2030 0.0 0.0 +fr 08_non-res 1 245 2030 0.0 0.0 +fr 09_hydro_pump 1 245 2030 0.0 0.0 +fr 01_solar 1 246 2030 1.0 0.0 +fr 02_wind_on 1 246 2030 1.0 0.0 +fr 03_wind_off 1 246 2030 1.0 0.0 +fr 04_res 1 246 2030 1.0 0.0 +fr 05_nuclear 1 246 2030 0.0 0.0 +fr 06_coal 1 246 2030 0.0 0.0 +fr 07_gas 1 246 2030 0.0 0.0 +fr 08_non-res 1 246 2030 0.0 0.0 +fr 09_hydro_pump 1 246 2030 0.0 0.0 +fr 01_solar 1 247 2030 1.0 0.0 +fr 02_wind_on 1 247 2030 1.0 0.0 +fr 03_wind_off 1 247 2030 1.0 0.0 +fr 04_res 1 247 2030 1.0 0.0 +fr 05_nuclear 1 247 2030 0.0 0.0 +fr 06_coal 1 247 2030 0.0 0.0 +fr 07_gas 1 247 2030 0.0 0.0 +fr 08_non-res 1 247 2030 0.0 0.0 +fr 09_hydro_pump 1 247 2030 0.0 0.0 +fr 01_solar 1 248 2030 1.0 0.0 +fr 02_wind_on 1 248 2030 1.0 0.0 +fr 03_wind_off 1 248 2030 1.0 0.0 +fr 04_res 1 248 2030 1.0 0.0 +fr 05_nuclear 1 248 2030 0.0 0.0 +fr 06_coal 1 248 2030 0.0 0.0 +fr 07_gas 1 248 2030 0.0 0.0 +fr 08_non-res 1 248 2030 0.0 0.0 +fr 09_hydro_pump 1 248 2030 0.0 0.0 +fr 01_solar 1 249 2030 1.0 0.0 +fr 02_wind_on 1 249 2030 1.0 0.0 +fr 03_wind_off 1 249 2030 1.0 0.0 +fr 04_res 1 249 2030 1.0 0.0 +fr 05_nuclear 1 249 2030 0.0 0.0 +fr 06_coal 1 249 2030 0.0 0.0 +fr 07_gas 1 249 2030 0.0 0.0 +fr 08_non-res 1 249 2030 0.0 0.0 +fr 09_hydro_pump 1 249 2030 0.0 0.0 +fr 01_solar 1 250 2030 1.0 0.0 +fr 02_wind_on 1 250 2030 1.0 0.0 +fr 03_wind_off 1 250 2030 1.0 0.0 +fr 04_res 1 250 2030 1.0 0.0 +fr 05_nuclear 1 250 2030 1.0 0.0 +fr 06_coal 1 250 2030 0.0 0.0 +fr 07_gas 1 250 2030 0.0 0.0 +fr 08_non-res 1 250 2030 0.0 0.0 +fr 09_hydro_pump 1 250 2030 0.0 0.0 +fr 01_solar 1 251 2030 1.0 0.0 +fr 02_wind_on 1 251 2030 1.0 0.0 +fr 03_wind_off 1 251 2030 1.0 0.0 +fr 04_res 1 251 2030 1.0 0.0 +fr 05_nuclear 1 251 2030 1.0 0.0 +fr 06_coal 1 251 2030 0.0 0.0 +fr 07_gas 1 251 2030 0.0 0.0 +fr 08_non-res 1 251 2030 0.0 0.0 +fr 09_hydro_pump 1 251 2030 0.0 0.0 +fr 01_solar 1 252 2030 1.0 0.0 +fr 02_wind_on 1 252 2030 1.0 0.0 +fr 03_wind_off 1 252 2030 1.0 0.0 +fr 04_res 1 252 2030 1.0 0.0 +fr 05_nuclear 1 252 2030 1.0 0.0 +fr 06_coal 1 252 2030 0.0 0.0 +fr 07_gas 1 252 2030 0.0 0.0 +fr 08_non-res 1 252 2030 0.0 0.0 +fr 09_hydro_pump 1 252 2030 0.0 0.0 +fr 01_solar 1 253 2030 1.0 0.0 +fr 02_wind_on 1 253 2030 1.0 0.0 +fr 03_wind_off 1 253 2030 1.0 0.0 +fr 04_res 1 253 2030 1.0 0.0 +fr 05_nuclear 1 253 2030 1.0 0.0 +fr 06_coal 1 253 2030 0.0 0.0 +fr 07_gas 1 253 2030 0.0 0.0 +fr 08_non-res 1 253 2030 0.0 0.0 +fr 09_hydro_pump 1 253 2030 0.0 0.0 +fr 01_solar 1 254 2030 1.0 0.0 +fr 02_wind_on 1 254 2030 1.0 0.0 +fr 03_wind_off 1 254 2030 1.0 0.0 +fr 04_res 1 254 2030 1.0 0.0 +fr 05_nuclear 1 254 2030 1.0 0.0 +fr 06_coal 1 254 2030 0.0 0.0 +fr 07_gas 1 254 2030 0.0 0.0 +fr 08_non-res 1 254 2030 0.0 0.0 +fr 09_hydro_pump 1 254 2030 0.0 0.0 +fr 01_solar 1 255 2030 1.0 0.0 +fr 02_wind_on 1 255 2030 1.0 0.0 +fr 03_wind_off 1 255 2030 1.0 0.0 +fr 04_res 1 255 2030 1.0 0.0 +fr 05_nuclear 1 255 2030 1.0 0.0 +fr 06_coal 1 255 2030 0.0 0.0 +fr 07_gas 1 255 2030 0.0 0.0 +fr 08_non-res 1 255 2030 0.0 0.0 +fr 09_hydro_pump 1 255 2030 0.0 0.0 +fr 01_solar 1 256 2030 1.0 0.0 +fr 02_wind_on 1 256 2030 1.0 0.0 +fr 03_wind_off 1 256 2030 1.0 0.0 +fr 04_res 1 256 2030 1.0 0.0 +fr 05_nuclear 1 256 2030 1.0 0.0 +fr 06_coal 1 256 2030 0.0 0.0 +fr 07_gas 1 256 2030 0.0 0.0 +fr 08_non-res 1 256 2030 0.0 0.0 +fr 09_hydro_pump 1 256 2030 0.0 0.0 +fr 01_solar 1 257 2030 1.0 0.0 +fr 02_wind_on 1 257 2030 1.0 0.0 +fr 03_wind_off 1 257 2030 1.0 0.0 +fr 04_res 1 257 2030 1.0 0.0 +fr 05_nuclear 1 257 2030 1.0 0.0 +fr 06_coal 1 257 2030 0.0 0.0 +fr 07_gas 1 257 2030 0.0 0.0 +fr 08_non-res 1 257 2030 0.0 0.0 +fr 09_hydro_pump 1 257 2030 0.0 0.0 +fr 01_solar 1 258 2030 1.0 0.0 +fr 02_wind_on 1 258 2030 1.0 0.0 +fr 03_wind_off 1 258 2030 1.0 0.0 +fr 04_res 1 258 2030 1.0 0.0 +fr 05_nuclear 1 258 2030 1.0 0.0 +fr 06_coal 1 258 2030 0.0 0.0 +fr 07_gas 1 258 2030 0.0 0.0 +fr 08_non-res 1 258 2030 0.0 0.0 +fr 09_hydro_pump 1 258 2030 0.0 0.0 +fr 01_solar 1 259 2030 1.0 0.0 +fr 02_wind_on 1 259 2030 1.0 0.0 +fr 03_wind_off 1 259 2030 1.0 0.0 +fr 04_res 1 259 2030 1.0 0.0 +fr 05_nuclear 1 259 2030 1.0 0.0 +fr 06_coal 1 259 2030 0.0 0.0 +fr 07_gas 1 259 2030 0.0 0.0 +fr 08_non-res 1 259 2030 0.0 0.0 +fr 09_hydro_pump 1 259 2030 0.0 0.0 +fr 01_solar 1 260 2030 1.0 0.0 +fr 02_wind_on 1 260 2030 1.0 0.0 +fr 03_wind_off 1 260 2030 1.0 0.0 +fr 04_res 1 260 2030 1.0 0.0 +fr 05_nuclear 1 260 2030 1.0 0.0 +fr 06_coal 1 260 2030 0.0 0.0 +fr 07_gas 1 260 2030 0.0 0.0 +fr 08_non-res 1 260 2030 0.0 0.0 +fr 09_hydro_pump 1 260 2030 0.0 0.0 +fr 01_solar 1 261 2030 1.0 0.0 +fr 02_wind_on 1 261 2030 1.0 0.0 +fr 03_wind_off 1 261 2030 1.0 0.0 +fr 04_res 1 261 2030 1.0 0.0 +fr 05_nuclear 1 261 2030 1.0 0.0 +fr 06_coal 1 261 2030 0.0 0.0 +fr 07_gas 1 261 2030 0.0 0.0 +fr 08_non-res 1 261 2030 0.0 0.0 +fr 09_hydro_pump 1 261 2030 0.0 0.0 +fr 01_solar 1 262 2030 1.0 0.0 +fr 02_wind_on 1 262 2030 1.0 0.0 +fr 03_wind_off 1 262 2030 1.0 0.0 +fr 04_res 1 262 2030 1.0 0.0 +fr 05_nuclear 1 262 2030 1.0 0.0 +fr 06_coal 1 262 2030 0.0 0.0 +fr 07_gas 1 262 2030 0.0 0.0 +fr 08_non-res 1 262 2030 0.0 0.0 +fr 09_hydro_pump 1 262 2030 0.0 0.0 +fr 01_solar 1 263 2030 1.0 0.0 +fr 02_wind_on 1 263 2030 1.0 0.0 +fr 03_wind_off 1 263 2030 1.0 0.0 +fr 04_res 1 263 2030 1.0 0.0 +fr 05_nuclear 1 263 2030 1.0 0.0 +fr 06_coal 1 263 2030 0.0 0.0 +fr 07_gas 1 263 2030 0.0 0.0 +fr 08_non-res 1 263 2030 0.0 0.0 +fr 09_hydro_pump 1 263 2030 0.0 0.0 +fr 01_solar 1 264 2030 1.0 0.0 +fr 02_wind_on 1 264 2030 1.0 0.0 +fr 03_wind_off 1 264 2030 1.0 0.0 +fr 04_res 1 264 2030 1.0 0.0 +fr 05_nuclear 1 264 2030 1.0 0.0 +fr 06_coal 1 264 2030 0.0 0.0 +fr 07_gas 1 264 2030 0.0 0.0 +fr 08_non-res 1 264 2030 0.0 0.0 +fr 09_hydro_pump 1 264 2030 0.0 0.0 +fr 01_solar 1 265 2030 1.0 0.0 +fr 02_wind_on 1 265 2030 1.0 0.0 +fr 03_wind_off 1 265 2030 1.0 0.0 +fr 04_res 1 265 2030 1.0 0.0 +fr 05_nuclear 1 265 2030 1.0 0.0 +fr 06_coal 1 265 2030 0.0 0.0 +fr 07_gas 1 265 2030 0.0 0.0 +fr 08_non-res 1 265 2030 0.0 0.0 +fr 09_hydro_pump 1 265 2030 0.0 0.0 +fr 01_solar 1 266 2030 1.0 0.0 +fr 02_wind_on 1 266 2030 1.0 0.0 +fr 03_wind_off 1 266 2030 1.0 0.0 +fr 04_res 1 266 2030 1.0 0.0 +fr 05_nuclear 1 266 2030 1.0 0.0 +fr 06_coal 1 266 2030 0.0 0.0 +fr 07_gas 1 266 2030 0.0 0.0 +fr 08_non-res 1 266 2030 0.0 0.0 +fr 09_hydro_pump 1 266 2030 0.0 0.0 +fr 01_solar 1 267 2030 1.0 0.0 +fr 02_wind_on 1 267 2030 1.0 0.0 +fr 03_wind_off 1 267 2030 1.0 0.0 +fr 04_res 1 267 2030 1.0 0.0 +fr 05_nuclear 1 267 2030 1.0 0.0 +fr 06_coal 1 267 2030 0.0 0.0 +fr 07_gas 1 267 2030 0.0 0.0 +fr 08_non-res 1 267 2030 0.0 0.0 +fr 09_hydro_pump 1 267 2030 0.0 0.0 +fr 01_solar 1 268 2030 1.0 0.0 +fr 02_wind_on 1 268 2030 1.0 0.0 +fr 03_wind_off 1 268 2030 1.0 0.0 +fr 04_res 1 268 2030 1.0 0.0 +fr 05_nuclear 1 268 2030 1.0 0.0 +fr 06_coal 1 268 2030 0.0 0.0 +fr 07_gas 1 268 2030 0.0 0.0 +fr 08_non-res 1 268 2030 0.0 0.0 +fr 09_hydro_pump 1 268 2030 0.0 0.0 +fr 01_solar 1 269 2030 1.0 0.0 +fr 02_wind_on 1 269 2030 1.0 0.0 +fr 03_wind_off 1 269 2030 1.0 0.0 +fr 04_res 1 269 2030 1.0 0.0 +fr 05_nuclear 1 269 2030 1.0 0.0 +fr 06_coal 1 269 2030 0.0 0.0 +fr 07_gas 1 269 2030 0.0 0.0 +fr 08_non-res 1 269 2030 0.0 0.0 +fr 09_hydro_pump 1 269 2030 0.0 0.0 +fr 01_solar 1 270 2030 1.0 0.0 +fr 02_wind_on 1 270 2030 1.0 0.0 +fr 03_wind_off 1 270 2030 1.0 0.0 +fr 04_res 1 270 2030 1.0 0.0 +fr 05_nuclear 1 270 2030 1.0 0.0 +fr 06_coal 1 270 2030 1.0 0.0 +fr 07_gas 1 270 2030 0.0 0.0 +fr 08_non-res 1 270 2030 0.0 0.0 +fr 09_hydro_pump 1 270 2030 0.0 0.0 +fr 01_solar 1 271 2030 1.0 0.0 +fr 02_wind_on 1 271 2030 1.0 0.0 +fr 03_wind_off 1 271 2030 1.0 0.0 +fr 04_res 1 271 2030 1.0 0.0 +fr 05_nuclear 1 271 2030 1.0 0.0 +fr 06_coal 1 271 2030 1.0 0.0 +fr 07_gas 1 271 2030 0.0 0.0 +fr 08_non-res 1 271 2030 0.0 0.0 +fr 09_hydro_pump 1 271 2030 0.0 0.0 +fr 01_solar 1 272 2030 1.0 0.0 +fr 02_wind_on 1 272 2030 1.0 0.0 +fr 03_wind_off 1 272 2030 1.0 0.0 +fr 04_res 1 272 2030 1.0 0.0 +fr 05_nuclear 1 272 2030 1.0 0.0 +fr 06_coal 1 272 2030 1.0 0.0 +fr 07_gas 1 272 2030 0.0 0.0 +fr 08_non-res 1 272 2030 0.0 0.0 +fr 09_hydro_pump 1 272 2030 0.0 0.0 +fr 01_solar 1 273 2030 1.0 0.0 +fr 02_wind_on 1 273 2030 1.0 0.0 +fr 03_wind_off 1 273 2030 1.0 0.0 +fr 04_res 1 273 2030 1.0 0.0 +fr 05_nuclear 1 273 2030 1.0 0.0 +fr 06_coal 1 273 2030 1.0 0.0 +fr 07_gas 1 273 2030 0.0 0.0 +fr 08_non-res 1 273 2030 0.0 0.0 +fr 09_hydro_pump 1 273 2030 0.0 0.0 +fr 01_solar 1 274 2030 1.0 0.0 +fr 02_wind_on 1 274 2030 1.0 0.0 +fr 03_wind_off 1 274 2030 1.0 0.0 +fr 04_res 1 274 2030 1.0 0.0 +fr 05_nuclear 1 274 2030 1.0 0.0 +fr 06_coal 1 274 2030 1.0 0.0 +fr 07_gas 1 274 2030 0.0 0.0 +fr 08_non-res 1 274 2030 0.0 0.0 +fr 09_hydro_pump 1 274 2030 0.0 0.0 +fr 01_solar 1 275 2030 1.0 0.0 +fr 02_wind_on 1 275 2030 1.0 0.0 +fr 03_wind_off 1 275 2030 1.0 0.0 +fr 04_res 1 275 2030 1.0 0.0 +fr 05_nuclear 1 275 2030 1.0 0.0 +fr 06_coal 1 275 2030 1.0 0.0 +fr 07_gas 1 275 2030 0.0 0.0 +fr 08_non-res 1 275 2030 0.0 0.0 +fr 09_hydro_pump 1 275 2030 0.0 0.0 +fr 01_solar 1 276 2030 1.0 0.0 +fr 02_wind_on 1 276 2030 1.0 0.0 +fr 03_wind_off 1 276 2030 1.0 0.0 +fr 04_res 1 276 2030 1.0 0.0 +fr 05_nuclear 1 276 2030 1.0 0.0 +fr 06_coal 1 276 2030 1.0 0.0 +fr 07_gas 1 276 2030 0.0 0.0 +fr 08_non-res 1 276 2030 0.0 0.0 +fr 09_hydro_pump 1 276 2030 0.0 0.0 +fr 01_solar 1 277 2030 1.0 0.0 +fr 02_wind_on 1 277 2030 1.0 0.0 +fr 03_wind_off 1 277 2030 1.0 0.0 +fr 04_res 1 277 2030 1.0 0.0 +fr 05_nuclear 1 277 2030 1.0 0.0 +fr 06_coal 1 277 2030 1.0 0.0 +fr 07_gas 1 277 2030 0.0 0.0 +fr 08_non-res 1 277 2030 0.0 0.0 +fr 09_hydro_pump 1 277 2030 0.0 0.0 +fr 01_solar 1 278 2030 1.0 0.0 +fr 02_wind_on 1 278 2030 1.0 0.0 +fr 03_wind_off 1 278 2030 1.0 0.0 +fr 04_res 1 278 2030 1.0 0.0 +fr 05_nuclear 1 278 2030 1.0 0.0 +fr 06_coal 1 278 2030 1.0 0.0 +fr 07_gas 1 278 2030 0.0 0.0 +fr 08_non-res 1 278 2030 0.0 0.0 +fr 09_hydro_pump 1 278 2030 0.0 0.0 +fr 01_solar 1 279 2030 1.0 0.0 +fr 02_wind_on 1 279 2030 1.0 0.0 +fr 03_wind_off 1 279 2030 1.0 0.0 +fr 04_res 1 279 2030 1.0 0.0 +fr 05_nuclear 1 279 2030 1.0 0.0 +fr 06_coal 1 279 2030 1.0 0.0 +fr 07_gas 1 279 2030 0.0 0.0 +fr 08_non-res 1 279 2030 0.0 0.0 +fr 09_hydro_pump 1 279 2030 0.0 0.0 +fr 01_solar 1 280 2030 1.0 0.0 +fr 02_wind_on 1 280 2030 1.0 0.0 +fr 03_wind_off 1 280 2030 1.0 0.0 +fr 04_res 1 280 2030 1.0 0.0 +fr 05_nuclear 1 280 2030 1.0 0.0 +fr 06_coal 1 280 2030 1.0 0.0 +fr 07_gas 1 280 2030 0.0 0.0 +fr 08_non-res 1 280 2030 0.0 0.0 +fr 09_hydro_pump 1 280 2030 0.0 0.0 +fr 01_solar 1 281 2030 1.0 0.0 +fr 02_wind_on 1 281 2030 1.0 0.0 +fr 03_wind_off 1 281 2030 1.0 0.0 +fr 04_res 1 281 2030 1.0 0.0 +fr 05_nuclear 1 281 2030 1.0 0.0 +fr 06_coal 1 281 2030 1.0 0.0 +fr 07_gas 1 281 2030 0.0 0.0 +fr 08_non-res 1 281 2030 0.0 0.0 +fr 09_hydro_pump 1 281 2030 0.0 0.0 +fr 01_solar 1 282 2030 1.0 0.0 +fr 02_wind_on 1 282 2030 1.0 0.0 +fr 03_wind_off 1 282 2030 1.0 0.0 +fr 04_res 1 282 2030 1.0 0.0 +fr 05_nuclear 1 282 2030 1.0 0.0 +fr 06_coal 1 282 2030 1.0 0.0 +fr 07_gas 1 282 2030 0.0 0.0 +fr 08_non-res 1 282 2030 0.0 0.0 +fr 09_hydro_pump 1 282 2030 0.0 0.0 +fr 01_solar 1 283 2030 1.0 0.0 +fr 02_wind_on 1 283 2030 1.0 0.0 +fr 03_wind_off 1 283 2030 1.0 0.0 +fr 04_res 1 283 2030 1.0 0.0 +fr 05_nuclear 1 283 2030 1.0 0.0 +fr 06_coal 1 283 2030 1.0 0.0 +fr 07_gas 1 283 2030 0.0 0.0 +fr 08_non-res 1 283 2030 0.0 0.0 +fr 09_hydro_pump 1 283 2030 0.0 0.0 +fr 01_solar 1 284 2030 1.0 0.0 +fr 02_wind_on 1 284 2030 1.0 0.0 +fr 03_wind_off 1 284 2030 1.0 0.0 +fr 04_res 1 284 2030 1.0 0.0 +fr 05_nuclear 1 284 2030 1.0 0.0 +fr 06_coal 1 284 2030 1.0 0.0 +fr 07_gas 1 284 2030 0.0 0.0 +fr 08_non-res 1 284 2030 0.0 0.0 +fr 09_hydro_pump 1 284 2030 0.0 0.0 +fr 01_solar 1 285 2030 1.0 0.0 +fr 02_wind_on 1 285 2030 1.0 0.0 +fr 03_wind_off 1 285 2030 1.0 0.0 +fr 04_res 1 285 2030 1.0 0.0 +fr 05_nuclear 1 285 2030 1.0 0.0 +fr 06_coal 1 285 2030 1.0 0.0 +fr 07_gas 1 285 2030 0.0 0.0 +fr 08_non-res 1 285 2030 0.0 0.0 +fr 09_hydro_pump 1 285 2030 0.0 0.0 +fr 01_solar 1 286 2030 1.0 0.0 +fr 02_wind_on 1 286 2030 1.0 0.0 +fr 03_wind_off 1 286 2030 1.0 0.0 +fr 04_res 1 286 2030 1.0 0.0 +fr 05_nuclear 1 286 2030 1.0 0.0 +fr 06_coal 1 286 2030 1.0 0.0 +fr 07_gas 1 286 2030 0.0 0.0 +fr 08_non-res 1 286 2030 0.0 0.0 +fr 09_hydro_pump 1 286 2030 0.0 0.0 +fr 01_solar 1 287 2030 1.0 0.0 +fr 02_wind_on 1 287 2030 1.0 0.0 +fr 03_wind_off 1 287 2030 1.0 0.0 +fr 04_res 1 287 2030 1.0 0.0 +fr 05_nuclear 1 287 2030 1.0 0.0 +fr 06_coal 1 287 2030 1.0 0.0 +fr 07_gas 1 287 2030 0.0 0.0 +fr 08_non-res 1 287 2030 0.0 0.0 +fr 09_hydro_pump 1 287 2030 0.0 0.0 +fr 01_solar 1 288 2030 1.0 0.0 +fr 02_wind_on 1 288 2030 1.0 0.0 +fr 03_wind_off 1 288 2030 1.0 0.0 +fr 04_res 1 288 2030 1.0 0.0 +fr 05_nuclear 1 288 2030 1.0 0.0 +fr 06_coal 1 288 2030 1.0 0.0 +fr 07_gas 1 288 2030 0.0 0.0 +fr 08_non-res 1 288 2030 0.0 0.0 +fr 09_hydro_pump 1 288 2030 0.0 0.0 +fr 01_solar 1 289 2030 1.0 0.0 +fr 02_wind_on 1 289 2030 1.0 0.0 +fr 03_wind_off 1 289 2030 1.0 0.0 +fr 04_res 1 289 2030 1.0 0.0 +fr 05_nuclear 1 289 2030 1.0 0.0 +fr 06_coal 1 289 2030 1.0 0.0 +fr 07_gas 1 289 2030 0.0 0.0 +fr 08_non-res 1 289 2030 0.0 0.0 +fr 09_hydro_pump 1 289 2030 0.0 0.0 +fr 01_solar 1 290 2030 1.0 0.0 +fr 02_wind_on 1 290 2030 1.0 0.0 +fr 03_wind_off 1 290 2030 1.0 0.0 +fr 04_res 1 290 2030 1.0 0.0 +fr 05_nuclear 1 290 2030 1.0 0.0 +fr 06_coal 1 290 2030 1.0 0.0 +fr 07_gas 1 290 2030 1.0 0.0 +fr 08_non-res 1 290 2030 0.0 0.0 +fr 09_hydro_pump 1 290 2030 0.0 0.0 +fr 01_solar 1 291 2030 1.0 0.0 +fr 02_wind_on 1 291 2030 1.0 0.0 +fr 03_wind_off 1 291 2030 1.0 0.0 +fr 04_res 1 291 2030 1.0 0.0 +fr 05_nuclear 1 291 2030 1.0 0.0 +fr 06_coal 1 291 2030 1.0 0.0 +fr 07_gas 1 291 2030 1.0 0.0 +fr 08_non-res 1 291 2030 0.0 0.0 +fr 09_hydro_pump 1 291 2030 0.0 0.0 +fr 01_solar 1 292 2030 1.0 0.0 +fr 02_wind_on 1 292 2030 1.0 0.0 +fr 03_wind_off 1 292 2030 1.0 0.0 +fr 04_res 1 292 2030 1.0 0.0 +fr 05_nuclear 1 292 2030 1.0 0.0 +fr 06_coal 1 292 2030 1.0 0.0 +fr 07_gas 1 292 2030 1.0 0.0 +fr 08_non-res 1 292 2030 0.0 0.0 +fr 09_hydro_pump 1 292 2030 0.0 0.0 +fr 01_solar 1 293 2030 1.0 0.0 +fr 02_wind_on 1 293 2030 1.0 0.0 +fr 03_wind_off 1 293 2030 1.0 0.0 +fr 04_res 1 293 2030 1.0 0.0 +fr 05_nuclear 1 293 2030 1.0 0.0 +fr 06_coal 1 293 2030 1.0 0.0 +fr 07_gas 1 293 2030 1.0 0.0 +fr 08_non-res 1 293 2030 0.0 0.0 +fr 09_hydro_pump 1 293 2030 0.0 0.0 +fr 01_solar 1 294 2030 1.0 0.0 +fr 02_wind_on 1 294 2030 1.0 0.0 +fr 03_wind_off 1 294 2030 1.0 0.0 +fr 04_res 1 294 2030 1.0 0.0 +fr 05_nuclear 1 294 2030 1.0 0.0 +fr 06_coal 1 294 2030 1.0 0.0 +fr 07_gas 1 294 2030 1.0 0.0 +fr 08_non-res 1 294 2030 0.0 0.0 +fr 09_hydro_pump 1 294 2030 0.0 0.0 +fr 01_solar 1 295 2030 1.0 0.0 +fr 02_wind_on 1 295 2030 1.0 0.0 +fr 03_wind_off 1 295 2030 1.0 0.0 +fr 04_res 1 295 2030 1.0 0.0 +fr 05_nuclear 1 295 2030 1.0 0.0 +fr 06_coal 1 295 2030 1.0 0.0 +fr 07_gas 1 295 2030 1.0 0.0 +fr 08_non-res 1 295 2030 0.0 0.0 +fr 09_hydro_pump 1 295 2030 0.0 0.0 +fr 01_solar 1 296 2030 1.0 0.0 +fr 02_wind_on 1 296 2030 1.0 0.0 +fr 03_wind_off 1 296 2030 1.0 0.0 +fr 04_res 1 296 2030 1.0 0.0 +fr 05_nuclear 1 296 2030 1.0 0.0 +fr 06_coal 1 296 2030 1.0 0.0 +fr 07_gas 1 296 2030 1.0 0.0 +fr 08_non-res 1 296 2030 0.0 0.0 +fr 09_hydro_pump 1 296 2030 0.0 0.0 +fr 01_solar 1 297 2030 1.0 0.0 +fr 02_wind_on 1 297 2030 1.0 0.0 +fr 03_wind_off 1 297 2030 1.0 0.0 +fr 04_res 1 297 2030 1.0 0.0 +fr 05_nuclear 1 297 2030 1.0 0.0 +fr 06_coal 1 297 2030 1.0 0.0 +fr 07_gas 1 297 2030 1.0 0.0 +fr 08_non-res 1 297 2030 0.0 0.0 +fr 09_hydro_pump 1 297 2030 0.0 0.0 +fr 01_solar 1 298 2030 1.0 0.0 +fr 02_wind_on 1 298 2030 1.0 0.0 +fr 03_wind_off 1 298 2030 1.0 0.0 +fr 04_res 1 298 2030 1.0 0.0 +fr 05_nuclear 1 298 2030 1.0 0.0 +fr 06_coal 1 298 2030 1.0 0.0 +fr 07_gas 1 298 2030 1.0 0.0 +fr 08_non-res 1 298 2030 0.0 0.0 +fr 09_hydro_pump 1 298 2030 0.0 0.0 +fr 01_solar 1 299 2030 1.0 0.0 +fr 02_wind_on 1 299 2030 1.0 0.0 +fr 03_wind_off 1 299 2030 1.0 0.0 +fr 04_res 1 299 2030 1.0 0.0 +fr 05_nuclear 1 299 2030 1.0 0.0 +fr 06_coal 1 299 2030 1.0 0.0 +fr 07_gas 1 299 2030 1.0 0.0 +fr 08_non-res 1 299 2030 0.0 0.0 +fr 09_hydro_pump 1 299 2030 0.0 0.0 +fr 01_solar 1 300 2030 1.0 0.0 +fr 02_wind_on 1 300 2030 1.0 0.0 +fr 03_wind_off 1 300 2030 1.0 0.0 +fr 04_res 1 300 2030 1.0 0.0 +fr 05_nuclear 1 300 2030 1.0 0.0 +fr 06_coal 1 300 2030 1.0 0.0 +fr 07_gas 1 300 2030 1.0 0.0 +fr 08_non-res 1 300 2030 0.0 0.0 +fr 09_hydro_pump 1 300 2030 0.0 0.0 +fr 01_solar 1 301 2030 1.0 0.0 +fr 02_wind_on 1 301 2030 1.0 0.0 +fr 03_wind_off 1 301 2030 1.0 0.0 +fr 04_res 1 301 2030 1.0 0.0 +fr 05_nuclear 1 301 2030 1.0 0.0 +fr 06_coal 1 301 2030 1.0 0.0 +fr 07_gas 1 301 2030 1.0 0.0 +fr 08_non-res 1 301 2030 0.0 0.0 +fr 09_hydro_pump 1 301 2030 0.0 0.0 +fr 01_solar 1 302 2030 1.0 0.0 +fr 02_wind_on 1 302 2030 1.0 0.0 +fr 03_wind_off 1 302 2030 1.0 0.0 +fr 04_res 1 302 2030 1.0 0.0 +fr 05_nuclear 1 302 2030 1.0 0.0 +fr 06_coal 1 302 2030 1.0 0.0 +fr 07_gas 1 302 2030 1.0 0.0 +fr 08_non-res 1 302 2030 0.0 0.0 +fr 09_hydro_pump 1 302 2030 0.0 0.0 +fr 01_solar 1 303 2030 1.0 0.0 +fr 02_wind_on 1 303 2030 1.0 0.0 +fr 03_wind_off 1 303 2030 1.0 0.0 +fr 04_res 1 303 2030 1.0 0.0 +fr 05_nuclear 1 303 2030 1.0 0.0 +fr 06_coal 1 303 2030 1.0 0.0 +fr 07_gas 1 303 2030 1.0 0.0 +fr 08_non-res 1 303 2030 0.0 0.0 +fr 09_hydro_pump 1 303 2030 0.0 0.0 +fr 01_solar 1 304 2030 1.0 0.0 +fr 02_wind_on 1 304 2030 1.0 0.0 +fr 03_wind_off 1 304 2030 1.0 0.0 +fr 04_res 1 304 2030 1.0 0.0 +fr 05_nuclear 1 304 2030 1.0 0.0 +fr 06_coal 1 304 2030 1.0 0.0 +fr 07_gas 1 304 2030 1.0 0.0 +fr 08_non-res 1 304 2030 0.0 0.0 +fr 09_hydro_pump 1 304 2030 0.0 0.0 +fr 01_solar 1 305 2030 1.0 0.0 +fr 02_wind_on 1 305 2030 1.0 0.0 +fr 03_wind_off 1 305 2030 1.0 0.0 +fr 04_res 1 305 2030 1.0 0.0 +fr 05_nuclear 1 305 2030 1.0 0.0 +fr 06_coal 1 305 2030 1.0 0.0 +fr 07_gas 1 305 2030 1.0 0.0 +fr 08_non-res 1 305 2030 0.0 0.0 +fr 09_hydro_pump 1 305 2030 0.0 0.0 +fr 01_solar 1 306 2030 1.0 0.0 +fr 02_wind_on 1 306 2030 1.0 0.0 +fr 03_wind_off 1 306 2030 1.0 0.0 +fr 04_res 1 306 2030 1.0 0.0 +fr 05_nuclear 1 306 2030 1.0 0.0 +fr 06_coal 1 306 2030 1.0 0.0 +fr 07_gas 1 306 2030 1.0 0.0 +fr 08_non-res 1 306 2030 0.0 0.0 +fr 09_hydro_pump 1 306 2030 0.0 0.0 +fr 01_solar 1 307 2030 1.0 0.0 +fr 02_wind_on 1 307 2030 1.0 0.0 +fr 03_wind_off 1 307 2030 1.0 0.0 +fr 04_res 1 307 2030 1.0 0.0 +fr 05_nuclear 1 307 2030 1.0 0.0 +fr 06_coal 1 307 2030 1.0 0.0 +fr 07_gas 1 307 2030 1.0 0.0 +fr 08_non-res 1 307 2030 0.0 0.0 +fr 09_hydro_pump 1 307 2030 0.0 0.0 +fr 01_solar 1 308 2030 1.0 0.0 +fr 02_wind_on 1 308 2030 1.0 0.0 +fr 03_wind_off 1 308 2030 1.0 0.0 +fr 04_res 1 308 2030 1.0 0.0 +fr 05_nuclear 1 308 2030 1.0 0.0 +fr 06_coal 1 308 2030 1.0 0.0 +fr 07_gas 1 308 2030 1.0 0.0 +fr 08_non-res 1 308 2030 0.0 0.0 +fr 09_hydro_pump 1 308 2030 0.0 0.0 +fr 01_solar 1 309 2030 1.0 0.0 +fr 02_wind_on 1 309 2030 1.0 0.0 +fr 03_wind_off 1 309 2030 1.0 0.0 +fr 04_res 1 309 2030 1.0 0.0 +fr 05_nuclear 1 309 2030 1.0 0.0 +fr 06_coal 1 309 2030 1.0 0.0 +fr 07_gas 1 309 2030 1.0 0.0 +fr 08_non-res 1 309 2030 0.0 0.0 +fr 09_hydro_pump 1 309 2030 0.0 0.0 +fr 01_solar 1 310 2030 1.0 0.0 +fr 02_wind_on 1 310 2030 1.0 0.0 +fr 03_wind_off 1 310 2030 1.0 0.0 +fr 04_res 1 310 2030 1.0 0.0 +fr 05_nuclear 1 310 2030 1.0 0.0 +fr 06_coal 1 310 2030 1.0 0.0 +fr 07_gas 1 310 2030 1.0 0.0 +fr 08_non-res 1 310 2030 1.0 0.0 +fr 09_hydro_pump 1 310 2030 0.0 0.0 +fr 01_solar 1 311 2030 1.0 0.0 +fr 02_wind_on 1 311 2030 1.0 0.0 +fr 03_wind_off 1 311 2030 1.0 0.0 +fr 04_res 1 311 2030 1.0 0.0 +fr 05_nuclear 1 311 2030 1.0 0.0 +fr 06_coal 1 311 2030 1.0 0.0 +fr 07_gas 1 311 2030 1.0 0.0 +fr 08_non-res 1 311 2030 1.0 0.0 +fr 09_hydro_pump 1 311 2030 0.0 0.0 +fr 01_solar 1 312 2030 1.0 0.0 +fr 02_wind_on 1 312 2030 1.0 0.0 +fr 03_wind_off 1 312 2030 1.0 0.0 +fr 04_res 1 312 2030 1.0 0.0 +fr 05_nuclear 1 312 2030 1.0 0.0 +fr 06_coal 1 312 2030 1.0 0.0 +fr 07_gas 1 312 2030 1.0 0.0 +fr 08_non-res 1 312 2030 1.0 0.0 +fr 09_hydro_pump 1 312 2030 0.0 0.0 +fr 01_solar 1 313 2030 1.0 0.0 +fr 02_wind_on 1 313 2030 1.0 0.0 +fr 03_wind_off 1 313 2030 1.0 0.0 +fr 04_res 1 313 2030 1.0 0.0 +fr 05_nuclear 1 313 2030 1.0 0.0 +fr 06_coal 1 313 2030 1.0 0.0 +fr 07_gas 1 313 2030 1.0 0.0 +fr 08_non-res 1 313 2030 1.0 0.0 +fr 09_hydro_pump 1 313 2030 0.0 0.0 +fr 01_solar 1 314 2030 1.0 0.0 +fr 02_wind_on 1 314 2030 1.0 0.0 +fr 03_wind_off 1 314 2030 1.0 0.0 +fr 04_res 1 314 2030 1.0 0.0 +fr 05_nuclear 1 314 2030 1.0 0.0 +fr 06_coal 1 314 2030 1.0 0.0 +fr 07_gas 1 314 2030 1.0 0.0 +fr 08_non-res 1 314 2030 1.0 0.0 +fr 09_hydro_pump 1 314 2030 0.0 0.0 +fr 01_solar 1 315 2030 1.0 0.0 +fr 02_wind_on 1 315 2030 1.0 0.0 +fr 03_wind_off 1 315 2030 1.0 0.0 +fr 04_res 1 315 2030 1.0 0.0 +fr 05_nuclear 1 315 2030 1.0 0.0 +fr 06_coal 1 315 2030 1.0 0.0 +fr 07_gas 1 315 2030 1.0 0.0 +fr 08_non-res 1 315 2030 1.0 0.0 +fr 09_hydro_pump 1 315 2030 0.0 0.0 +fr 01_solar 1 316 2030 1.0 0.0 +fr 02_wind_on 1 316 2030 1.0 0.0 +fr 03_wind_off 1 316 2030 1.0 0.0 +fr 04_res 1 316 2030 1.0 0.0 +fr 05_nuclear 1 316 2030 1.0 0.0 +fr 06_coal 1 316 2030 1.0 0.0 +fr 07_gas 1 316 2030 1.0 0.0 +fr 08_non-res 1 316 2030 1.0 0.0 +fr 09_hydro_pump 1 316 2030 0.0 0.0 +fr 01_solar 1 317 2030 1.0 0.0 +fr 02_wind_on 1 317 2030 1.0 0.0 +fr 03_wind_off 1 317 2030 1.0 0.0 +fr 04_res 1 317 2030 1.0 0.0 +fr 05_nuclear 1 317 2030 1.0 0.0 +fr 06_coal 1 317 2030 1.0 0.0 +fr 07_gas 1 317 2030 1.0 0.0 +fr 08_non-res 1 317 2030 1.0 0.0 +fr 09_hydro_pump 1 317 2030 0.0 0.0 +fr 01_solar 1 318 2030 1.0 0.0 +fr 02_wind_on 1 318 2030 1.0 0.0 +fr 03_wind_off 1 318 2030 1.0 0.0 +fr 04_res 1 318 2030 1.0 0.0 +fr 05_nuclear 1 318 2030 1.0 0.0 +fr 06_coal 1 318 2030 1.0 0.0 +fr 07_gas 1 318 2030 1.0 0.0 +fr 08_non-res 1 318 2030 1.0 0.0 +fr 09_hydro_pump 1 318 2030 0.0 0.0 +fr 01_solar 1 319 2030 1.0 0.0 +fr 02_wind_on 1 319 2030 1.0 0.0 +fr 03_wind_off 1 319 2030 1.0 0.0 +fr 04_res 1 319 2030 1.0 0.0 +fr 05_nuclear 1 319 2030 1.0 0.0 +fr 06_coal 1 319 2030 1.0 0.0 +fr 07_gas 1 319 2030 1.0 0.0 +fr 08_non-res 1 319 2030 1.0 0.0 +fr 09_hydro_pump 1 319 2030 0.0 0.0 +fr 01_solar 1 320 2030 1.0 0.0 +fr 02_wind_on 1 320 2030 1.0 0.0 +fr 03_wind_off 1 320 2030 1.0 0.0 +fr 04_res 1 320 2030 1.0 0.0 +fr 05_nuclear 1 320 2030 1.0 0.0 +fr 06_coal 1 320 2030 1.0 0.0 +fr 07_gas 1 320 2030 1.0 0.0 +fr 08_non-res 1 320 2030 1.0 0.0 +fr 09_hydro_pump 1 320 2030 0.0 0.0 +fr 01_solar 1 321 2030 1.0 0.0 +fr 02_wind_on 1 321 2030 1.0 0.0 +fr 03_wind_off 1 321 2030 1.0 0.0 +fr 04_res 1 321 2030 1.0 0.0 +fr 05_nuclear 1 321 2030 1.0 0.0 +fr 06_coal 1 321 2030 1.0 0.0 +fr 07_gas 1 321 2030 1.0 0.0 +fr 08_non-res 1 321 2030 1.0 0.0 +fr 09_hydro_pump 1 321 2030 0.0 0.0 +fr 01_solar 1 322 2030 1.0 0.0 +fr 02_wind_on 1 322 2030 1.0 0.0 +fr 03_wind_off 1 322 2030 1.0 0.0 +fr 04_res 1 322 2030 1.0 0.0 +fr 05_nuclear 1 322 2030 1.0 0.0 +fr 06_coal 1 322 2030 1.0 0.0 +fr 07_gas 1 322 2030 1.0 0.0 +fr 08_non-res 1 322 2030 1.0 0.0 +fr 09_hydro_pump 1 322 2030 0.0 0.0 +fr 01_solar 1 323 2030 1.0 0.0 +fr 02_wind_on 1 323 2030 1.0 0.0 +fr 03_wind_off 1 323 2030 1.0 0.0 +fr 04_res 1 323 2030 1.0 0.0 +fr 05_nuclear 1 323 2030 1.0 0.0 +fr 06_coal 1 323 2030 1.0 0.0 +fr 07_gas 1 323 2030 1.0 0.0 +fr 08_non-res 1 323 2030 1.0 0.0 +fr 09_hydro_pump 1 323 2030 0.0 0.0 +fr 01_solar 1 324 2030 1.0 0.0 +fr 02_wind_on 1 324 2030 1.0 0.0 +fr 03_wind_off 1 324 2030 1.0 0.0 +fr 04_res 1 324 2030 1.0 0.0 +fr 05_nuclear 1 324 2030 1.0 0.0 +fr 06_coal 1 324 2030 1.0 0.0 +fr 07_gas 1 324 2030 1.0 0.0 +fr 08_non-res 1 324 2030 1.0 0.0 +fr 09_hydro_pump 1 324 2030 0.0 0.0 +fr 01_solar 1 325 2030 1.0 0.0 +fr 02_wind_on 1 325 2030 1.0 0.0 +fr 03_wind_off 1 325 2030 1.0 0.0 +fr 04_res 1 325 2030 1.0 0.0 +fr 05_nuclear 1 325 2030 1.0 0.0 +fr 06_coal 1 325 2030 1.0 0.0 +fr 07_gas 1 325 2030 1.0 0.0 +fr 08_non-res 1 325 2030 1.0 0.0 +fr 09_hydro_pump 1 325 2030 0.0 0.0 +fr 01_solar 1 326 2030 1.0 0.0 +fr 02_wind_on 1 326 2030 1.0 0.0 +fr 03_wind_off 1 326 2030 1.0 0.0 +fr 04_res 1 326 2030 1.0 0.0 +fr 05_nuclear 1 326 2030 1.0 0.0 +fr 06_coal 1 326 2030 1.0 0.0 +fr 07_gas 1 326 2030 1.0 0.0 +fr 08_non-res 1 326 2030 1.0 0.0 +fr 09_hydro_pump 1 326 2030 0.0 0.0 +fr 01_solar 1 327 2030 1.0 0.0 +fr 02_wind_on 1 327 2030 1.0 0.0 +fr 03_wind_off 1 327 2030 1.0 0.0 +fr 04_res 1 327 2030 1.0 0.0 +fr 05_nuclear 1 327 2030 1.0 0.0 +fr 06_coal 1 327 2030 1.0 0.0 +fr 07_gas 1 327 2030 1.0 0.0 +fr 08_non-res 1 327 2030 1.0 0.0 +fr 09_hydro_pump 1 327 2030 0.0 0.0 +fr 01_solar 1 328 2030 1.0 0.0 +fr 02_wind_on 1 328 2030 1.0 0.0 +fr 03_wind_off 1 328 2030 1.0 0.0 +fr 04_res 1 328 2030 1.0 0.0 +fr 05_nuclear 1 328 2030 1.0 0.0 +fr 06_coal 1 328 2030 1.0 0.0 +fr 07_gas 1 328 2030 1.0 0.0 +fr 08_non-res 1 328 2030 1.0 0.0 +fr 09_hydro_pump 1 328 2030 0.0 0.0 +fr 01_solar 1 329 2030 1.0 0.0 +fr 02_wind_on 1 329 2030 1.0 0.0 +fr 03_wind_off 1 329 2030 1.0 0.0 +fr 04_res 1 329 2030 1.0 0.0 +fr 05_nuclear 1 329 2030 1.0 0.0 +fr 06_coal 1 329 2030 1.0 0.0 +fr 07_gas 1 329 2030 1.0 0.0 +fr 08_non-res 1 329 2030 1.0 0.0 +fr 09_hydro_pump 1 329 2030 0.0 0.0 +fr 01_solar 1 330 2030 1.0 0.0 +fr 02_wind_on 1 330 2030 1.0 0.0 +fr 03_wind_off 1 330 2030 1.0 0.0 +fr 04_res 1 330 2030 1.0 0.0 +fr 05_nuclear 1 330 2030 1.0 0.0 +fr 06_coal 1 330 2030 1.0 0.0 +fr 07_gas 1 330 2030 1.0 0.0 +fr 08_non-res 1 330 2030 1.0 0.0 +fr 09_hydro_pump 1 330 2030 1.0 0.0 +fr 01_solar 1 331 2030 1.0 0.0 +fr 02_wind_on 1 331 2030 1.0 0.0 +fr 03_wind_off 1 331 2030 1.0 0.0 +fr 04_res 1 331 2030 1.0 0.0 +fr 05_nuclear 1 331 2030 1.0 0.0 +fr 06_coal 1 331 2030 1.0 0.0 +fr 07_gas 1 331 2030 1.0 0.0 +fr 08_non-res 1 331 2030 1.0 0.0 +fr 09_hydro_pump 1 331 2030 1.0 0.0 +fr 01_solar 1 332 2030 1.0 0.0 +fr 02_wind_on 1 332 2030 1.0 0.0 +fr 03_wind_off 1 332 2030 1.0 0.0 +fr 04_res 1 332 2030 1.0 0.0 +fr 05_nuclear 1 332 2030 1.0 0.0 +fr 06_coal 1 332 2030 1.0 0.0 +fr 07_gas 1 332 2030 1.0 0.0 +fr 08_non-res 1 332 2030 1.0 0.0 +fr 09_hydro_pump 1 332 2030 1.0 0.0 +fr 01_solar 1 333 2030 1.0 0.0 +fr 02_wind_on 1 333 2030 1.0 0.0 +fr 03_wind_off 1 333 2030 1.0 0.0 +fr 04_res 1 333 2030 1.0 0.0 +fr 05_nuclear 1 333 2030 1.0 0.0 +fr 06_coal 1 333 2030 1.0 0.0 +fr 07_gas 1 333 2030 1.0 0.0 +fr 08_non-res 1 333 2030 1.0 0.0 +fr 09_hydro_pump 1 333 2030 1.0 0.0 +fr 01_solar 1 334 2030 1.0 0.0 +fr 02_wind_on 1 334 2030 1.0 0.0 +fr 03_wind_off 1 334 2030 1.0 0.0 +fr 04_res 1 334 2030 1.0 0.0 +fr 05_nuclear 1 334 2030 1.0 0.0 +fr 06_coal 1 334 2030 1.0 0.0 +fr 07_gas 1 334 2030 1.0 0.0 +fr 08_non-res 1 334 2030 1.0 0.0 +fr 09_hydro_pump 1 334 2030 1.0 0.0 +fr 01_solar 1 335 2030 1.0 0.0 +fr 02_wind_on 1 335 2030 1.0 0.0 +fr 03_wind_off 1 335 2030 1.0 0.0 +fr 04_res 1 335 2030 1.0 0.0 +fr 05_nuclear 1 335 2030 1.0 0.0 +fr 06_coal 1 335 2030 1.0 0.0 +fr 07_gas 1 335 2030 1.0 0.0 +fr 08_non-res 1 335 2030 1.0 0.0 +fr 09_hydro_pump 1 335 2030 1.0 0.0 +fr 01_solar 1 336 2030 1.0 0.0 +fr 02_wind_on 1 336 2030 1.0 0.0 +fr 03_wind_off 1 336 2030 1.0 0.0 +fr 04_res 1 336 2030 1.0 0.0 +fr 05_nuclear 1 336 2030 1.0 0.0 +fr 06_coal 1 336 2030 1.0 0.0 +fr 07_gas 1 336 2030 1.0 0.0 +fr 08_non-res 1 336 2030 1.0 0.0 +fr 09_hydro_pump 1 336 2030 1.0 0.0 +it 01_solar 1 1 2030 0.0 0.0 +it 02_wind_on 1 1 2030 0.0 0.0 +it 03_wind_off 1 1 2030 0.0 0.0 +it 04_res 1 1 2030 0.0 0.0 +it 05_nuclear 1 1 2030 0.0 0.0 +it 06_coal 1 1 2030 0.0 0.0 +it 07_gas 1 1 2030 0.0 0.0 +it 08_non-res 1 1 2030 0.0 0.0 +it 09_hydro_pump 1 1 2030 0.0 0.0 +it 01_solar 1 2 2030 1.0 0.0 +it 02_wind_on 1 2 2030 0.0 0.0 +it 03_wind_off 1 2 2030 0.0 0.0 +it 04_res 1 2 2030 0.0 0.0 +it 05_nuclear 1 2 2030 0.0 0.0 +it 06_coal 1 2 2030 0.0 0.0 +it 07_gas 1 2 2030 0.0 0.0 +it 08_non-res 1 2 2030 0.0 0.0 +it 09_hydro_pump 1 2 2030 0.0 0.0 +it 01_solar 1 3 2030 1.0 0.0 +it 02_wind_on 1 3 2030 0.0 0.0 +it 03_wind_off 1 3 2030 0.0 0.0 +it 04_res 1 3 2030 0.0 0.0 +it 05_nuclear 1 3 2030 0.0 0.0 +it 06_coal 1 3 2030 0.0 0.0 +it 07_gas 1 3 2030 0.0 0.0 +it 08_non-res 1 3 2030 0.0 0.0 +it 09_hydro_pump 1 3 2030 0.0 0.0 +it 01_solar 1 4 2030 1.0 0.0 +it 02_wind_on 1 4 2030 0.0 0.0 +it 03_wind_off 1 4 2030 0.0 0.0 +it 04_res 1 4 2030 0.0 0.0 +it 05_nuclear 1 4 2030 0.0 0.0 +it 06_coal 1 4 2030 0.0 0.0 +it 07_gas 1 4 2030 0.0 0.0 +it 08_non-res 1 4 2030 0.0 0.0 +it 09_hydro_pump 1 4 2030 0.0 0.0 +it 01_solar 1 5 2030 1.0 0.0 +it 02_wind_on 1 5 2030 0.0 0.0 +it 03_wind_off 1 5 2030 0.0 0.0 +it 04_res 1 5 2030 0.0 0.0 +it 05_nuclear 1 5 2030 0.0 0.0 +it 06_coal 1 5 2030 0.0 0.0 +it 07_gas 1 5 2030 0.0 0.0 +it 08_non-res 1 5 2030 0.0 0.0 +it 09_hydro_pump 1 5 2030 0.0 0.0 +it 01_solar 1 6 2030 1.0 0.0 +it 02_wind_on 1 6 2030 0.0 0.0 +it 03_wind_off 1 6 2030 0.0 0.0 +it 04_res 1 6 2030 0.0 0.0 +it 05_nuclear 1 6 2030 0.0 0.0 +it 06_coal 1 6 2030 0.0 0.0 +it 07_gas 1 6 2030 0.0 0.0 +it 08_non-res 1 6 2030 0.0 0.0 +it 09_hydro_pump 1 6 2030 0.0 0.0 +it 01_solar 1 7 2030 1.0 0.0 +it 02_wind_on 1 7 2030 0.0 0.0 +it 03_wind_off 1 7 2030 0.0 0.0 +it 04_res 1 7 2030 0.0 0.0 +it 05_nuclear 1 7 2030 0.0 0.0 +it 06_coal 1 7 2030 0.0 0.0 +it 07_gas 1 7 2030 0.0 0.0 +it 08_non-res 1 7 2030 0.0 0.0 +it 09_hydro_pump 1 7 2030 0.0 0.0 +it 01_solar 1 8 2030 1.0 0.0 +it 02_wind_on 1 8 2030 0.0 0.0 +it 03_wind_off 1 8 2030 0.0 0.0 +it 04_res 1 8 2030 0.0 0.0 +it 05_nuclear 1 8 2030 0.0 0.0 +it 06_coal 1 8 2030 0.0 0.0 +it 07_gas 1 8 2030 0.0 0.0 +it 08_non-res 1 8 2030 0.0 0.0 +it 09_hydro_pump 1 8 2030 0.0 0.0 +it 01_solar 1 9 2030 1.0 0.0 +it 02_wind_on 1 9 2030 0.0 0.0 +it 03_wind_off 1 9 2030 0.0 0.0 +it 04_res 1 9 2030 0.0 0.0 +it 05_nuclear 1 9 2030 0.0 0.0 +it 06_coal 1 9 2030 0.0 0.0 +it 07_gas 1 9 2030 0.0 0.0 +it 08_non-res 1 9 2030 0.0 0.0 +it 09_hydro_pump 1 9 2030 0.0 0.0 +it 01_solar 1 10 2030 1.0 0.0 +it 02_wind_on 1 10 2030 0.0 0.0 +it 03_wind_off 1 10 2030 0.0 0.0 +it 04_res 1 10 2030 0.0 0.0 +it 05_nuclear 1 10 2030 0.0 0.0 +it 06_coal 1 10 2030 0.0 0.0 +it 07_gas 1 10 2030 0.0 0.0 +it 08_non-res 1 10 2030 0.0 0.0 +it 09_hydro_pump 1 10 2030 0.0 0.0 +it 01_solar 1 11 2030 1.0 0.0 +it 02_wind_on 1 11 2030 0.0 0.0 +it 03_wind_off 1 11 2030 0.0 0.0 +it 04_res 1 11 2030 0.0 0.0 +it 05_nuclear 1 11 2030 0.0 0.0 +it 06_coal 1 11 2030 0.0 0.0 +it 07_gas 1 11 2030 0.0 0.0 +it 08_non-res 1 11 2030 0.0 0.0 +it 09_hydro_pump 1 11 2030 0.0 0.0 +it 01_solar 1 12 2030 1.0 0.0 +it 02_wind_on 1 12 2030 0.0 0.0 +it 03_wind_off 1 12 2030 0.0 0.0 +it 04_res 1 12 2030 0.0 0.0 +it 05_nuclear 1 12 2030 0.0 0.0 +it 06_coal 1 12 2030 0.0 0.0 +it 07_gas 1 12 2030 0.0 0.0 +it 08_non-res 1 12 2030 0.0 0.0 +it 09_hydro_pump 1 12 2030 0.0 0.0 +it 01_solar 1 13 2030 1.0 0.0 +it 02_wind_on 1 13 2030 0.0 0.0 +it 03_wind_off 1 13 2030 0.0 0.0 +it 04_res 1 13 2030 0.0 0.0 +it 05_nuclear 1 13 2030 0.0 0.0 +it 06_coal 1 13 2030 0.0 0.0 +it 07_gas 1 13 2030 0.0 0.0 +it 08_non-res 1 13 2030 0.0 0.0 +it 09_hydro_pump 1 13 2030 0.0 0.0 +it 01_solar 1 14 2030 1.0 0.0 +it 02_wind_on 1 14 2030 0.0 0.0 +it 03_wind_off 1 14 2030 0.0 0.0 +it 04_res 1 14 2030 0.0 0.0 +it 05_nuclear 1 14 2030 0.0 0.0 +it 06_coal 1 14 2030 0.0 0.0 +it 07_gas 1 14 2030 0.0 0.0 +it 08_non-res 1 14 2030 0.0 0.0 +it 09_hydro_pump 1 14 2030 0.0 0.0 +it 01_solar 1 15 2030 1.0 0.0 +it 02_wind_on 1 15 2030 0.0 0.0 +it 03_wind_off 1 15 2030 0.0 0.0 +it 04_res 1 15 2030 0.0 0.0 +it 05_nuclear 1 15 2030 0.0 0.0 +it 06_coal 1 15 2030 0.0 0.0 +it 07_gas 1 15 2030 0.0 0.0 +it 08_non-res 1 15 2030 0.0 0.0 +it 09_hydro_pump 1 15 2030 0.0 0.0 +it 01_solar 1 16 2030 1.0 0.0 +it 02_wind_on 1 16 2030 0.0 0.0 +it 03_wind_off 1 16 2030 0.0 0.0 +it 04_res 1 16 2030 0.0 0.0 +it 05_nuclear 1 16 2030 0.0 0.0 +it 06_coal 1 16 2030 0.0 0.0 +it 07_gas 1 16 2030 0.0 0.0 +it 08_non-res 1 16 2030 0.0 0.0 +it 09_hydro_pump 1 16 2030 0.0 0.0 +it 01_solar 1 17 2030 1.0 0.0 +it 02_wind_on 1 17 2030 0.0 0.0 +it 03_wind_off 1 17 2030 0.0 0.0 +it 04_res 1 17 2030 0.0 0.0 +it 05_nuclear 1 17 2030 0.0 0.0 +it 06_coal 1 17 2030 0.0 0.0 +it 07_gas 1 17 2030 0.0 0.0 +it 08_non-res 1 17 2030 0.0 0.0 +it 09_hydro_pump 1 17 2030 0.0 0.0 +it 01_solar 1 18 2030 1.0 0.0 +it 02_wind_on 1 18 2030 0.0 0.0 +it 03_wind_off 1 18 2030 0.0 0.0 +it 04_res 1 18 2030 0.0 0.0 +it 05_nuclear 1 18 2030 0.0 0.0 +it 06_coal 1 18 2030 0.0 0.0 +it 07_gas 1 18 2030 0.0 0.0 +it 08_non-res 1 18 2030 0.0 0.0 +it 09_hydro_pump 1 18 2030 0.0 0.0 +it 01_solar 1 19 2030 1.0 0.0 +it 02_wind_on 1 19 2030 0.0 0.0 +it 03_wind_off 1 19 2030 0.0 0.0 +it 04_res 1 19 2030 0.0 0.0 +it 05_nuclear 1 19 2030 0.0 0.0 +it 06_coal 1 19 2030 0.0 0.0 +it 07_gas 1 19 2030 0.0 0.0 +it 08_non-res 1 19 2030 0.0 0.0 +it 09_hydro_pump 1 19 2030 0.0 0.0 +it 01_solar 1 20 2030 1.0 0.0 +it 02_wind_on 1 20 2030 0.0 0.0 +it 03_wind_off 1 20 2030 0.0 0.0 +it 04_res 1 20 2030 0.0 0.0 +it 05_nuclear 1 20 2030 0.0 0.0 +it 06_coal 1 20 2030 0.0 0.0 +it 07_gas 1 20 2030 0.0 0.0 +it 08_non-res 1 20 2030 0.0 0.0 +it 09_hydro_pump 1 20 2030 0.0 0.0 +it 01_solar 1 21 2030 1.0 0.0 +it 02_wind_on 1 21 2030 0.0 0.0 +it 03_wind_off 1 21 2030 0.0 0.0 +it 04_res 1 21 2030 0.0 0.0 +it 05_nuclear 1 21 2030 0.0 0.0 +it 06_coal 1 21 2030 0.0 0.0 +it 07_gas 1 21 2030 0.0 0.0 +it 08_non-res 1 21 2030 0.0 0.0 +it 09_hydro_pump 1 21 2030 0.0 0.0 +it 01_solar 1 22 2030 1.0 0.0 +it 02_wind_on 1 22 2030 1.0 0.0 +it 03_wind_off 1 22 2030 0.0 0.0 +it 04_res 1 22 2030 0.0 0.0 +it 05_nuclear 1 22 2030 0.0 0.0 +it 06_coal 1 22 2030 0.0 0.0 +it 07_gas 1 22 2030 0.0 0.0 +it 08_non-res 1 22 2030 0.0 0.0 +it 09_hydro_pump 1 22 2030 0.0 0.0 +it 01_solar 1 23 2030 1.0 0.0 +it 02_wind_on 1 23 2030 1.0 0.0 +it 03_wind_off 1 23 2030 0.0 0.0 +it 04_res 1 23 2030 0.0 0.0 +it 05_nuclear 1 23 2030 0.0 0.0 +it 06_coal 1 23 2030 0.0 0.0 +it 07_gas 1 23 2030 0.0 0.0 +it 08_non-res 1 23 2030 0.0 0.0 +it 09_hydro_pump 1 23 2030 0.0 0.0 +it 01_solar 1 24 2030 1.0 0.0 +it 02_wind_on 1 24 2030 1.0 0.0 +it 03_wind_off 1 24 2030 0.0 0.0 +it 04_res 1 24 2030 0.0 0.0 +it 05_nuclear 1 24 2030 0.0 0.0 +it 06_coal 1 24 2030 0.0 0.0 +it 07_gas 1 24 2030 0.0 0.0 +it 08_non-res 1 24 2030 0.0 0.0 +it 09_hydro_pump 1 24 2030 0.0 0.0 +it 01_solar 1 25 2030 1.0 0.0 +it 02_wind_on 1 25 2030 1.0 0.0 +it 03_wind_off 1 25 2030 0.0 0.0 +it 04_res 1 25 2030 0.0 0.0 +it 05_nuclear 1 25 2030 0.0 0.0 +it 06_coal 1 25 2030 0.0 0.0 +it 07_gas 1 25 2030 0.0 0.0 +it 08_non-res 1 25 2030 0.0 0.0 +it 09_hydro_pump 1 25 2030 0.0 0.0 +it 01_solar 1 26 2030 1.0 0.0 +it 02_wind_on 1 26 2030 1.0 0.0 +it 03_wind_off 1 26 2030 0.0 0.0 +it 04_res 1 26 2030 0.0 0.0 +it 05_nuclear 1 26 2030 0.0 0.0 +it 06_coal 1 26 2030 0.0 0.0 +it 07_gas 1 26 2030 0.0 0.0 +it 08_non-res 1 26 2030 0.0 0.0 +it 09_hydro_pump 1 26 2030 0.0 0.0 +it 01_solar 1 27 2030 1.0 0.0 +it 02_wind_on 1 27 2030 1.0 0.0 +it 03_wind_off 1 27 2030 0.0 0.0 +it 04_res 1 27 2030 0.0 0.0 +it 05_nuclear 1 27 2030 0.0 0.0 +it 06_coal 1 27 2030 0.0 0.0 +it 07_gas 1 27 2030 0.0 0.0 +it 08_non-res 1 27 2030 0.0 0.0 +it 09_hydro_pump 1 27 2030 0.0 0.0 +it 01_solar 1 28 2030 1.0 0.0 +it 02_wind_on 1 28 2030 1.0 0.0 +it 03_wind_off 1 28 2030 0.0 0.0 +it 04_res 1 28 2030 0.0 0.0 +it 05_nuclear 1 28 2030 0.0 0.0 +it 06_coal 1 28 2030 0.0 0.0 +it 07_gas 1 28 2030 0.0 0.0 +it 08_non-res 1 28 2030 0.0 0.0 +it 09_hydro_pump 1 28 2030 0.0 0.0 +it 01_solar 1 29 2030 1.0 0.0 +it 02_wind_on 1 29 2030 1.0 0.0 +it 03_wind_off 1 29 2030 0.0 0.0 +it 04_res 1 29 2030 0.0 0.0 +it 05_nuclear 1 29 2030 0.0 0.0 +it 06_coal 1 29 2030 0.0 0.0 +it 07_gas 1 29 2030 0.0 0.0 +it 08_non-res 1 29 2030 0.0 0.0 +it 09_hydro_pump 1 29 2030 0.0 0.0 +it 01_solar 1 30 2030 1.0 0.0 +it 02_wind_on 1 30 2030 1.0 0.0 +it 03_wind_off 1 30 2030 0.0 0.0 +it 04_res 1 30 2030 0.0 0.0 +it 05_nuclear 1 30 2030 0.0 0.0 +it 06_coal 1 30 2030 0.0 0.0 +it 07_gas 1 30 2030 0.0 0.0 +it 08_non-res 1 30 2030 0.0 0.0 +it 09_hydro_pump 1 30 2030 0.0 0.0 +it 01_solar 1 31 2030 1.0 0.0 +it 02_wind_on 1 31 2030 1.0 0.0 +it 03_wind_off 1 31 2030 0.0 0.0 +it 04_res 1 31 2030 0.0 0.0 +it 05_nuclear 1 31 2030 0.0 0.0 +it 06_coal 1 31 2030 0.0 0.0 +it 07_gas 1 31 2030 0.0 0.0 +it 08_non-res 1 31 2030 0.0 0.0 +it 09_hydro_pump 1 31 2030 0.0 0.0 +it 01_solar 1 32 2030 1.0 0.0 +it 02_wind_on 1 32 2030 1.0 0.0 +it 03_wind_off 1 32 2030 0.0 0.0 +it 04_res 1 32 2030 0.0 0.0 +it 05_nuclear 1 32 2030 0.0 0.0 +it 06_coal 1 32 2030 0.0 0.0 +it 07_gas 1 32 2030 0.0 0.0 +it 08_non-res 1 32 2030 0.0 0.0 +it 09_hydro_pump 1 32 2030 0.0 0.0 +it 01_solar 1 33 2030 1.0 0.0 +it 02_wind_on 1 33 2030 1.0 0.0 +it 03_wind_off 1 33 2030 0.0 0.0 +it 04_res 1 33 2030 0.0 0.0 +it 05_nuclear 1 33 2030 0.0 0.0 +it 06_coal 1 33 2030 0.0 0.0 +it 07_gas 1 33 2030 0.0 0.0 +it 08_non-res 1 33 2030 0.0 0.0 +it 09_hydro_pump 1 33 2030 0.0 0.0 +it 01_solar 1 34 2030 1.0 0.0 +it 02_wind_on 1 34 2030 1.0 0.0 +it 03_wind_off 1 34 2030 0.0 0.0 +it 04_res 1 34 2030 0.0 0.0 +it 05_nuclear 1 34 2030 0.0 0.0 +it 06_coal 1 34 2030 0.0 0.0 +it 07_gas 1 34 2030 0.0 0.0 +it 08_non-res 1 34 2030 0.0 0.0 +it 09_hydro_pump 1 34 2030 0.0 0.0 +it 01_solar 1 35 2030 1.0 0.0 +it 02_wind_on 1 35 2030 1.0 0.0 +it 03_wind_off 1 35 2030 0.0 0.0 +it 04_res 1 35 2030 0.0 0.0 +it 05_nuclear 1 35 2030 0.0 0.0 +it 06_coal 1 35 2030 0.0 0.0 +it 07_gas 1 35 2030 0.0 0.0 +it 08_non-res 1 35 2030 0.0 0.0 +it 09_hydro_pump 1 35 2030 0.0 0.0 +it 01_solar 1 36 2030 1.0 0.0 +it 02_wind_on 1 36 2030 1.0 0.0 +it 03_wind_off 1 36 2030 0.0 0.0 +it 04_res 1 36 2030 0.0 0.0 +it 05_nuclear 1 36 2030 0.0 0.0 +it 06_coal 1 36 2030 0.0 0.0 +it 07_gas 1 36 2030 0.0 0.0 +it 08_non-res 1 36 2030 0.0 0.0 +it 09_hydro_pump 1 36 2030 0.0 0.0 +it 01_solar 1 37 2030 1.0 0.0 +it 02_wind_on 1 37 2030 1.0 0.0 +it 03_wind_off 1 37 2030 0.0 0.0 +it 04_res 1 37 2030 0.0 0.0 +it 05_nuclear 1 37 2030 0.0 0.0 +it 06_coal 1 37 2030 0.0 0.0 +it 07_gas 1 37 2030 0.0 0.0 +it 08_non-res 1 37 2030 0.0 0.0 +it 09_hydro_pump 1 37 2030 0.0 0.0 +it 01_solar 1 38 2030 1.0 0.0 +it 02_wind_on 1 38 2030 1.0 0.0 +it 03_wind_off 1 38 2030 0.0 0.0 +it 04_res 1 38 2030 0.0 0.0 +it 05_nuclear 1 38 2030 0.0 0.0 +it 06_coal 1 38 2030 0.0 0.0 +it 07_gas 1 38 2030 0.0 0.0 +it 08_non-res 1 38 2030 0.0 0.0 +it 09_hydro_pump 1 38 2030 0.0 0.0 +it 01_solar 1 39 2030 1.0 0.0 +it 02_wind_on 1 39 2030 1.0 0.0 +it 03_wind_off 1 39 2030 0.0 0.0 +it 04_res 1 39 2030 0.0 0.0 +it 05_nuclear 1 39 2030 0.0 0.0 +it 06_coal 1 39 2030 0.0 0.0 +it 07_gas 1 39 2030 0.0 0.0 +it 08_non-res 1 39 2030 0.0 0.0 +it 09_hydro_pump 1 39 2030 0.0 0.0 +it 01_solar 1 40 2030 1.0 0.0 +it 02_wind_on 1 40 2030 1.0 0.0 +it 03_wind_off 1 40 2030 0.0 0.0 +it 04_res 1 40 2030 0.0 0.0 +it 05_nuclear 1 40 2030 0.0 0.0 +it 06_coal 1 40 2030 0.0 0.0 +it 07_gas 1 40 2030 0.0 0.0 +it 08_non-res 1 40 2030 0.0 0.0 +it 09_hydro_pump 1 40 2030 0.0 0.0 +it 01_solar 1 41 2030 1.0 0.0 +it 02_wind_on 1 41 2030 1.0 0.0 +it 03_wind_off 1 41 2030 0.0 0.0 +it 04_res 1 41 2030 0.0 0.0 +it 05_nuclear 1 41 2030 0.0 0.0 +it 06_coal 1 41 2030 0.0 0.0 +it 07_gas 1 41 2030 0.0 0.0 +it 08_non-res 1 41 2030 0.0 0.0 +it 09_hydro_pump 1 41 2030 0.0 0.0 +it 01_solar 1 42 2030 1.0 0.0 +it 02_wind_on 1 42 2030 1.0 0.0 +it 03_wind_off 1 42 2030 1.0 0.0 +it 04_res 1 42 2030 0.0 0.0 +it 05_nuclear 1 42 2030 0.0 0.0 +it 06_coal 1 42 2030 0.0 0.0 +it 07_gas 1 42 2030 0.0 0.0 +it 08_non-res 1 42 2030 0.0 0.0 +it 09_hydro_pump 1 42 2030 0.0 0.0 +it 01_solar 1 43 2030 1.0 0.0 +it 02_wind_on 1 43 2030 1.0 0.0 +it 03_wind_off 1 43 2030 1.0 0.0 +it 04_res 1 43 2030 0.0 0.0 +it 05_nuclear 1 43 2030 0.0 0.0 +it 06_coal 1 43 2030 0.0 0.0 +it 07_gas 1 43 2030 0.0 0.0 +it 08_non-res 1 43 2030 0.0 0.0 +it 09_hydro_pump 1 43 2030 0.0 0.0 +it 01_solar 1 44 2030 1.0 0.0 +it 02_wind_on 1 44 2030 1.0 0.0 +it 03_wind_off 1 44 2030 1.0 0.0 +it 04_res 1 44 2030 0.0 0.0 +it 05_nuclear 1 44 2030 0.0 0.0 +it 06_coal 1 44 2030 0.0 0.0 +it 07_gas 1 44 2030 0.0 0.0 +it 08_non-res 1 44 2030 0.0 0.0 +it 09_hydro_pump 1 44 2030 0.0 0.0 +it 01_solar 1 45 2030 1.0 0.0 +it 02_wind_on 1 45 2030 1.0 0.0 +it 03_wind_off 1 45 2030 1.0 0.0 +it 04_res 1 45 2030 0.0 0.0 +it 05_nuclear 1 45 2030 0.0 0.0 +it 06_coal 1 45 2030 0.0 0.0 +it 07_gas 1 45 2030 0.0 0.0 +it 08_non-res 1 45 2030 0.0 0.0 +it 09_hydro_pump 1 45 2030 0.0 0.0 +it 01_solar 1 46 2030 1.0 0.0 +it 02_wind_on 1 46 2030 1.0 0.0 +it 03_wind_off 1 46 2030 1.0 0.0 +it 04_res 1 46 2030 0.0 0.0 +it 05_nuclear 1 46 2030 0.0 0.0 +it 06_coal 1 46 2030 0.0 0.0 +it 07_gas 1 46 2030 0.0 0.0 +it 08_non-res 1 46 2030 0.0 0.0 +it 09_hydro_pump 1 46 2030 0.0 0.0 +it 01_solar 1 47 2030 1.0 0.0 +it 02_wind_on 1 47 2030 1.0 0.0 +it 03_wind_off 1 47 2030 1.0 0.0 +it 04_res 1 47 2030 0.0 0.0 +it 05_nuclear 1 47 2030 0.0 0.0 +it 06_coal 1 47 2030 0.0 0.0 +it 07_gas 1 47 2030 0.0 0.0 +it 08_non-res 1 47 2030 0.0 0.0 +it 09_hydro_pump 1 47 2030 0.0 0.0 +it 01_solar 1 48 2030 1.0 0.0 +it 02_wind_on 1 48 2030 1.0 0.0 +it 03_wind_off 1 48 2030 1.0 0.0 +it 04_res 1 48 2030 0.0 0.0 +it 05_nuclear 1 48 2030 0.0 0.0 +it 06_coal 1 48 2030 0.0 0.0 +it 07_gas 1 48 2030 0.0 0.0 +it 08_non-res 1 48 2030 0.0 0.0 +it 09_hydro_pump 1 48 2030 0.0 0.0 +it 01_solar 1 49 2030 1.0 0.0 +it 02_wind_on 1 49 2030 1.0 0.0 +it 03_wind_off 1 49 2030 1.0 0.0 +it 04_res 1 49 2030 0.0 0.0 +it 05_nuclear 1 49 2030 0.0 0.0 +it 06_coal 1 49 2030 0.0 0.0 +it 07_gas 1 49 2030 0.0 0.0 +it 08_non-res 1 49 2030 0.0 0.0 +it 09_hydro_pump 1 49 2030 0.0 0.0 +it 01_solar 1 50 2030 1.0 0.0 +it 02_wind_on 1 50 2030 1.0 0.0 +it 03_wind_off 1 50 2030 1.0 0.0 +it 04_res 1 50 2030 0.0 0.0 +it 05_nuclear 1 50 2030 0.0 0.0 +it 06_coal 1 50 2030 0.0 0.0 +it 07_gas 1 50 2030 0.0 0.0 +it 08_non-res 1 50 2030 0.0 0.0 +it 09_hydro_pump 1 50 2030 0.0 0.0 +it 01_solar 1 51 2030 1.0 0.0 +it 02_wind_on 1 51 2030 1.0 0.0 +it 03_wind_off 1 51 2030 1.0 0.0 +it 04_res 1 51 2030 0.0 0.0 +it 05_nuclear 1 51 2030 0.0 0.0 +it 06_coal 1 51 2030 0.0 0.0 +it 07_gas 1 51 2030 0.0 0.0 +it 08_non-res 1 51 2030 0.0 0.0 +it 09_hydro_pump 1 51 2030 0.0 0.0 +it 01_solar 1 52 2030 1.0 0.0 +it 02_wind_on 1 52 2030 1.0 0.0 +it 03_wind_off 1 52 2030 1.0 0.0 +it 04_res 1 52 2030 0.0 0.0 +it 05_nuclear 1 52 2030 0.0 0.0 +it 06_coal 1 52 2030 0.0 0.0 +it 07_gas 1 52 2030 0.0 0.0 +it 08_non-res 1 52 2030 0.0 0.0 +it 09_hydro_pump 1 52 2030 0.0 0.0 +it 01_solar 1 53 2030 1.0 0.0 +it 02_wind_on 1 53 2030 1.0 0.0 +it 03_wind_off 1 53 2030 1.0 0.0 +it 04_res 1 53 2030 0.0 0.0 +it 05_nuclear 1 53 2030 0.0 0.0 +it 06_coal 1 53 2030 0.0 0.0 +it 07_gas 1 53 2030 0.0 0.0 +it 08_non-res 1 53 2030 0.0 0.0 +it 09_hydro_pump 1 53 2030 0.0 0.0 +it 01_solar 1 54 2030 1.0 0.0 +it 02_wind_on 1 54 2030 1.0 0.0 +it 03_wind_off 1 54 2030 1.0 0.0 +it 04_res 1 54 2030 0.0 0.0 +it 05_nuclear 1 54 2030 0.0 0.0 +it 06_coal 1 54 2030 0.0 0.0 +it 07_gas 1 54 2030 0.0 0.0 +it 08_non-res 1 54 2030 0.0 0.0 +it 09_hydro_pump 1 54 2030 0.0 0.0 +it 01_solar 1 55 2030 1.0 0.0 +it 02_wind_on 1 55 2030 1.0 0.0 +it 03_wind_off 1 55 2030 1.0 0.0 +it 04_res 1 55 2030 0.0 0.0 +it 05_nuclear 1 55 2030 0.0 0.0 +it 06_coal 1 55 2030 0.0 0.0 +it 07_gas 1 55 2030 0.0 0.0 +it 08_non-res 1 55 2030 0.0 0.0 +it 09_hydro_pump 1 55 2030 0.0 0.0 +it 01_solar 1 56 2030 1.0 0.0 +it 02_wind_on 1 56 2030 1.0 0.0 +it 03_wind_off 1 56 2030 1.0 0.0 +it 04_res 1 56 2030 0.0 0.0 +it 05_nuclear 1 56 2030 0.0 0.0 +it 06_coal 1 56 2030 0.0 0.0 +it 07_gas 1 56 2030 0.0 0.0 +it 08_non-res 1 56 2030 0.0 0.0 +it 09_hydro_pump 1 56 2030 0.0 0.0 +it 01_solar 1 57 2030 1.0 0.0 +it 02_wind_on 1 57 2030 1.0 0.0 +it 03_wind_off 1 57 2030 1.0 0.0 +it 04_res 1 57 2030 0.0 0.0 +it 05_nuclear 1 57 2030 0.0 0.0 +it 06_coal 1 57 2030 0.0 0.0 +it 07_gas 1 57 2030 0.0 0.0 +it 08_non-res 1 57 2030 0.0 0.0 +it 09_hydro_pump 1 57 2030 0.0 0.0 +it 01_solar 1 58 2030 1.0 0.0 +it 02_wind_on 1 58 2030 1.0 0.0 +it 03_wind_off 1 58 2030 1.0 0.0 +it 04_res 1 58 2030 0.0 0.0 +it 05_nuclear 1 58 2030 0.0 0.0 +it 06_coal 1 58 2030 0.0 0.0 +it 07_gas 1 58 2030 0.0 0.0 +it 08_non-res 1 58 2030 0.0 0.0 +it 09_hydro_pump 1 58 2030 0.0 0.0 +it 01_solar 1 59 2030 1.0 0.0 +it 02_wind_on 1 59 2030 1.0 0.0 +it 03_wind_off 1 59 2030 1.0 0.0 +it 04_res 1 59 2030 0.0 0.0 +it 05_nuclear 1 59 2030 0.0 0.0 +it 06_coal 1 59 2030 0.0 0.0 +it 07_gas 1 59 2030 0.0 0.0 +it 08_non-res 1 59 2030 0.0 0.0 +it 09_hydro_pump 1 59 2030 0.0 0.0 +it 01_solar 1 60 2030 1.0 0.0 +it 02_wind_on 1 60 2030 1.0 0.0 +it 03_wind_off 1 60 2030 1.0 0.0 +it 04_res 1 60 2030 0.0 0.0 +it 05_nuclear 1 60 2030 0.0 0.0 +it 06_coal 1 60 2030 0.0 0.0 +it 07_gas 1 60 2030 0.0 0.0 +it 08_non-res 1 60 2030 0.0 0.0 +it 09_hydro_pump 1 60 2030 0.0 0.0 +it 01_solar 1 61 2030 1.0 0.0 +it 02_wind_on 1 61 2030 1.0 0.0 +it 03_wind_off 1 61 2030 1.0 0.0 +it 04_res 1 61 2030 0.0 0.0 +it 05_nuclear 1 61 2030 0.0 0.0 +it 06_coal 1 61 2030 0.0 0.0 +it 07_gas 1 61 2030 0.0 0.0 +it 08_non-res 1 61 2030 0.0 0.0 +it 09_hydro_pump 1 61 2030 0.0 0.0 +it 01_solar 1 62 2030 1.0 0.0 +it 02_wind_on 1 62 2030 1.0 0.0 +it 03_wind_off 1 62 2030 1.0 0.0 +it 04_res 1 62 2030 1.0 0.0 +it 05_nuclear 1 62 2030 0.0 0.0 +it 06_coal 1 62 2030 0.0 0.0 +it 07_gas 1 62 2030 0.0 0.0 +it 08_non-res 1 62 2030 0.0 0.0 +it 09_hydro_pump 1 62 2030 0.0 0.0 +it 01_solar 1 63 2030 1.0 0.0 +it 02_wind_on 1 63 2030 1.0 0.0 +it 03_wind_off 1 63 2030 1.0 0.0 +it 04_res 1 63 2030 1.0 0.0 +it 05_nuclear 1 63 2030 0.0 0.0 +it 06_coal 1 63 2030 0.0 0.0 +it 07_gas 1 63 2030 0.0 0.0 +it 08_non-res 1 63 2030 0.0 0.0 +it 09_hydro_pump 1 63 2030 0.0 0.0 +it 01_solar 1 64 2030 1.0 0.0 +it 02_wind_on 1 64 2030 1.0 0.0 +it 03_wind_off 1 64 2030 1.0 0.0 +it 04_res 1 64 2030 1.0 0.0 +it 05_nuclear 1 64 2030 0.0 0.0 +it 06_coal 1 64 2030 0.0 0.0 +it 07_gas 1 64 2030 0.0 0.0 +it 08_non-res 1 64 2030 0.0 0.0 +it 09_hydro_pump 1 64 2030 0.0 0.0 +it 01_solar 1 65 2030 1.0 0.0 +it 02_wind_on 1 65 2030 1.0 0.0 +it 03_wind_off 1 65 2030 1.0 0.0 +it 04_res 1 65 2030 1.0 0.0 +it 05_nuclear 1 65 2030 0.0 0.0 +it 06_coal 1 65 2030 0.0 0.0 +it 07_gas 1 65 2030 0.0 0.0 +it 08_non-res 1 65 2030 0.0 0.0 +it 09_hydro_pump 1 65 2030 0.0 0.0 +it 01_solar 1 66 2030 1.0 0.0 +it 02_wind_on 1 66 2030 1.0 0.0 +it 03_wind_off 1 66 2030 1.0 0.0 +it 04_res 1 66 2030 1.0 0.0 +it 05_nuclear 1 66 2030 0.0 0.0 +it 06_coal 1 66 2030 0.0 0.0 +it 07_gas 1 66 2030 0.0 0.0 +it 08_non-res 1 66 2030 0.0 0.0 +it 09_hydro_pump 1 66 2030 0.0 0.0 +it 01_solar 1 67 2030 1.0 0.0 +it 02_wind_on 1 67 2030 1.0 0.0 +it 03_wind_off 1 67 2030 1.0 0.0 +it 04_res 1 67 2030 1.0 0.0 +it 05_nuclear 1 67 2030 0.0 0.0 +it 06_coal 1 67 2030 0.0 0.0 +it 07_gas 1 67 2030 0.0 0.0 +it 08_non-res 1 67 2030 0.0 0.0 +it 09_hydro_pump 1 67 2030 0.0 0.0 +it 01_solar 1 68 2030 1.0 0.0 +it 02_wind_on 1 68 2030 1.0 0.0 +it 03_wind_off 1 68 2030 1.0 0.0 +it 04_res 1 68 2030 1.0 0.0 +it 05_nuclear 1 68 2030 0.0 0.0 +it 06_coal 1 68 2030 0.0 0.0 +it 07_gas 1 68 2030 0.0 0.0 +it 08_non-res 1 68 2030 0.0 0.0 +it 09_hydro_pump 1 68 2030 0.0 0.0 +it 01_solar 1 69 2030 1.0 0.0 +it 02_wind_on 1 69 2030 1.0 0.0 +it 03_wind_off 1 69 2030 1.0 0.0 +it 04_res 1 69 2030 1.0 0.0 +it 05_nuclear 1 69 2030 0.0 0.0 +it 06_coal 1 69 2030 0.0 0.0 +it 07_gas 1 69 2030 0.0 0.0 +it 08_non-res 1 69 2030 0.0 0.0 +it 09_hydro_pump 1 69 2030 0.0 0.0 +it 01_solar 1 70 2030 1.0 0.0 +it 02_wind_on 1 70 2030 1.0 0.0 +it 03_wind_off 1 70 2030 1.0 0.0 +it 04_res 1 70 2030 1.0 0.0 +it 05_nuclear 1 70 2030 0.0 0.0 +it 06_coal 1 70 2030 0.0 0.0 +it 07_gas 1 70 2030 0.0 0.0 +it 08_non-res 1 70 2030 0.0 0.0 +it 09_hydro_pump 1 70 2030 0.0 0.0 +it 01_solar 1 71 2030 1.0 0.0 +it 02_wind_on 1 71 2030 1.0 0.0 +it 03_wind_off 1 71 2030 1.0 0.0 +it 04_res 1 71 2030 1.0 0.0 +it 05_nuclear 1 71 2030 0.0 0.0 +it 06_coal 1 71 2030 0.0 0.0 +it 07_gas 1 71 2030 0.0 0.0 +it 08_non-res 1 71 2030 0.0 0.0 +it 09_hydro_pump 1 71 2030 0.0 0.0 +it 01_solar 1 72 2030 1.0 0.0 +it 02_wind_on 1 72 2030 1.0 0.0 +it 03_wind_off 1 72 2030 1.0 0.0 +it 04_res 1 72 2030 1.0 0.0 +it 05_nuclear 1 72 2030 0.0 0.0 +it 06_coal 1 72 2030 0.0 0.0 +it 07_gas 1 72 2030 0.0 0.0 +it 08_non-res 1 72 2030 0.0 0.0 +it 09_hydro_pump 1 72 2030 0.0 0.0 +it 01_solar 1 73 2030 1.0 0.0 +it 02_wind_on 1 73 2030 1.0 0.0 +it 03_wind_off 1 73 2030 1.0 0.0 +it 04_res 1 73 2030 1.0 0.0 +it 05_nuclear 1 73 2030 0.0 0.0 +it 06_coal 1 73 2030 0.0 0.0 +it 07_gas 1 73 2030 0.0 0.0 +it 08_non-res 1 73 2030 0.0 0.0 +it 09_hydro_pump 1 73 2030 0.0 0.0 +it 01_solar 1 74 2030 1.0 0.0 +it 02_wind_on 1 74 2030 1.0 0.0 +it 03_wind_off 1 74 2030 1.0 0.0 +it 04_res 1 74 2030 1.0 0.0 +it 05_nuclear 1 74 2030 0.0 0.0 +it 06_coal 1 74 2030 0.0 0.0 +it 07_gas 1 74 2030 0.0 0.0 +it 08_non-res 1 74 2030 0.0 0.0 +it 09_hydro_pump 1 74 2030 0.0 0.0 +it 01_solar 1 75 2030 1.0 0.0 +it 02_wind_on 1 75 2030 1.0 0.0 +it 03_wind_off 1 75 2030 1.0 0.0 +it 04_res 1 75 2030 1.0 0.0 +it 05_nuclear 1 75 2030 0.0 0.0 +it 06_coal 1 75 2030 0.0 0.0 +it 07_gas 1 75 2030 0.0 0.0 +it 08_non-res 1 75 2030 0.0 0.0 +it 09_hydro_pump 1 75 2030 0.0 0.0 +it 01_solar 1 76 2030 1.0 0.0 +it 02_wind_on 1 76 2030 1.0 0.0 +it 03_wind_off 1 76 2030 1.0 0.0 +it 04_res 1 76 2030 1.0 0.0 +it 05_nuclear 1 76 2030 0.0 0.0 +it 06_coal 1 76 2030 0.0 0.0 +it 07_gas 1 76 2030 0.0 0.0 +it 08_non-res 1 76 2030 0.0 0.0 +it 09_hydro_pump 1 76 2030 0.0 0.0 +it 01_solar 1 77 2030 1.0 0.0 +it 02_wind_on 1 77 2030 1.0 0.0 +it 03_wind_off 1 77 2030 1.0 0.0 +it 04_res 1 77 2030 1.0 0.0 +it 05_nuclear 1 77 2030 0.0 0.0 +it 06_coal 1 77 2030 0.0 0.0 +it 07_gas 1 77 2030 0.0 0.0 +it 08_non-res 1 77 2030 0.0 0.0 +it 09_hydro_pump 1 77 2030 0.0 0.0 +it 01_solar 1 78 2030 1.0 0.0 +it 02_wind_on 1 78 2030 1.0 0.0 +it 03_wind_off 1 78 2030 1.0 0.0 +it 04_res 1 78 2030 1.0 0.0 +it 05_nuclear 1 78 2030 0.0 0.0 +it 06_coal 1 78 2030 0.0 0.0 +it 07_gas 1 78 2030 0.0 0.0 +it 08_non-res 1 78 2030 0.0 0.0 +it 09_hydro_pump 1 78 2030 0.0 0.0 +it 01_solar 1 79 2030 1.0 0.0 +it 02_wind_on 1 79 2030 1.0 0.0 +it 03_wind_off 1 79 2030 1.0 0.0 +it 04_res 1 79 2030 1.0 0.0 +it 05_nuclear 1 79 2030 0.0 0.0 +it 06_coal 1 79 2030 0.0 0.0 +it 07_gas 1 79 2030 0.0 0.0 +it 08_non-res 1 79 2030 0.0 0.0 +it 09_hydro_pump 1 79 2030 0.0 0.0 +it 01_solar 1 80 2030 1.0 0.0 +it 02_wind_on 1 80 2030 1.0 0.0 +it 03_wind_off 1 80 2030 1.0 0.0 +it 04_res 1 80 2030 1.0 0.0 +it 05_nuclear 1 80 2030 0.0 0.0 +it 06_coal 1 80 2030 0.0 0.0 +it 07_gas 1 80 2030 0.0 0.0 +it 08_non-res 1 80 2030 0.0 0.0 +it 09_hydro_pump 1 80 2030 0.0 0.0 +it 01_solar 1 81 2030 1.0 0.0 +it 02_wind_on 1 81 2030 1.0 0.0 +it 03_wind_off 1 81 2030 1.0 0.0 +it 04_res 1 81 2030 1.0 0.0 +it 05_nuclear 1 81 2030 0.0 0.0 +it 06_coal 1 81 2030 0.0 0.0 +it 07_gas 1 81 2030 0.0 0.0 +it 08_non-res 1 81 2030 0.0 0.0 +it 09_hydro_pump 1 81 2030 0.0 0.0 +it 01_solar 1 82 2030 1.0 0.0 +it 02_wind_on 1 82 2030 1.0 0.0 +it 03_wind_off 1 82 2030 1.0 0.0 +it 04_res 1 82 2030 1.0 0.0 +it 05_nuclear 1 82 2030 1.0 0.0 +it 06_coal 1 82 2030 0.0 0.0 +it 07_gas 1 82 2030 0.0 0.0 +it 08_non-res 1 82 2030 0.0 0.0 +it 09_hydro_pump 1 82 2030 0.0 0.0 +it 01_solar 1 83 2030 1.0 0.0 +it 02_wind_on 1 83 2030 1.0 0.0 +it 03_wind_off 1 83 2030 1.0 0.0 +it 04_res 1 83 2030 1.0 0.0 +it 05_nuclear 1 83 2030 1.0 0.0 +it 06_coal 1 83 2030 0.0 0.0 +it 07_gas 1 83 2030 0.0 0.0 +it 08_non-res 1 83 2030 0.0 0.0 +it 09_hydro_pump 1 83 2030 0.0 0.0 +it 01_solar 1 84 2030 1.0 0.0 +it 02_wind_on 1 84 2030 1.0 0.0 +it 03_wind_off 1 84 2030 1.0 0.0 +it 04_res 1 84 2030 1.0 0.0 +it 05_nuclear 1 84 2030 1.0 0.0 +it 06_coal 1 84 2030 0.0 0.0 +it 07_gas 1 84 2030 0.0 0.0 +it 08_non-res 1 84 2030 0.0 0.0 +it 09_hydro_pump 1 84 2030 0.0 0.0 +it 01_solar 1 85 2030 1.0 0.0 +it 02_wind_on 1 85 2030 1.0 0.0 +it 03_wind_off 1 85 2030 1.0 0.0 +it 04_res 1 85 2030 1.0 0.0 +it 05_nuclear 1 85 2030 1.0 0.0 +it 06_coal 1 85 2030 0.0 0.0 +it 07_gas 1 85 2030 0.0 0.0 +it 08_non-res 1 85 2030 0.0 0.0 +it 09_hydro_pump 1 85 2030 0.0 0.0 +it 01_solar 1 86 2030 1.0 0.0 +it 02_wind_on 1 86 2030 1.0 0.0 +it 03_wind_off 1 86 2030 1.0 0.0 +it 04_res 1 86 2030 1.0 0.0 +it 05_nuclear 1 86 2030 1.0 0.0 +it 06_coal 1 86 2030 0.0 0.0 +it 07_gas 1 86 2030 0.0 0.0 +it 08_non-res 1 86 2030 0.0 0.0 +it 09_hydro_pump 1 86 2030 0.0 0.0 +it 01_solar 1 87 2030 1.0 0.0 +it 02_wind_on 1 87 2030 1.0 0.0 +it 03_wind_off 1 87 2030 1.0 0.0 +it 04_res 1 87 2030 1.0 0.0 +it 05_nuclear 1 87 2030 1.0 0.0 +it 06_coal 1 87 2030 0.0 0.0 +it 07_gas 1 87 2030 0.0 0.0 +it 08_non-res 1 87 2030 0.0 0.0 +it 09_hydro_pump 1 87 2030 0.0 0.0 +it 01_solar 1 88 2030 1.0 0.0 +it 02_wind_on 1 88 2030 1.0 0.0 +it 03_wind_off 1 88 2030 1.0 0.0 +it 04_res 1 88 2030 1.0 0.0 +it 05_nuclear 1 88 2030 1.0 0.0 +it 06_coal 1 88 2030 0.0 0.0 +it 07_gas 1 88 2030 0.0 0.0 +it 08_non-res 1 88 2030 0.0 0.0 +it 09_hydro_pump 1 88 2030 0.0 0.0 +it 01_solar 1 89 2030 1.0 0.0 +it 02_wind_on 1 89 2030 1.0 0.0 +it 03_wind_off 1 89 2030 1.0 0.0 +it 04_res 1 89 2030 1.0 0.0 +it 05_nuclear 1 89 2030 1.0 0.0 +it 06_coal 1 89 2030 0.0 0.0 +it 07_gas 1 89 2030 0.0 0.0 +it 08_non-res 1 89 2030 0.0 0.0 +it 09_hydro_pump 1 89 2030 0.0 0.0 +it 01_solar 1 90 2030 1.0 0.0 +it 02_wind_on 1 90 2030 1.0 0.0 +it 03_wind_off 1 90 2030 1.0 0.0 +it 04_res 1 90 2030 1.0 0.0 +it 05_nuclear 1 90 2030 1.0 0.0 +it 06_coal 1 90 2030 0.0 0.0 +it 07_gas 1 90 2030 0.0 0.0 +it 08_non-res 1 90 2030 0.0 0.0 +it 09_hydro_pump 1 90 2030 0.0 0.0 +it 01_solar 1 91 2030 1.0 0.0 +it 02_wind_on 1 91 2030 1.0 0.0 +it 03_wind_off 1 91 2030 1.0 0.0 +it 04_res 1 91 2030 1.0 0.0 +it 05_nuclear 1 91 2030 1.0 0.0 +it 06_coal 1 91 2030 0.0 0.0 +it 07_gas 1 91 2030 0.0 0.0 +it 08_non-res 1 91 2030 0.0 0.0 +it 09_hydro_pump 1 91 2030 0.0 0.0 +it 01_solar 1 92 2030 1.0 0.0 +it 02_wind_on 1 92 2030 1.0 0.0 +it 03_wind_off 1 92 2030 1.0 0.0 +it 04_res 1 92 2030 1.0 0.0 +it 05_nuclear 1 92 2030 1.0 0.0 +it 06_coal 1 92 2030 0.0 0.0 +it 07_gas 1 92 2030 0.0 0.0 +it 08_non-res 1 92 2030 0.0 0.0 +it 09_hydro_pump 1 92 2030 0.0 0.0 +it 01_solar 1 93 2030 1.0 0.0 +it 02_wind_on 1 93 2030 1.0 0.0 +it 03_wind_off 1 93 2030 1.0 0.0 +it 04_res 1 93 2030 1.0 0.0 +it 05_nuclear 1 93 2030 1.0 0.0 +it 06_coal 1 93 2030 0.0 0.0 +it 07_gas 1 93 2030 0.0 0.0 +it 08_non-res 1 93 2030 0.0 0.0 +it 09_hydro_pump 1 93 2030 0.0 0.0 +it 01_solar 1 94 2030 1.0 0.0 +it 02_wind_on 1 94 2030 1.0 0.0 +it 03_wind_off 1 94 2030 1.0 0.0 +it 04_res 1 94 2030 1.0 0.0 +it 05_nuclear 1 94 2030 1.0 0.0 +it 06_coal 1 94 2030 0.0 0.0 +it 07_gas 1 94 2030 0.0 0.0 +it 08_non-res 1 94 2030 0.0 0.0 +it 09_hydro_pump 1 94 2030 0.0 0.0 +it 01_solar 1 95 2030 1.0 0.0 +it 02_wind_on 1 95 2030 1.0 0.0 +it 03_wind_off 1 95 2030 1.0 0.0 +it 04_res 1 95 2030 1.0 0.0 +it 05_nuclear 1 95 2030 1.0 0.0 +it 06_coal 1 95 2030 0.0 0.0 +it 07_gas 1 95 2030 0.0 0.0 +it 08_non-res 1 95 2030 0.0 0.0 +it 09_hydro_pump 1 95 2030 0.0 0.0 +it 01_solar 1 96 2030 1.0 0.0 +it 02_wind_on 1 96 2030 1.0 0.0 +it 03_wind_off 1 96 2030 1.0 0.0 +it 04_res 1 96 2030 1.0 0.0 +it 05_nuclear 1 96 2030 1.0 0.0 +it 06_coal 1 96 2030 0.0 0.0 +it 07_gas 1 96 2030 0.0 0.0 +it 08_non-res 1 96 2030 0.0 0.0 +it 09_hydro_pump 1 96 2030 0.0 0.0 +it 01_solar 1 97 2030 1.0 0.0 +it 02_wind_on 1 97 2030 1.0 0.0 +it 03_wind_off 1 97 2030 1.0 0.0 +it 04_res 1 97 2030 1.0 0.0 +it 05_nuclear 1 97 2030 1.0 0.0 +it 06_coal 1 97 2030 0.0 0.0 +it 07_gas 1 97 2030 0.0 0.0 +it 08_non-res 1 97 2030 0.0 0.0 +it 09_hydro_pump 1 97 2030 0.0 0.0 +it 01_solar 1 98 2030 1.0 0.0 +it 02_wind_on 1 98 2030 1.0 0.0 +it 03_wind_off 1 98 2030 1.0 0.0 +it 04_res 1 98 2030 1.0 0.0 +it 05_nuclear 1 98 2030 1.0 0.0 +it 06_coal 1 98 2030 0.0 0.0 +it 07_gas 1 98 2030 0.0 0.0 +it 08_non-res 1 98 2030 0.0 0.0 +it 09_hydro_pump 1 98 2030 0.0 0.0 +it 01_solar 1 99 2030 1.0 0.0 +it 02_wind_on 1 99 2030 1.0 0.0 +it 03_wind_off 1 99 2030 1.0 0.0 +it 04_res 1 99 2030 1.0 0.0 +it 05_nuclear 1 99 2030 1.0 0.0 +it 06_coal 1 99 2030 0.0 0.0 +it 07_gas 1 99 2030 0.0 0.0 +it 08_non-res 1 99 2030 0.0 0.0 +it 09_hydro_pump 1 99 2030 0.0 0.0 +it 01_solar 1 100 2030 1.0 0.0 +it 02_wind_on 1 100 2030 1.0 0.0 +it 03_wind_off 1 100 2030 1.0 0.0 +it 04_res 1 100 2030 1.0 0.0 +it 05_nuclear 1 100 2030 1.0 0.0 +it 06_coal 1 100 2030 0.0 0.0 +it 07_gas 1 100 2030 0.0 0.0 +it 08_non-res 1 100 2030 0.0 0.0 +it 09_hydro_pump 1 100 2030 0.0 0.0 +it 01_solar 1 101 2030 1.0 0.0 +it 02_wind_on 1 101 2030 1.0 0.0 +it 03_wind_off 1 101 2030 1.0 0.0 +it 04_res 1 101 2030 1.0 0.0 +it 05_nuclear 1 101 2030 1.0 0.0 +it 06_coal 1 101 2030 0.0 0.0 +it 07_gas 1 101 2030 0.0 0.0 +it 08_non-res 1 101 2030 0.0 0.0 +it 09_hydro_pump 1 101 2030 0.0 0.0 +it 01_solar 1 102 2030 1.0 0.0 +it 02_wind_on 1 102 2030 1.0 0.0 +it 03_wind_off 1 102 2030 1.0 0.0 +it 04_res 1 102 2030 1.0 0.0 +it 05_nuclear 1 102 2030 1.0 0.0 +it 06_coal 1 102 2030 1.0 0.0 +it 07_gas 1 102 2030 0.0 0.0 +it 08_non-res 1 102 2030 0.0 0.0 +it 09_hydro_pump 1 102 2030 0.0 0.0 +it 01_solar 1 103 2030 1.0 0.0 +it 02_wind_on 1 103 2030 1.0 0.0 +it 03_wind_off 1 103 2030 1.0 0.0 +it 04_res 1 103 2030 1.0 0.0 +it 05_nuclear 1 103 2030 1.0 0.0 +it 06_coal 1 103 2030 1.0 0.0 +it 07_gas 1 103 2030 0.0 0.0 +it 08_non-res 1 103 2030 0.0 0.0 +it 09_hydro_pump 1 103 2030 0.0 0.0 +it 01_solar 1 104 2030 1.0 0.0 +it 02_wind_on 1 104 2030 1.0 0.0 +it 03_wind_off 1 104 2030 1.0 0.0 +it 04_res 1 104 2030 1.0 0.0 +it 05_nuclear 1 104 2030 1.0 0.0 +it 06_coal 1 104 2030 1.0 0.0 +it 07_gas 1 104 2030 0.0 0.0 +it 08_non-res 1 104 2030 0.0 0.0 +it 09_hydro_pump 1 104 2030 0.0 0.0 +it 01_solar 1 105 2030 1.0 0.0 +it 02_wind_on 1 105 2030 1.0 0.0 +it 03_wind_off 1 105 2030 1.0 0.0 +it 04_res 1 105 2030 1.0 0.0 +it 05_nuclear 1 105 2030 1.0 0.0 +it 06_coal 1 105 2030 1.0 0.0 +it 07_gas 1 105 2030 0.0 0.0 +it 08_non-res 1 105 2030 0.0 0.0 +it 09_hydro_pump 1 105 2030 0.0 0.0 +it 01_solar 1 106 2030 1.0 0.0 +it 02_wind_on 1 106 2030 1.0 0.0 +it 03_wind_off 1 106 2030 1.0 0.0 +it 04_res 1 106 2030 1.0 0.0 +it 05_nuclear 1 106 2030 1.0 0.0 +it 06_coal 1 106 2030 1.0 0.0 +it 07_gas 1 106 2030 0.0 0.0 +it 08_non-res 1 106 2030 0.0 0.0 +it 09_hydro_pump 1 106 2030 0.0 0.0 +it 01_solar 1 107 2030 1.0 0.0 +it 02_wind_on 1 107 2030 1.0 0.0 +it 03_wind_off 1 107 2030 1.0 0.0 +it 04_res 1 107 2030 1.0 0.0 +it 05_nuclear 1 107 2030 1.0 0.0 +it 06_coal 1 107 2030 1.0 0.0 +it 07_gas 1 107 2030 0.0 0.0 +it 08_non-res 1 107 2030 0.0 0.0 +it 09_hydro_pump 1 107 2030 0.0 0.0 +it 01_solar 1 108 2030 1.0 0.0 +it 02_wind_on 1 108 2030 1.0 0.0 +it 03_wind_off 1 108 2030 1.0 0.0 +it 04_res 1 108 2030 1.0 0.0 +it 05_nuclear 1 108 2030 1.0 0.0 +it 06_coal 1 108 2030 1.0 0.0 +it 07_gas 1 108 2030 0.0 0.0 +it 08_non-res 1 108 2030 0.0 0.0 +it 09_hydro_pump 1 108 2030 0.0 0.0 +it 01_solar 1 109 2030 1.0 0.0 +it 02_wind_on 1 109 2030 1.0 0.0 +it 03_wind_off 1 109 2030 1.0 0.0 +it 04_res 1 109 2030 1.0 0.0 +it 05_nuclear 1 109 2030 1.0 0.0 +it 06_coal 1 109 2030 1.0 0.0 +it 07_gas 1 109 2030 0.0 0.0 +it 08_non-res 1 109 2030 0.0 0.0 +it 09_hydro_pump 1 109 2030 0.0 0.0 +it 01_solar 1 110 2030 1.0 0.0 +it 02_wind_on 1 110 2030 1.0 0.0 +it 03_wind_off 1 110 2030 1.0 0.0 +it 04_res 1 110 2030 1.0 0.0 +it 05_nuclear 1 110 2030 1.0 0.0 +it 06_coal 1 110 2030 1.0 0.0 +it 07_gas 1 110 2030 0.0 0.0 +it 08_non-res 1 110 2030 0.0 0.0 +it 09_hydro_pump 1 110 2030 0.0 0.0 +it 01_solar 1 111 2030 1.0 0.0 +it 02_wind_on 1 111 2030 1.0 0.0 +it 03_wind_off 1 111 2030 1.0 0.0 +it 04_res 1 111 2030 1.0 0.0 +it 05_nuclear 1 111 2030 1.0 0.0 +it 06_coal 1 111 2030 1.0 0.0 +it 07_gas 1 111 2030 0.0 0.0 +it 08_non-res 1 111 2030 0.0 0.0 +it 09_hydro_pump 1 111 2030 0.0 0.0 +it 01_solar 1 112 2030 1.0 0.0 +it 02_wind_on 1 112 2030 1.0 0.0 +it 03_wind_off 1 112 2030 1.0 0.0 +it 04_res 1 112 2030 1.0 0.0 +it 05_nuclear 1 112 2030 1.0 0.0 +it 06_coal 1 112 2030 1.0 0.0 +it 07_gas 1 112 2030 0.0 0.0 +it 08_non-res 1 112 2030 0.0 0.0 +it 09_hydro_pump 1 112 2030 0.0 0.0 +it 01_solar 1 113 2030 1.0 0.0 +it 02_wind_on 1 113 2030 1.0 0.0 +it 03_wind_off 1 113 2030 1.0 0.0 +it 04_res 1 113 2030 1.0 0.0 +it 05_nuclear 1 113 2030 1.0 0.0 +it 06_coal 1 113 2030 1.0 0.0 +it 07_gas 1 113 2030 0.0 0.0 +it 08_non-res 1 113 2030 0.0 0.0 +it 09_hydro_pump 1 113 2030 0.0 0.0 +it 01_solar 1 114 2030 1.0 0.0 +it 02_wind_on 1 114 2030 1.0 0.0 +it 03_wind_off 1 114 2030 1.0 0.0 +it 04_res 1 114 2030 1.0 0.0 +it 05_nuclear 1 114 2030 1.0 0.0 +it 06_coal 1 114 2030 1.0 0.0 +it 07_gas 1 114 2030 0.0 0.0 +it 08_non-res 1 114 2030 0.0 0.0 +it 09_hydro_pump 1 114 2030 0.0 0.0 +it 01_solar 1 115 2030 1.0 0.0 +it 02_wind_on 1 115 2030 1.0 0.0 +it 03_wind_off 1 115 2030 1.0 0.0 +it 04_res 1 115 2030 1.0 0.0 +it 05_nuclear 1 115 2030 1.0 0.0 +it 06_coal 1 115 2030 1.0 0.0 +it 07_gas 1 115 2030 0.0 0.0 +it 08_non-res 1 115 2030 0.0 0.0 +it 09_hydro_pump 1 115 2030 0.0 0.0 +it 01_solar 1 116 2030 1.0 0.0 +it 02_wind_on 1 116 2030 1.0 0.0 +it 03_wind_off 1 116 2030 1.0 0.0 +it 04_res 1 116 2030 1.0 0.0 +it 05_nuclear 1 116 2030 1.0 0.0 +it 06_coal 1 116 2030 1.0 0.0 +it 07_gas 1 116 2030 0.0 0.0 +it 08_non-res 1 116 2030 0.0 0.0 +it 09_hydro_pump 1 116 2030 0.0 0.0 +it 01_solar 1 117 2030 1.0 0.0 +it 02_wind_on 1 117 2030 1.0 0.0 +it 03_wind_off 1 117 2030 1.0 0.0 +it 04_res 1 117 2030 1.0 0.0 +it 05_nuclear 1 117 2030 1.0 0.0 +it 06_coal 1 117 2030 1.0 0.0 +it 07_gas 1 117 2030 0.0 0.0 +it 08_non-res 1 117 2030 0.0 0.0 +it 09_hydro_pump 1 117 2030 0.0 0.0 +it 01_solar 1 118 2030 1.0 0.0 +it 02_wind_on 1 118 2030 1.0 0.0 +it 03_wind_off 1 118 2030 1.0 0.0 +it 04_res 1 118 2030 1.0 0.0 +it 05_nuclear 1 118 2030 1.0 0.0 +it 06_coal 1 118 2030 1.0 0.0 +it 07_gas 1 118 2030 0.0 0.0 +it 08_non-res 1 118 2030 0.0 0.0 +it 09_hydro_pump 1 118 2030 0.0 0.0 +it 01_solar 1 119 2030 1.0 0.0 +it 02_wind_on 1 119 2030 1.0 0.0 +it 03_wind_off 1 119 2030 1.0 0.0 +it 04_res 1 119 2030 1.0 0.0 +it 05_nuclear 1 119 2030 1.0 0.0 +it 06_coal 1 119 2030 1.0 0.0 +it 07_gas 1 119 2030 0.0 0.0 +it 08_non-res 1 119 2030 0.0 0.0 +it 09_hydro_pump 1 119 2030 0.0 0.0 +it 01_solar 1 120 2030 1.0 0.0 +it 02_wind_on 1 120 2030 1.0 0.0 +it 03_wind_off 1 120 2030 1.0 0.0 +it 04_res 1 120 2030 1.0 0.0 +it 05_nuclear 1 120 2030 1.0 0.0 +it 06_coal 1 120 2030 1.0 0.0 +it 07_gas 1 120 2030 0.0 0.0 +it 08_non-res 1 120 2030 0.0 0.0 +it 09_hydro_pump 1 120 2030 0.0 0.0 +it 01_solar 1 121 2030 1.0 0.0 +it 02_wind_on 1 121 2030 1.0 0.0 +it 03_wind_off 1 121 2030 1.0 0.0 +it 04_res 1 121 2030 1.0 0.0 +it 05_nuclear 1 121 2030 1.0 0.0 +it 06_coal 1 121 2030 1.0 0.0 +it 07_gas 1 121 2030 0.0 0.0 +it 08_non-res 1 121 2030 0.0 0.0 +it 09_hydro_pump 1 121 2030 0.0 0.0 +it 01_solar 1 122 2030 1.0 0.0 +it 02_wind_on 1 122 2030 1.0 0.0 +it 03_wind_off 1 122 2030 1.0 0.0 +it 04_res 1 122 2030 1.0 0.0 +it 05_nuclear 1 122 2030 1.0 0.0 +it 06_coal 1 122 2030 1.0 0.0 +it 07_gas 1 122 2030 1.0 0.0 +it 08_non-res 1 122 2030 0.0 0.0 +it 09_hydro_pump 1 122 2030 0.0 0.0 +it 01_solar 1 123 2030 1.0 0.0 +it 02_wind_on 1 123 2030 1.0 0.0 +it 03_wind_off 1 123 2030 1.0 0.0 +it 04_res 1 123 2030 1.0 0.0 +it 05_nuclear 1 123 2030 1.0 0.0 +it 06_coal 1 123 2030 1.0 0.0 +it 07_gas 1 123 2030 1.0 0.0 +it 08_non-res 1 123 2030 0.0 0.0 +it 09_hydro_pump 1 123 2030 0.0 0.0 +it 01_solar 1 124 2030 1.0 0.0 +it 02_wind_on 1 124 2030 1.0 0.0 +it 03_wind_off 1 124 2030 1.0 0.0 +it 04_res 1 124 2030 1.0 0.0 +it 05_nuclear 1 124 2030 1.0 0.0 +it 06_coal 1 124 2030 1.0 0.0 +it 07_gas 1 124 2030 1.0 0.0 +it 08_non-res 1 124 2030 0.0 0.0 +it 09_hydro_pump 1 124 2030 0.0 0.0 +it 01_solar 1 125 2030 1.0 0.0 +it 02_wind_on 1 125 2030 1.0 0.0 +it 03_wind_off 1 125 2030 1.0 0.0 +it 04_res 1 125 2030 1.0 0.0 +it 05_nuclear 1 125 2030 1.0 0.0 +it 06_coal 1 125 2030 1.0 0.0 +it 07_gas 1 125 2030 1.0 0.0 +it 08_non-res 1 125 2030 0.0 0.0 +it 09_hydro_pump 1 125 2030 0.0 0.0 +it 01_solar 1 126 2030 1.0 0.0 +it 02_wind_on 1 126 2030 1.0 0.0 +it 03_wind_off 1 126 2030 1.0 0.0 +it 04_res 1 126 2030 1.0 0.0 +it 05_nuclear 1 126 2030 1.0 0.0 +it 06_coal 1 126 2030 1.0 0.0 +it 07_gas 1 126 2030 1.0 0.0 +it 08_non-res 1 126 2030 0.0 0.0 +it 09_hydro_pump 1 126 2030 0.0 0.0 +it 01_solar 1 127 2030 1.0 0.0 +it 02_wind_on 1 127 2030 1.0 0.0 +it 03_wind_off 1 127 2030 1.0 0.0 +it 04_res 1 127 2030 1.0 0.0 +it 05_nuclear 1 127 2030 1.0 0.0 +it 06_coal 1 127 2030 1.0 0.0 +it 07_gas 1 127 2030 1.0 0.0 +it 08_non-res 1 127 2030 0.0 0.0 +it 09_hydro_pump 1 127 2030 0.0 0.0 +it 01_solar 1 128 2030 1.0 0.0 +it 02_wind_on 1 128 2030 1.0 0.0 +it 03_wind_off 1 128 2030 1.0 0.0 +it 04_res 1 128 2030 1.0 0.0 +it 05_nuclear 1 128 2030 1.0 0.0 +it 06_coal 1 128 2030 1.0 0.0 +it 07_gas 1 128 2030 1.0 0.0 +it 08_non-res 1 128 2030 0.0 0.0 +it 09_hydro_pump 1 128 2030 0.0 0.0 +it 01_solar 1 129 2030 1.0 0.0 +it 02_wind_on 1 129 2030 1.0 0.0 +it 03_wind_off 1 129 2030 1.0 0.0 +it 04_res 1 129 2030 1.0 0.0 +it 05_nuclear 1 129 2030 1.0 0.0 +it 06_coal 1 129 2030 1.0 0.0 +it 07_gas 1 129 2030 1.0 0.0 +it 08_non-res 1 129 2030 0.0 0.0 +it 09_hydro_pump 1 129 2030 0.0 0.0 +it 01_solar 1 130 2030 1.0 0.0 +it 02_wind_on 1 130 2030 1.0 0.0 +it 03_wind_off 1 130 2030 1.0 0.0 +it 04_res 1 130 2030 1.0 0.0 +it 05_nuclear 1 130 2030 1.0 0.0 +it 06_coal 1 130 2030 1.0 0.0 +it 07_gas 1 130 2030 1.0 0.0 +it 08_non-res 1 130 2030 0.0 0.0 +it 09_hydro_pump 1 130 2030 0.0 0.0 +it 01_solar 1 131 2030 1.0 0.0 +it 02_wind_on 1 131 2030 1.0 0.0 +it 03_wind_off 1 131 2030 1.0 0.0 +it 04_res 1 131 2030 1.0 0.0 +it 05_nuclear 1 131 2030 1.0 0.0 +it 06_coal 1 131 2030 1.0 0.0 +it 07_gas 1 131 2030 1.0 0.0 +it 08_non-res 1 131 2030 0.0 0.0 +it 09_hydro_pump 1 131 2030 0.0 0.0 +it 01_solar 1 132 2030 1.0 0.0 +it 02_wind_on 1 132 2030 1.0 0.0 +it 03_wind_off 1 132 2030 1.0 0.0 +it 04_res 1 132 2030 1.0 0.0 +it 05_nuclear 1 132 2030 1.0 0.0 +it 06_coal 1 132 2030 1.0 0.0 +it 07_gas 1 132 2030 1.0 0.0 +it 08_non-res 1 132 2030 0.0 0.0 +it 09_hydro_pump 1 132 2030 0.0 0.0 +it 01_solar 1 133 2030 1.0 0.0 +it 02_wind_on 1 133 2030 1.0 0.0 +it 03_wind_off 1 133 2030 1.0 0.0 +it 04_res 1 133 2030 1.0 0.0 +it 05_nuclear 1 133 2030 1.0 0.0 +it 06_coal 1 133 2030 1.0 0.0 +it 07_gas 1 133 2030 1.0 0.0 +it 08_non-res 1 133 2030 0.0 0.0 +it 09_hydro_pump 1 133 2030 0.0 0.0 +it 01_solar 1 134 2030 1.0 0.0 +it 02_wind_on 1 134 2030 1.0 0.0 +it 03_wind_off 1 134 2030 1.0 0.0 +it 04_res 1 134 2030 1.0 0.0 +it 05_nuclear 1 134 2030 1.0 0.0 +it 06_coal 1 134 2030 1.0 0.0 +it 07_gas 1 134 2030 1.0 0.0 +it 08_non-res 1 134 2030 0.0 0.0 +it 09_hydro_pump 1 134 2030 0.0 0.0 +it 01_solar 1 135 2030 1.0 0.0 +it 02_wind_on 1 135 2030 1.0 0.0 +it 03_wind_off 1 135 2030 1.0 0.0 +it 04_res 1 135 2030 1.0 0.0 +it 05_nuclear 1 135 2030 1.0 0.0 +it 06_coal 1 135 2030 1.0 0.0 +it 07_gas 1 135 2030 1.0 0.0 +it 08_non-res 1 135 2030 0.0 0.0 +it 09_hydro_pump 1 135 2030 0.0 0.0 +it 01_solar 1 136 2030 1.0 0.0 +it 02_wind_on 1 136 2030 1.0 0.0 +it 03_wind_off 1 136 2030 1.0 0.0 +it 04_res 1 136 2030 1.0 0.0 +it 05_nuclear 1 136 2030 1.0 0.0 +it 06_coal 1 136 2030 1.0 0.0 +it 07_gas 1 136 2030 1.0 0.0 +it 08_non-res 1 136 2030 0.0 0.0 +it 09_hydro_pump 1 136 2030 0.0 0.0 +it 01_solar 1 137 2030 1.0 0.0 +it 02_wind_on 1 137 2030 1.0 0.0 +it 03_wind_off 1 137 2030 1.0 0.0 +it 04_res 1 137 2030 1.0 0.0 +it 05_nuclear 1 137 2030 1.0 0.0 +it 06_coal 1 137 2030 1.0 0.0 +it 07_gas 1 137 2030 1.0 0.0 +it 08_non-res 1 137 2030 0.0 0.0 +it 09_hydro_pump 1 137 2030 0.0 0.0 +it 01_solar 1 138 2030 1.0 0.0 +it 02_wind_on 1 138 2030 1.0 0.0 +it 03_wind_off 1 138 2030 1.0 0.0 +it 04_res 1 138 2030 1.0 0.0 +it 05_nuclear 1 138 2030 1.0 0.0 +it 06_coal 1 138 2030 1.0 0.0 +it 07_gas 1 138 2030 1.0 0.0 +it 08_non-res 1 138 2030 0.0 0.0 +it 09_hydro_pump 1 138 2030 0.0 0.0 +it 01_solar 1 139 2030 1.0 0.0 +it 02_wind_on 1 139 2030 1.0 0.0 +it 03_wind_off 1 139 2030 1.0 0.0 +it 04_res 1 139 2030 1.0 0.0 +it 05_nuclear 1 139 2030 1.0 0.0 +it 06_coal 1 139 2030 1.0 0.0 +it 07_gas 1 139 2030 1.0 0.0 +it 08_non-res 1 139 2030 0.0 0.0 +it 09_hydro_pump 1 139 2030 0.0 0.0 +it 01_solar 1 140 2030 1.0 0.0 +it 02_wind_on 1 140 2030 1.0 0.0 +it 03_wind_off 1 140 2030 1.0 0.0 +it 04_res 1 140 2030 1.0 0.0 +it 05_nuclear 1 140 2030 1.0 0.0 +it 06_coal 1 140 2030 1.0 0.0 +it 07_gas 1 140 2030 1.0 0.0 +it 08_non-res 1 140 2030 0.0 0.0 +it 09_hydro_pump 1 140 2030 0.0 0.0 +it 01_solar 1 141 2030 1.0 0.0 +it 02_wind_on 1 141 2030 1.0 0.0 +it 03_wind_off 1 141 2030 1.0 0.0 +it 04_res 1 141 2030 1.0 0.0 +it 05_nuclear 1 141 2030 1.0 0.0 +it 06_coal 1 141 2030 1.0 0.0 +it 07_gas 1 141 2030 1.0 0.0 +it 08_non-res 1 141 2030 0.0 0.0 +it 09_hydro_pump 1 141 2030 0.0 0.0 +it 01_solar 1 142 2030 1.0 0.0 +it 02_wind_on 1 142 2030 1.0 0.0 +it 03_wind_off 1 142 2030 1.0 0.0 +it 04_res 1 142 2030 1.0 0.0 +it 05_nuclear 1 142 2030 1.0 0.0 +it 06_coal 1 142 2030 1.0 0.0 +it 07_gas 1 142 2030 1.0 0.0 +it 08_non-res 1 142 2030 1.0 0.0 +it 09_hydro_pump 1 142 2030 0.0 0.0 +it 01_solar 1 143 2030 1.0 0.0 +it 02_wind_on 1 143 2030 1.0 0.0 +it 03_wind_off 1 143 2030 1.0 0.0 +it 04_res 1 143 2030 1.0 0.0 +it 05_nuclear 1 143 2030 1.0 0.0 +it 06_coal 1 143 2030 1.0 0.0 +it 07_gas 1 143 2030 1.0 0.0 +it 08_non-res 1 143 2030 1.0 0.0 +it 09_hydro_pump 1 143 2030 0.0 0.0 +it 01_solar 1 144 2030 1.0 0.0 +it 02_wind_on 1 144 2030 1.0 0.0 +it 03_wind_off 1 144 2030 1.0 0.0 +it 04_res 1 144 2030 1.0 0.0 +it 05_nuclear 1 144 2030 1.0 0.0 +it 06_coal 1 144 2030 1.0 0.0 +it 07_gas 1 144 2030 1.0 0.0 +it 08_non-res 1 144 2030 1.0 0.0 +it 09_hydro_pump 1 144 2030 0.0 0.0 +it 01_solar 1 145 2030 1.0 0.0 +it 02_wind_on 1 145 2030 1.0 0.0 +it 03_wind_off 1 145 2030 1.0 0.0 +it 04_res 1 145 2030 1.0 0.0 +it 05_nuclear 1 145 2030 1.0 0.0 +it 06_coal 1 145 2030 1.0 0.0 +it 07_gas 1 145 2030 1.0 0.0 +it 08_non-res 1 145 2030 1.0 0.0 +it 09_hydro_pump 1 145 2030 0.0 0.0 +it 01_solar 1 146 2030 1.0 0.0 +it 02_wind_on 1 146 2030 1.0 0.0 +it 03_wind_off 1 146 2030 1.0 0.0 +it 04_res 1 146 2030 1.0 0.0 +it 05_nuclear 1 146 2030 1.0 0.0 +it 06_coal 1 146 2030 1.0 0.0 +it 07_gas 1 146 2030 1.0 0.0 +it 08_non-res 1 146 2030 1.0 0.0 +it 09_hydro_pump 1 146 2030 0.0 0.0 +it 01_solar 1 147 2030 1.0 0.0 +it 02_wind_on 1 147 2030 1.0 0.0 +it 03_wind_off 1 147 2030 1.0 0.0 +it 04_res 1 147 2030 1.0 0.0 +it 05_nuclear 1 147 2030 1.0 0.0 +it 06_coal 1 147 2030 1.0 0.0 +it 07_gas 1 147 2030 1.0 0.0 +it 08_non-res 1 147 2030 1.0 0.0 +it 09_hydro_pump 1 147 2030 0.0 0.0 +it 01_solar 1 148 2030 1.0 0.0 +it 02_wind_on 1 148 2030 1.0 0.0 +it 03_wind_off 1 148 2030 1.0 0.0 +it 04_res 1 148 2030 1.0 0.0 +it 05_nuclear 1 148 2030 1.0 0.0 +it 06_coal 1 148 2030 1.0 0.0 +it 07_gas 1 148 2030 1.0 0.0 +it 08_non-res 1 148 2030 1.0 0.0 +it 09_hydro_pump 1 148 2030 0.0 0.0 +it 01_solar 1 149 2030 1.0 0.0 +it 02_wind_on 1 149 2030 1.0 0.0 +it 03_wind_off 1 149 2030 1.0 0.0 +it 04_res 1 149 2030 1.0 0.0 +it 05_nuclear 1 149 2030 1.0 0.0 +it 06_coal 1 149 2030 1.0 0.0 +it 07_gas 1 149 2030 1.0 0.0 +it 08_non-res 1 149 2030 1.0 0.0 +it 09_hydro_pump 1 149 2030 0.0 0.0 +it 01_solar 1 150 2030 1.0 0.0 +it 02_wind_on 1 150 2030 1.0 0.0 +it 03_wind_off 1 150 2030 1.0 0.0 +it 04_res 1 150 2030 1.0 0.0 +it 05_nuclear 1 150 2030 1.0 0.0 +it 06_coal 1 150 2030 1.0 0.0 +it 07_gas 1 150 2030 1.0 0.0 +it 08_non-res 1 150 2030 1.0 0.0 +it 09_hydro_pump 1 150 2030 0.0 0.0 +it 01_solar 1 151 2030 1.0 0.0 +it 02_wind_on 1 151 2030 1.0 0.0 +it 03_wind_off 1 151 2030 1.0 0.0 +it 04_res 1 151 2030 1.0 0.0 +it 05_nuclear 1 151 2030 1.0 0.0 +it 06_coal 1 151 2030 1.0 0.0 +it 07_gas 1 151 2030 1.0 0.0 +it 08_non-res 1 151 2030 1.0 0.0 +it 09_hydro_pump 1 151 2030 0.0 0.0 +it 01_solar 1 152 2030 1.0 0.0 +it 02_wind_on 1 152 2030 1.0 0.0 +it 03_wind_off 1 152 2030 1.0 0.0 +it 04_res 1 152 2030 1.0 0.0 +it 05_nuclear 1 152 2030 1.0 0.0 +it 06_coal 1 152 2030 1.0 0.0 +it 07_gas 1 152 2030 1.0 0.0 +it 08_non-res 1 152 2030 1.0 0.0 +it 09_hydro_pump 1 152 2030 0.0 0.0 +it 01_solar 1 153 2030 1.0 0.0 +it 02_wind_on 1 153 2030 1.0 0.0 +it 03_wind_off 1 153 2030 1.0 0.0 +it 04_res 1 153 2030 1.0 0.0 +it 05_nuclear 1 153 2030 1.0 0.0 +it 06_coal 1 153 2030 1.0 0.0 +it 07_gas 1 153 2030 1.0 0.0 +it 08_non-res 1 153 2030 1.0 0.0 +it 09_hydro_pump 1 153 2030 0.0 0.0 +it 01_solar 1 154 2030 1.0 0.0 +it 02_wind_on 1 154 2030 1.0 0.0 +it 03_wind_off 1 154 2030 1.0 0.0 +it 04_res 1 154 2030 1.0 0.0 +it 05_nuclear 1 154 2030 1.0 0.0 +it 06_coal 1 154 2030 1.0 0.0 +it 07_gas 1 154 2030 1.0 0.0 +it 08_non-res 1 154 2030 1.0 0.0 +it 09_hydro_pump 1 154 2030 0.0 0.0 +it 01_solar 1 155 2030 1.0 0.0 +it 02_wind_on 1 155 2030 1.0 0.0 +it 03_wind_off 1 155 2030 1.0 0.0 +it 04_res 1 155 2030 1.0 0.0 +it 05_nuclear 1 155 2030 1.0 0.0 +it 06_coal 1 155 2030 1.0 0.0 +it 07_gas 1 155 2030 1.0 0.0 +it 08_non-res 1 155 2030 1.0 0.0 +it 09_hydro_pump 1 155 2030 0.0 0.0 +it 01_solar 1 156 2030 1.0 0.0 +it 02_wind_on 1 156 2030 1.0 0.0 +it 03_wind_off 1 156 2030 1.0 0.0 +it 04_res 1 156 2030 1.0 0.0 +it 05_nuclear 1 156 2030 1.0 0.0 +it 06_coal 1 156 2030 1.0 0.0 +it 07_gas 1 156 2030 1.0 0.0 +it 08_non-res 1 156 2030 1.0 0.0 +it 09_hydro_pump 1 156 2030 0.0 0.0 +it 01_solar 1 157 2030 1.0 0.0 +it 02_wind_on 1 157 2030 1.0 0.0 +it 03_wind_off 1 157 2030 1.0 0.0 +it 04_res 1 157 2030 1.0 0.0 +it 05_nuclear 1 157 2030 1.0 0.0 +it 06_coal 1 157 2030 1.0 0.0 +it 07_gas 1 157 2030 1.0 0.0 +it 08_non-res 1 157 2030 1.0 0.0 +it 09_hydro_pump 1 157 2030 0.0 0.0 +it 01_solar 1 158 2030 1.0 0.0 +it 02_wind_on 1 158 2030 1.0 0.0 +it 03_wind_off 1 158 2030 1.0 0.0 +it 04_res 1 158 2030 1.0 0.0 +it 05_nuclear 1 158 2030 1.0 0.0 +it 06_coal 1 158 2030 1.0 0.0 +it 07_gas 1 158 2030 1.0 0.0 +it 08_non-res 1 158 2030 1.0 0.0 +it 09_hydro_pump 1 158 2030 0.0 0.0 +it 01_solar 1 159 2030 1.0 0.0 +it 02_wind_on 1 159 2030 1.0 0.0 +it 03_wind_off 1 159 2030 1.0 0.0 +it 04_res 1 159 2030 1.0 0.0 +it 05_nuclear 1 159 2030 1.0 0.0 +it 06_coal 1 159 2030 1.0 0.0 +it 07_gas 1 159 2030 1.0 0.0 +it 08_non-res 1 159 2030 1.0 0.0 +it 09_hydro_pump 1 159 2030 0.0 0.0 +it 01_solar 1 160 2030 1.0 0.0 +it 02_wind_on 1 160 2030 1.0 0.0 +it 03_wind_off 1 160 2030 1.0 0.0 +it 04_res 1 160 2030 1.0 0.0 +it 05_nuclear 1 160 2030 1.0 0.0 +it 06_coal 1 160 2030 1.0 0.0 +it 07_gas 1 160 2030 1.0 0.0 +it 08_non-res 1 160 2030 1.0 0.0 +it 09_hydro_pump 1 160 2030 0.0 0.0 +it 01_solar 1 161 2030 1.0 0.0 +it 02_wind_on 1 161 2030 1.0 0.0 +it 03_wind_off 1 161 2030 1.0 0.0 +it 04_res 1 161 2030 1.0 0.0 +it 05_nuclear 1 161 2030 1.0 0.0 +it 06_coal 1 161 2030 1.0 0.0 +it 07_gas 1 161 2030 1.0 0.0 +it 08_non-res 1 161 2030 1.0 0.0 +it 09_hydro_pump 1 161 2030 0.0 0.0 +it 01_solar 1 162 2030 1.0 0.0 +it 02_wind_on 1 162 2030 1.0 0.0 +it 03_wind_off 1 162 2030 1.0 0.0 +it 04_res 1 162 2030 1.0 0.0 +it 05_nuclear 1 162 2030 1.0 0.0 +it 06_coal 1 162 2030 1.0 0.0 +it 07_gas 1 162 2030 1.0 0.0 +it 08_non-res 1 162 2030 1.0 0.0 +it 09_hydro_pump 1 162 2030 1.0 0.0 +it 01_solar 1 163 2030 1.0 0.0 +it 02_wind_on 1 163 2030 1.0 0.0 +it 03_wind_off 1 163 2030 1.0 0.0 +it 04_res 1 163 2030 1.0 0.0 +it 05_nuclear 1 163 2030 1.0 0.0 +it 06_coal 1 163 2030 1.0 0.0 +it 07_gas 1 163 2030 1.0 0.0 +it 08_non-res 1 163 2030 1.0 0.0 +it 09_hydro_pump 1 163 2030 1.0 0.0 +it 01_solar 1 164 2030 1.0 0.0 +it 02_wind_on 1 164 2030 1.0 0.0 +it 03_wind_off 1 164 2030 1.0 0.0 +it 04_res 1 164 2030 1.0 0.0 +it 05_nuclear 1 164 2030 1.0 0.0 +it 06_coal 1 164 2030 1.0 0.0 +it 07_gas 1 164 2030 1.0 0.0 +it 08_non-res 1 164 2030 1.0 0.0 +it 09_hydro_pump 1 164 2030 1.0 0.0 +it 01_solar 1 165 2030 1.0 0.0 +it 02_wind_on 1 165 2030 1.0 0.0 +it 03_wind_off 1 165 2030 1.0 0.0 +it 04_res 1 165 2030 1.0 0.0 +it 05_nuclear 1 165 2030 1.0 0.0 +it 06_coal 1 165 2030 1.0 0.0 +it 07_gas 1 165 2030 1.0 0.0 +it 08_non-res 1 165 2030 1.0 0.0 +it 09_hydro_pump 1 165 2030 1.0 0.0 +it 01_solar 1 166 2030 1.0 0.0 +it 02_wind_on 1 166 2030 1.0 0.0 +it 03_wind_off 1 166 2030 1.0 0.0 +it 04_res 1 166 2030 1.0 0.0 +it 05_nuclear 1 166 2030 1.0 0.0 +it 06_coal 1 166 2030 1.0 0.0 +it 07_gas 1 166 2030 1.0 0.0 +it 08_non-res 1 166 2030 1.0 0.0 +it 09_hydro_pump 1 166 2030 1.0 0.0 +it 01_solar 1 167 2030 1.0 0.0 +it 02_wind_on 1 167 2030 1.0 0.0 +it 03_wind_off 1 167 2030 1.0 0.0 +it 04_res 1 167 2030 1.0 0.0 +it 05_nuclear 1 167 2030 1.0 0.0 +it 06_coal 1 167 2030 1.0 0.0 +it 07_gas 1 167 2030 1.0 0.0 +it 08_non-res 1 167 2030 1.0 0.0 +it 09_hydro_pump 1 167 2030 1.0 0.0 +it 01_solar 1 168 2030 1.0 0.0 +it 02_wind_on 1 168 2030 1.0 0.0 +it 03_wind_off 1 168 2030 1.0 0.0 +it 04_res 1 168 2030 1.0 0.0 +it 05_nuclear 1 168 2030 1.0 0.0 +it 06_coal 1 168 2030 1.0 0.0 +it 07_gas 1 168 2030 1.0 0.0 +it 08_non-res 1 168 2030 1.0 0.0 +it 09_hydro_pump 1 168 2030 1.0 0.0 +it 01_solar 1 169 2030 0.0 0.0 +it 02_wind_on 1 169 2030 0.0 0.0 +it 03_wind_off 1 169 2030 0.0 0.0 +it 04_res 1 169 2030 0.0 0.0 +it 05_nuclear 1 169 2030 0.0 0.0 +it 06_coal 1 169 2030 0.0 0.0 +it 07_gas 1 169 2030 0.0 0.0 +it 08_non-res 1 169 2030 0.0 0.0 +it 09_hydro_pump 1 169 2030 0.0 0.0 +it 01_solar 1 170 2030 1.0 0.0 +it 02_wind_on 1 170 2030 0.0 0.0 +it 03_wind_off 1 170 2030 0.0 0.0 +it 04_res 1 170 2030 0.0 0.0 +it 05_nuclear 1 170 2030 0.0 0.0 +it 06_coal 1 170 2030 0.0 0.0 +it 07_gas 1 170 2030 0.0 0.0 +it 08_non-res 1 170 2030 0.0 0.0 +it 09_hydro_pump 1 170 2030 0.0 0.0 +it 01_solar 1 171 2030 1.0 0.0 +it 02_wind_on 1 171 2030 0.0 0.0 +it 03_wind_off 1 171 2030 0.0 0.0 +it 04_res 1 171 2030 0.0 0.0 +it 05_nuclear 1 171 2030 0.0 0.0 +it 06_coal 1 171 2030 0.0 0.0 +it 07_gas 1 171 2030 0.0 0.0 +it 08_non-res 1 171 2030 0.0 0.0 +it 09_hydro_pump 1 171 2030 0.0 0.0 +it 01_solar 1 172 2030 1.0 0.0 +it 02_wind_on 1 172 2030 0.0 0.0 +it 03_wind_off 1 172 2030 0.0 0.0 +it 04_res 1 172 2030 0.0 0.0 +it 05_nuclear 1 172 2030 0.0 0.0 +it 06_coal 1 172 2030 0.0 0.0 +it 07_gas 1 172 2030 0.0 0.0 +it 08_non-res 1 172 2030 0.0 0.0 +it 09_hydro_pump 1 172 2030 0.0 0.0 +it 01_solar 1 173 2030 1.0 0.0 +it 02_wind_on 1 173 2030 0.0 0.0 +it 03_wind_off 1 173 2030 0.0 0.0 +it 04_res 1 173 2030 0.0 0.0 +it 05_nuclear 1 173 2030 0.0 0.0 +it 06_coal 1 173 2030 0.0 0.0 +it 07_gas 1 173 2030 0.0 0.0 +it 08_non-res 1 173 2030 0.0 0.0 +it 09_hydro_pump 1 173 2030 0.0 0.0 +it 01_solar 1 174 2030 1.0 0.0 +it 02_wind_on 1 174 2030 0.0 0.0 +it 03_wind_off 1 174 2030 0.0 0.0 +it 04_res 1 174 2030 0.0 0.0 +it 05_nuclear 1 174 2030 0.0 0.0 +it 06_coal 1 174 2030 0.0 0.0 +it 07_gas 1 174 2030 0.0 0.0 +it 08_non-res 1 174 2030 0.0 0.0 +it 09_hydro_pump 1 174 2030 0.0 0.0 +it 01_solar 1 175 2030 1.0 0.0 +it 02_wind_on 1 175 2030 0.0 0.0 +it 03_wind_off 1 175 2030 0.0 0.0 +it 04_res 1 175 2030 0.0 0.0 +it 05_nuclear 1 175 2030 0.0 0.0 +it 06_coal 1 175 2030 0.0 0.0 +it 07_gas 1 175 2030 0.0 0.0 +it 08_non-res 1 175 2030 0.0 0.0 +it 09_hydro_pump 1 175 2030 0.0 0.0 +it 01_solar 1 176 2030 1.0 0.0 +it 02_wind_on 1 176 2030 0.0 0.0 +it 03_wind_off 1 176 2030 0.0 0.0 +it 04_res 1 176 2030 0.0 0.0 +it 05_nuclear 1 176 2030 0.0 0.0 +it 06_coal 1 176 2030 0.0 0.0 +it 07_gas 1 176 2030 0.0 0.0 +it 08_non-res 1 176 2030 0.0 0.0 +it 09_hydro_pump 1 176 2030 0.0 0.0 +it 01_solar 1 177 2030 1.0 0.0 +it 02_wind_on 1 177 2030 0.0 0.0 +it 03_wind_off 1 177 2030 0.0 0.0 +it 04_res 1 177 2030 0.0 0.0 +it 05_nuclear 1 177 2030 0.0 0.0 +it 06_coal 1 177 2030 0.0 0.0 +it 07_gas 1 177 2030 0.0 0.0 +it 08_non-res 1 177 2030 0.0 0.0 +it 09_hydro_pump 1 177 2030 0.0 0.0 +it 01_solar 1 178 2030 1.0 0.0 +it 02_wind_on 1 178 2030 0.0 0.0 +it 03_wind_off 1 178 2030 0.0 0.0 +it 04_res 1 178 2030 0.0 0.0 +it 05_nuclear 1 178 2030 0.0 0.0 +it 06_coal 1 178 2030 0.0 0.0 +it 07_gas 1 178 2030 0.0 0.0 +it 08_non-res 1 178 2030 0.0 0.0 +it 09_hydro_pump 1 178 2030 0.0 0.0 +it 01_solar 1 179 2030 1.0 0.0 +it 02_wind_on 1 179 2030 0.0 0.0 +it 03_wind_off 1 179 2030 0.0 0.0 +it 04_res 1 179 2030 0.0 0.0 +it 05_nuclear 1 179 2030 0.0 0.0 +it 06_coal 1 179 2030 0.0 0.0 +it 07_gas 1 179 2030 0.0 0.0 +it 08_non-res 1 179 2030 0.0 0.0 +it 09_hydro_pump 1 179 2030 0.0 0.0 +it 01_solar 1 180 2030 1.0 0.0 +it 02_wind_on 1 180 2030 0.0 0.0 +it 03_wind_off 1 180 2030 0.0 0.0 +it 04_res 1 180 2030 0.0 0.0 +it 05_nuclear 1 180 2030 0.0 0.0 +it 06_coal 1 180 2030 0.0 0.0 +it 07_gas 1 180 2030 0.0 0.0 +it 08_non-res 1 180 2030 0.0 0.0 +it 09_hydro_pump 1 180 2030 0.0 0.0 +it 01_solar 1 181 2030 1.0 0.0 +it 02_wind_on 1 181 2030 0.0 0.0 +it 03_wind_off 1 181 2030 0.0 0.0 +it 04_res 1 181 2030 0.0 0.0 +it 05_nuclear 1 181 2030 0.0 0.0 +it 06_coal 1 181 2030 0.0 0.0 +it 07_gas 1 181 2030 0.0 0.0 +it 08_non-res 1 181 2030 0.0 0.0 +it 09_hydro_pump 1 181 2030 0.0 0.0 +it 01_solar 1 182 2030 1.0 0.0 +it 02_wind_on 1 182 2030 0.0 0.0 +it 03_wind_off 1 182 2030 0.0 0.0 +it 04_res 1 182 2030 0.0 0.0 +it 05_nuclear 1 182 2030 0.0 0.0 +it 06_coal 1 182 2030 0.0 0.0 +it 07_gas 1 182 2030 0.0 0.0 +it 08_non-res 1 182 2030 0.0 0.0 +it 09_hydro_pump 1 182 2030 0.0 0.0 +it 01_solar 1 183 2030 1.0 0.0 +it 02_wind_on 1 183 2030 0.0 0.0 +it 03_wind_off 1 183 2030 0.0 0.0 +it 04_res 1 183 2030 0.0 0.0 +it 05_nuclear 1 183 2030 0.0 0.0 +it 06_coal 1 183 2030 0.0 0.0 +it 07_gas 1 183 2030 0.0 0.0 +it 08_non-res 1 183 2030 0.0 0.0 +it 09_hydro_pump 1 183 2030 0.0 0.0 +it 01_solar 1 184 2030 1.0 0.0 +it 02_wind_on 1 184 2030 0.0 0.0 +it 03_wind_off 1 184 2030 0.0 0.0 +it 04_res 1 184 2030 0.0 0.0 +it 05_nuclear 1 184 2030 0.0 0.0 +it 06_coal 1 184 2030 0.0 0.0 +it 07_gas 1 184 2030 0.0 0.0 +it 08_non-res 1 184 2030 0.0 0.0 +it 09_hydro_pump 1 184 2030 0.0 0.0 +it 01_solar 1 185 2030 1.0 0.0 +it 02_wind_on 1 185 2030 0.0 0.0 +it 03_wind_off 1 185 2030 0.0 0.0 +it 04_res 1 185 2030 0.0 0.0 +it 05_nuclear 1 185 2030 0.0 0.0 +it 06_coal 1 185 2030 0.0 0.0 +it 07_gas 1 185 2030 0.0 0.0 +it 08_non-res 1 185 2030 0.0 0.0 +it 09_hydro_pump 1 185 2030 0.0 0.0 +it 01_solar 1 186 2030 1.0 0.0 +it 02_wind_on 1 186 2030 0.0 0.0 +it 03_wind_off 1 186 2030 0.0 0.0 +it 04_res 1 186 2030 0.0 0.0 +it 05_nuclear 1 186 2030 0.0 0.0 +it 06_coal 1 186 2030 0.0 0.0 +it 07_gas 1 186 2030 0.0 0.0 +it 08_non-res 1 186 2030 0.0 0.0 +it 09_hydro_pump 1 186 2030 0.0 0.0 +it 01_solar 1 187 2030 1.0 0.0 +it 02_wind_on 1 187 2030 0.0 0.0 +it 03_wind_off 1 187 2030 0.0 0.0 +it 04_res 1 187 2030 0.0 0.0 +it 05_nuclear 1 187 2030 0.0 0.0 +it 06_coal 1 187 2030 0.0 0.0 +it 07_gas 1 187 2030 0.0 0.0 +it 08_non-res 1 187 2030 0.0 0.0 +it 09_hydro_pump 1 187 2030 0.0 0.0 +it 01_solar 1 188 2030 1.0 0.0 +it 02_wind_on 1 188 2030 0.0 0.0 +it 03_wind_off 1 188 2030 0.0 0.0 +it 04_res 1 188 2030 0.0 0.0 +it 05_nuclear 1 188 2030 0.0 0.0 +it 06_coal 1 188 2030 0.0 0.0 +it 07_gas 1 188 2030 0.0 0.0 +it 08_non-res 1 188 2030 0.0 0.0 +it 09_hydro_pump 1 188 2030 0.0 0.0 +it 01_solar 1 189 2030 1.0 0.0 +it 02_wind_on 1 189 2030 0.0 0.0 +it 03_wind_off 1 189 2030 0.0 0.0 +it 04_res 1 189 2030 0.0 0.0 +it 05_nuclear 1 189 2030 0.0 0.0 +it 06_coal 1 189 2030 0.0 0.0 +it 07_gas 1 189 2030 0.0 0.0 +it 08_non-res 1 189 2030 0.0 0.0 +it 09_hydro_pump 1 189 2030 0.0 0.0 +it 01_solar 1 190 2030 1.0 0.0 +it 02_wind_on 1 190 2030 1.0 0.0 +it 03_wind_off 1 190 2030 0.0 0.0 +it 04_res 1 190 2030 0.0 0.0 +it 05_nuclear 1 190 2030 0.0 0.0 +it 06_coal 1 190 2030 0.0 0.0 +it 07_gas 1 190 2030 0.0 0.0 +it 08_non-res 1 190 2030 0.0 0.0 +it 09_hydro_pump 1 190 2030 0.0 0.0 +it 01_solar 1 191 2030 1.0 0.0 +it 02_wind_on 1 191 2030 1.0 0.0 +it 03_wind_off 1 191 2030 0.0 0.0 +it 04_res 1 191 2030 0.0 0.0 +it 05_nuclear 1 191 2030 0.0 0.0 +it 06_coal 1 191 2030 0.0 0.0 +it 07_gas 1 191 2030 0.0 0.0 +it 08_non-res 1 191 2030 0.0 0.0 +it 09_hydro_pump 1 191 2030 0.0 0.0 +it 01_solar 1 192 2030 1.0 0.0 +it 02_wind_on 1 192 2030 1.0 0.0 +it 03_wind_off 1 192 2030 0.0 0.0 +it 04_res 1 192 2030 0.0 0.0 +it 05_nuclear 1 192 2030 0.0 0.0 +it 06_coal 1 192 2030 0.0 0.0 +it 07_gas 1 192 2030 0.0 0.0 +it 08_non-res 1 192 2030 0.0 0.0 +it 09_hydro_pump 1 192 2030 0.0 0.0 +it 01_solar 1 193 2030 1.0 0.0 +it 02_wind_on 1 193 2030 1.0 0.0 +it 03_wind_off 1 193 2030 0.0 0.0 +it 04_res 1 193 2030 0.0 0.0 +it 05_nuclear 1 193 2030 0.0 0.0 +it 06_coal 1 193 2030 0.0 0.0 +it 07_gas 1 193 2030 0.0 0.0 +it 08_non-res 1 193 2030 0.0 0.0 +it 09_hydro_pump 1 193 2030 0.0 0.0 +it 01_solar 1 194 2030 1.0 0.0 +it 02_wind_on 1 194 2030 1.0 0.0 +it 03_wind_off 1 194 2030 0.0 0.0 +it 04_res 1 194 2030 0.0 0.0 +it 05_nuclear 1 194 2030 0.0 0.0 +it 06_coal 1 194 2030 0.0 0.0 +it 07_gas 1 194 2030 0.0 0.0 +it 08_non-res 1 194 2030 0.0 0.0 +it 09_hydro_pump 1 194 2030 0.0 0.0 +it 01_solar 1 195 2030 1.0 0.0 +it 02_wind_on 1 195 2030 1.0 0.0 +it 03_wind_off 1 195 2030 0.0 0.0 +it 04_res 1 195 2030 0.0 0.0 +it 05_nuclear 1 195 2030 0.0 0.0 +it 06_coal 1 195 2030 0.0 0.0 +it 07_gas 1 195 2030 0.0 0.0 +it 08_non-res 1 195 2030 0.0 0.0 +it 09_hydro_pump 1 195 2030 0.0 0.0 +it 01_solar 1 196 2030 1.0 0.0 +it 02_wind_on 1 196 2030 1.0 0.0 +it 03_wind_off 1 196 2030 0.0 0.0 +it 04_res 1 196 2030 0.0 0.0 +it 05_nuclear 1 196 2030 0.0 0.0 +it 06_coal 1 196 2030 0.0 0.0 +it 07_gas 1 196 2030 0.0 0.0 +it 08_non-res 1 196 2030 0.0 0.0 +it 09_hydro_pump 1 196 2030 0.0 0.0 +it 01_solar 1 197 2030 1.0 0.0 +it 02_wind_on 1 197 2030 1.0 0.0 +it 03_wind_off 1 197 2030 0.0 0.0 +it 04_res 1 197 2030 0.0 0.0 +it 05_nuclear 1 197 2030 0.0 0.0 +it 06_coal 1 197 2030 0.0 0.0 +it 07_gas 1 197 2030 0.0 0.0 +it 08_non-res 1 197 2030 0.0 0.0 +it 09_hydro_pump 1 197 2030 0.0 0.0 +it 01_solar 1 198 2030 1.0 0.0 +it 02_wind_on 1 198 2030 1.0 0.0 +it 03_wind_off 1 198 2030 0.0 0.0 +it 04_res 1 198 2030 0.0 0.0 +it 05_nuclear 1 198 2030 0.0 0.0 +it 06_coal 1 198 2030 0.0 0.0 +it 07_gas 1 198 2030 0.0 0.0 +it 08_non-res 1 198 2030 0.0 0.0 +it 09_hydro_pump 1 198 2030 0.0 0.0 +it 01_solar 1 199 2030 1.0 0.0 +it 02_wind_on 1 199 2030 1.0 0.0 +it 03_wind_off 1 199 2030 0.0 0.0 +it 04_res 1 199 2030 0.0 0.0 +it 05_nuclear 1 199 2030 0.0 0.0 +it 06_coal 1 199 2030 0.0 0.0 +it 07_gas 1 199 2030 0.0 0.0 +it 08_non-res 1 199 2030 0.0 0.0 +it 09_hydro_pump 1 199 2030 0.0 0.0 +it 01_solar 1 200 2030 1.0 0.0 +it 02_wind_on 1 200 2030 1.0 0.0 +it 03_wind_off 1 200 2030 0.0 0.0 +it 04_res 1 200 2030 0.0 0.0 +it 05_nuclear 1 200 2030 0.0 0.0 +it 06_coal 1 200 2030 0.0 0.0 +it 07_gas 1 200 2030 0.0 0.0 +it 08_non-res 1 200 2030 0.0 0.0 +it 09_hydro_pump 1 200 2030 0.0 0.0 +it 01_solar 1 201 2030 1.0 0.0 +it 02_wind_on 1 201 2030 1.0 0.0 +it 03_wind_off 1 201 2030 0.0 0.0 +it 04_res 1 201 2030 0.0 0.0 +it 05_nuclear 1 201 2030 0.0 0.0 +it 06_coal 1 201 2030 0.0 0.0 +it 07_gas 1 201 2030 0.0 0.0 +it 08_non-res 1 201 2030 0.0 0.0 +it 09_hydro_pump 1 201 2030 0.0 0.0 +it 01_solar 1 202 2030 1.0 0.0 +it 02_wind_on 1 202 2030 1.0 0.0 +it 03_wind_off 1 202 2030 0.0 0.0 +it 04_res 1 202 2030 0.0 0.0 +it 05_nuclear 1 202 2030 0.0 0.0 +it 06_coal 1 202 2030 0.0 0.0 +it 07_gas 1 202 2030 0.0 0.0 +it 08_non-res 1 202 2030 0.0 0.0 +it 09_hydro_pump 1 202 2030 0.0 0.0 +it 01_solar 1 203 2030 1.0 0.0 +it 02_wind_on 1 203 2030 1.0 0.0 +it 03_wind_off 1 203 2030 0.0 0.0 +it 04_res 1 203 2030 0.0 0.0 +it 05_nuclear 1 203 2030 0.0 0.0 +it 06_coal 1 203 2030 0.0 0.0 +it 07_gas 1 203 2030 0.0 0.0 +it 08_non-res 1 203 2030 0.0 0.0 +it 09_hydro_pump 1 203 2030 0.0 0.0 +it 01_solar 1 204 2030 1.0 0.0 +it 02_wind_on 1 204 2030 1.0 0.0 +it 03_wind_off 1 204 2030 0.0 0.0 +it 04_res 1 204 2030 0.0 0.0 +it 05_nuclear 1 204 2030 0.0 0.0 +it 06_coal 1 204 2030 0.0 0.0 +it 07_gas 1 204 2030 0.0 0.0 +it 08_non-res 1 204 2030 0.0 0.0 +it 09_hydro_pump 1 204 2030 0.0 0.0 +it 01_solar 1 205 2030 1.0 0.0 +it 02_wind_on 1 205 2030 1.0 0.0 +it 03_wind_off 1 205 2030 0.0 0.0 +it 04_res 1 205 2030 0.0 0.0 +it 05_nuclear 1 205 2030 0.0 0.0 +it 06_coal 1 205 2030 0.0 0.0 +it 07_gas 1 205 2030 0.0 0.0 +it 08_non-res 1 205 2030 0.0 0.0 +it 09_hydro_pump 1 205 2030 0.0 0.0 +it 01_solar 1 206 2030 1.0 0.0 +it 02_wind_on 1 206 2030 1.0 0.0 +it 03_wind_off 1 206 2030 0.0 0.0 +it 04_res 1 206 2030 0.0 0.0 +it 05_nuclear 1 206 2030 0.0 0.0 +it 06_coal 1 206 2030 0.0 0.0 +it 07_gas 1 206 2030 0.0 0.0 +it 08_non-res 1 206 2030 0.0 0.0 +it 09_hydro_pump 1 206 2030 0.0 0.0 +it 01_solar 1 207 2030 1.0 0.0 +it 02_wind_on 1 207 2030 1.0 0.0 +it 03_wind_off 1 207 2030 0.0 0.0 +it 04_res 1 207 2030 0.0 0.0 +it 05_nuclear 1 207 2030 0.0 0.0 +it 06_coal 1 207 2030 0.0 0.0 +it 07_gas 1 207 2030 0.0 0.0 +it 08_non-res 1 207 2030 0.0 0.0 +it 09_hydro_pump 1 207 2030 0.0 0.0 +it 01_solar 1 208 2030 1.0 0.0 +it 02_wind_on 1 208 2030 1.0 0.0 +it 03_wind_off 1 208 2030 0.0 0.0 +it 04_res 1 208 2030 0.0 0.0 +it 05_nuclear 1 208 2030 0.0 0.0 +it 06_coal 1 208 2030 0.0 0.0 +it 07_gas 1 208 2030 0.0 0.0 +it 08_non-res 1 208 2030 0.0 0.0 +it 09_hydro_pump 1 208 2030 0.0 0.0 +it 01_solar 1 209 2030 1.0 0.0 +it 02_wind_on 1 209 2030 1.0 0.0 +it 03_wind_off 1 209 2030 0.0 0.0 +it 04_res 1 209 2030 0.0 0.0 +it 05_nuclear 1 209 2030 0.0 0.0 +it 06_coal 1 209 2030 0.0 0.0 +it 07_gas 1 209 2030 0.0 0.0 +it 08_non-res 1 209 2030 0.0 0.0 +it 09_hydro_pump 1 209 2030 0.0 0.0 +it 01_solar 1 210 2030 1.0 0.0 +it 02_wind_on 1 210 2030 1.0 0.0 +it 03_wind_off 1 210 2030 1.0 0.0 +it 04_res 1 210 2030 0.0 0.0 +it 05_nuclear 1 210 2030 0.0 0.0 +it 06_coal 1 210 2030 0.0 0.0 +it 07_gas 1 210 2030 0.0 0.0 +it 08_non-res 1 210 2030 0.0 0.0 +it 09_hydro_pump 1 210 2030 0.0 0.0 +it 01_solar 1 211 2030 1.0 0.0 +it 02_wind_on 1 211 2030 1.0 0.0 +it 03_wind_off 1 211 2030 1.0 0.0 +it 04_res 1 211 2030 0.0 0.0 +it 05_nuclear 1 211 2030 0.0 0.0 +it 06_coal 1 211 2030 0.0 0.0 +it 07_gas 1 211 2030 0.0 0.0 +it 08_non-res 1 211 2030 0.0 0.0 +it 09_hydro_pump 1 211 2030 0.0 0.0 +it 01_solar 1 212 2030 1.0 0.0 +it 02_wind_on 1 212 2030 1.0 0.0 +it 03_wind_off 1 212 2030 1.0 0.0 +it 04_res 1 212 2030 0.0 0.0 +it 05_nuclear 1 212 2030 0.0 0.0 +it 06_coal 1 212 2030 0.0 0.0 +it 07_gas 1 212 2030 0.0 0.0 +it 08_non-res 1 212 2030 0.0 0.0 +it 09_hydro_pump 1 212 2030 0.0 0.0 +it 01_solar 1 213 2030 1.0 0.0 +it 02_wind_on 1 213 2030 1.0 0.0 +it 03_wind_off 1 213 2030 1.0 0.0 +it 04_res 1 213 2030 0.0 0.0 +it 05_nuclear 1 213 2030 0.0 0.0 +it 06_coal 1 213 2030 0.0 0.0 +it 07_gas 1 213 2030 0.0 0.0 +it 08_non-res 1 213 2030 0.0 0.0 +it 09_hydro_pump 1 213 2030 0.0 0.0 +it 01_solar 1 214 2030 1.0 0.0 +it 02_wind_on 1 214 2030 1.0 0.0 +it 03_wind_off 1 214 2030 1.0 0.0 +it 04_res 1 214 2030 0.0 0.0 +it 05_nuclear 1 214 2030 0.0 0.0 +it 06_coal 1 214 2030 0.0 0.0 +it 07_gas 1 214 2030 0.0 0.0 +it 08_non-res 1 214 2030 0.0 0.0 +it 09_hydro_pump 1 214 2030 0.0 0.0 +it 01_solar 1 215 2030 1.0 0.0 +it 02_wind_on 1 215 2030 1.0 0.0 +it 03_wind_off 1 215 2030 1.0 0.0 +it 04_res 1 215 2030 0.0 0.0 +it 05_nuclear 1 215 2030 0.0 0.0 +it 06_coal 1 215 2030 0.0 0.0 +it 07_gas 1 215 2030 0.0 0.0 +it 08_non-res 1 215 2030 0.0 0.0 +it 09_hydro_pump 1 215 2030 0.0 0.0 +it 01_solar 1 216 2030 1.0 0.0 +it 02_wind_on 1 216 2030 1.0 0.0 +it 03_wind_off 1 216 2030 1.0 0.0 +it 04_res 1 216 2030 0.0 0.0 +it 05_nuclear 1 216 2030 0.0 0.0 +it 06_coal 1 216 2030 0.0 0.0 +it 07_gas 1 216 2030 0.0 0.0 +it 08_non-res 1 216 2030 0.0 0.0 +it 09_hydro_pump 1 216 2030 0.0 0.0 +it 01_solar 1 217 2030 1.0 0.0 +it 02_wind_on 1 217 2030 1.0 0.0 +it 03_wind_off 1 217 2030 1.0 0.0 +it 04_res 1 217 2030 0.0 0.0 +it 05_nuclear 1 217 2030 0.0 0.0 +it 06_coal 1 217 2030 0.0 0.0 +it 07_gas 1 217 2030 0.0 0.0 +it 08_non-res 1 217 2030 0.0 0.0 +it 09_hydro_pump 1 217 2030 0.0 0.0 +it 01_solar 1 218 2030 1.0 0.0 +it 02_wind_on 1 218 2030 1.0 0.0 +it 03_wind_off 1 218 2030 1.0 0.0 +it 04_res 1 218 2030 0.0 0.0 +it 05_nuclear 1 218 2030 0.0 0.0 +it 06_coal 1 218 2030 0.0 0.0 +it 07_gas 1 218 2030 0.0 0.0 +it 08_non-res 1 218 2030 0.0 0.0 +it 09_hydro_pump 1 218 2030 0.0 0.0 +it 01_solar 1 219 2030 1.0 0.0 +it 02_wind_on 1 219 2030 1.0 0.0 +it 03_wind_off 1 219 2030 1.0 0.0 +it 04_res 1 219 2030 0.0 0.0 +it 05_nuclear 1 219 2030 0.0 0.0 +it 06_coal 1 219 2030 0.0 0.0 +it 07_gas 1 219 2030 0.0 0.0 +it 08_non-res 1 219 2030 0.0 0.0 +it 09_hydro_pump 1 219 2030 0.0 0.0 +it 01_solar 1 220 2030 1.0 0.0 +it 02_wind_on 1 220 2030 1.0 0.0 +it 03_wind_off 1 220 2030 1.0 0.0 +it 04_res 1 220 2030 0.0 0.0 +it 05_nuclear 1 220 2030 0.0 0.0 +it 06_coal 1 220 2030 0.0 0.0 +it 07_gas 1 220 2030 0.0 0.0 +it 08_non-res 1 220 2030 0.0 0.0 +it 09_hydro_pump 1 220 2030 0.0 0.0 +it 01_solar 1 221 2030 1.0 0.0 +it 02_wind_on 1 221 2030 1.0 0.0 +it 03_wind_off 1 221 2030 1.0 0.0 +it 04_res 1 221 2030 0.0 0.0 +it 05_nuclear 1 221 2030 0.0 0.0 +it 06_coal 1 221 2030 0.0 0.0 +it 07_gas 1 221 2030 0.0 0.0 +it 08_non-res 1 221 2030 0.0 0.0 +it 09_hydro_pump 1 221 2030 0.0 0.0 +it 01_solar 1 222 2030 1.0 0.0 +it 02_wind_on 1 222 2030 1.0 0.0 +it 03_wind_off 1 222 2030 1.0 0.0 +it 04_res 1 222 2030 0.0 0.0 +it 05_nuclear 1 222 2030 0.0 0.0 +it 06_coal 1 222 2030 0.0 0.0 +it 07_gas 1 222 2030 0.0 0.0 +it 08_non-res 1 222 2030 0.0 0.0 +it 09_hydro_pump 1 222 2030 0.0 0.0 +it 01_solar 1 223 2030 1.0 0.0 +it 02_wind_on 1 223 2030 1.0 0.0 +it 03_wind_off 1 223 2030 1.0 0.0 +it 04_res 1 223 2030 0.0 0.0 +it 05_nuclear 1 223 2030 0.0 0.0 +it 06_coal 1 223 2030 0.0 0.0 +it 07_gas 1 223 2030 0.0 0.0 +it 08_non-res 1 223 2030 0.0 0.0 +it 09_hydro_pump 1 223 2030 0.0 0.0 +it 01_solar 1 224 2030 1.0 0.0 +it 02_wind_on 1 224 2030 1.0 0.0 +it 03_wind_off 1 224 2030 1.0 0.0 +it 04_res 1 224 2030 0.0 0.0 +it 05_nuclear 1 224 2030 0.0 0.0 +it 06_coal 1 224 2030 0.0 0.0 +it 07_gas 1 224 2030 0.0 0.0 +it 08_non-res 1 224 2030 0.0 0.0 +it 09_hydro_pump 1 224 2030 0.0 0.0 +it 01_solar 1 225 2030 1.0 0.0 +it 02_wind_on 1 225 2030 1.0 0.0 +it 03_wind_off 1 225 2030 1.0 0.0 +it 04_res 1 225 2030 0.0 0.0 +it 05_nuclear 1 225 2030 0.0 0.0 +it 06_coal 1 225 2030 0.0 0.0 +it 07_gas 1 225 2030 0.0 0.0 +it 08_non-res 1 225 2030 0.0 0.0 +it 09_hydro_pump 1 225 2030 0.0 0.0 +it 01_solar 1 226 2030 1.0 0.0 +it 02_wind_on 1 226 2030 1.0 0.0 +it 03_wind_off 1 226 2030 1.0 0.0 +it 04_res 1 226 2030 0.0 0.0 +it 05_nuclear 1 226 2030 0.0 0.0 +it 06_coal 1 226 2030 0.0 0.0 +it 07_gas 1 226 2030 0.0 0.0 +it 08_non-res 1 226 2030 0.0 0.0 +it 09_hydro_pump 1 226 2030 0.0 0.0 +it 01_solar 1 227 2030 1.0 0.0 +it 02_wind_on 1 227 2030 1.0 0.0 +it 03_wind_off 1 227 2030 1.0 0.0 +it 04_res 1 227 2030 0.0 0.0 +it 05_nuclear 1 227 2030 0.0 0.0 +it 06_coal 1 227 2030 0.0 0.0 +it 07_gas 1 227 2030 0.0 0.0 +it 08_non-res 1 227 2030 0.0 0.0 +it 09_hydro_pump 1 227 2030 0.0 0.0 +it 01_solar 1 228 2030 1.0 0.0 +it 02_wind_on 1 228 2030 1.0 0.0 +it 03_wind_off 1 228 2030 1.0 0.0 +it 04_res 1 228 2030 0.0 0.0 +it 05_nuclear 1 228 2030 0.0 0.0 +it 06_coal 1 228 2030 0.0 0.0 +it 07_gas 1 228 2030 0.0 0.0 +it 08_non-res 1 228 2030 0.0 0.0 +it 09_hydro_pump 1 228 2030 0.0 0.0 +it 01_solar 1 229 2030 1.0 0.0 +it 02_wind_on 1 229 2030 1.0 0.0 +it 03_wind_off 1 229 2030 1.0 0.0 +it 04_res 1 229 2030 0.0 0.0 +it 05_nuclear 1 229 2030 0.0 0.0 +it 06_coal 1 229 2030 0.0 0.0 +it 07_gas 1 229 2030 0.0 0.0 +it 08_non-res 1 229 2030 0.0 0.0 +it 09_hydro_pump 1 229 2030 0.0 0.0 +it 01_solar 1 230 2030 1.0 0.0 +it 02_wind_on 1 230 2030 1.0 0.0 +it 03_wind_off 1 230 2030 1.0 0.0 +it 04_res 1 230 2030 1.0 0.0 +it 05_nuclear 1 230 2030 0.0 0.0 +it 06_coal 1 230 2030 0.0 0.0 +it 07_gas 1 230 2030 0.0 0.0 +it 08_non-res 1 230 2030 0.0 0.0 +it 09_hydro_pump 1 230 2030 0.0 0.0 +it 01_solar 1 231 2030 1.0 0.0 +it 02_wind_on 1 231 2030 1.0 0.0 +it 03_wind_off 1 231 2030 1.0 0.0 +it 04_res 1 231 2030 1.0 0.0 +it 05_nuclear 1 231 2030 0.0 0.0 +it 06_coal 1 231 2030 0.0 0.0 +it 07_gas 1 231 2030 0.0 0.0 +it 08_non-res 1 231 2030 0.0 0.0 +it 09_hydro_pump 1 231 2030 0.0 0.0 +it 01_solar 1 232 2030 1.0 0.0 +it 02_wind_on 1 232 2030 1.0 0.0 +it 03_wind_off 1 232 2030 1.0 0.0 +it 04_res 1 232 2030 1.0 0.0 +it 05_nuclear 1 232 2030 0.0 0.0 +it 06_coal 1 232 2030 0.0 0.0 +it 07_gas 1 232 2030 0.0 0.0 +it 08_non-res 1 232 2030 0.0 0.0 +it 09_hydro_pump 1 232 2030 0.0 0.0 +it 01_solar 1 233 2030 1.0 0.0 +it 02_wind_on 1 233 2030 1.0 0.0 +it 03_wind_off 1 233 2030 1.0 0.0 +it 04_res 1 233 2030 1.0 0.0 +it 05_nuclear 1 233 2030 0.0 0.0 +it 06_coal 1 233 2030 0.0 0.0 +it 07_gas 1 233 2030 0.0 0.0 +it 08_non-res 1 233 2030 0.0 0.0 +it 09_hydro_pump 1 233 2030 0.0 0.0 +it 01_solar 1 234 2030 1.0 0.0 +it 02_wind_on 1 234 2030 1.0 0.0 +it 03_wind_off 1 234 2030 1.0 0.0 +it 04_res 1 234 2030 1.0 0.0 +it 05_nuclear 1 234 2030 0.0 0.0 +it 06_coal 1 234 2030 0.0 0.0 +it 07_gas 1 234 2030 0.0 0.0 +it 08_non-res 1 234 2030 0.0 0.0 +it 09_hydro_pump 1 234 2030 0.0 0.0 +it 01_solar 1 235 2030 1.0 0.0 +it 02_wind_on 1 235 2030 1.0 0.0 +it 03_wind_off 1 235 2030 1.0 0.0 +it 04_res 1 235 2030 1.0 0.0 +it 05_nuclear 1 235 2030 0.0 0.0 +it 06_coal 1 235 2030 0.0 0.0 +it 07_gas 1 235 2030 0.0 0.0 +it 08_non-res 1 235 2030 0.0 0.0 +it 09_hydro_pump 1 235 2030 0.0 0.0 +it 01_solar 1 236 2030 1.0 0.0 +it 02_wind_on 1 236 2030 1.0 0.0 +it 03_wind_off 1 236 2030 1.0 0.0 +it 04_res 1 236 2030 1.0 0.0 +it 05_nuclear 1 236 2030 0.0 0.0 +it 06_coal 1 236 2030 0.0 0.0 +it 07_gas 1 236 2030 0.0 0.0 +it 08_non-res 1 236 2030 0.0 0.0 +it 09_hydro_pump 1 236 2030 0.0 0.0 +it 01_solar 1 237 2030 1.0 0.0 +it 02_wind_on 1 237 2030 1.0 0.0 +it 03_wind_off 1 237 2030 1.0 0.0 +it 04_res 1 237 2030 1.0 0.0 +it 05_nuclear 1 237 2030 0.0 0.0 +it 06_coal 1 237 2030 0.0 0.0 +it 07_gas 1 237 2030 0.0 0.0 +it 08_non-res 1 237 2030 0.0 0.0 +it 09_hydro_pump 1 237 2030 0.0 0.0 +it 01_solar 1 238 2030 1.0 0.0 +it 02_wind_on 1 238 2030 1.0 0.0 +it 03_wind_off 1 238 2030 1.0 0.0 +it 04_res 1 238 2030 1.0 0.0 +it 05_nuclear 1 238 2030 0.0 0.0 +it 06_coal 1 238 2030 0.0 0.0 +it 07_gas 1 238 2030 0.0 0.0 +it 08_non-res 1 238 2030 0.0 0.0 +it 09_hydro_pump 1 238 2030 0.0 0.0 +it 01_solar 1 239 2030 1.0 0.0 +it 02_wind_on 1 239 2030 1.0 0.0 +it 03_wind_off 1 239 2030 1.0 0.0 +it 04_res 1 239 2030 1.0 0.0 +it 05_nuclear 1 239 2030 0.0 0.0 +it 06_coal 1 239 2030 0.0 0.0 +it 07_gas 1 239 2030 0.0 0.0 +it 08_non-res 1 239 2030 0.0 0.0 +it 09_hydro_pump 1 239 2030 0.0 0.0 +it 01_solar 1 240 2030 1.0 0.0 +it 02_wind_on 1 240 2030 1.0 0.0 +it 03_wind_off 1 240 2030 1.0 0.0 +it 04_res 1 240 2030 1.0 0.0 +it 05_nuclear 1 240 2030 0.0 0.0 +it 06_coal 1 240 2030 0.0 0.0 +it 07_gas 1 240 2030 0.0 0.0 +it 08_non-res 1 240 2030 0.0 0.0 +it 09_hydro_pump 1 240 2030 0.0 0.0 +it 01_solar 1 241 2030 1.0 0.0 +it 02_wind_on 1 241 2030 1.0 0.0 +it 03_wind_off 1 241 2030 1.0 0.0 +it 04_res 1 241 2030 1.0 0.0 +it 05_nuclear 1 241 2030 0.0 0.0 +it 06_coal 1 241 2030 0.0 0.0 +it 07_gas 1 241 2030 0.0 0.0 +it 08_non-res 1 241 2030 0.0 0.0 +it 09_hydro_pump 1 241 2030 0.0 0.0 +it 01_solar 1 242 2030 1.0 0.0 +it 02_wind_on 1 242 2030 1.0 0.0 +it 03_wind_off 1 242 2030 1.0 0.0 +it 04_res 1 242 2030 1.0 0.0 +it 05_nuclear 1 242 2030 0.0 0.0 +it 06_coal 1 242 2030 0.0 0.0 +it 07_gas 1 242 2030 0.0 0.0 +it 08_non-res 1 242 2030 0.0 0.0 +it 09_hydro_pump 1 242 2030 0.0 0.0 +it 01_solar 1 243 2030 1.0 0.0 +it 02_wind_on 1 243 2030 1.0 0.0 +it 03_wind_off 1 243 2030 1.0 0.0 +it 04_res 1 243 2030 1.0 0.0 +it 05_nuclear 1 243 2030 0.0 0.0 +it 06_coal 1 243 2030 0.0 0.0 +it 07_gas 1 243 2030 0.0 0.0 +it 08_non-res 1 243 2030 0.0 0.0 +it 09_hydro_pump 1 243 2030 0.0 0.0 +it 01_solar 1 244 2030 1.0 0.0 +it 02_wind_on 1 244 2030 1.0 0.0 +it 03_wind_off 1 244 2030 1.0 0.0 +it 04_res 1 244 2030 1.0 0.0 +it 05_nuclear 1 244 2030 0.0 0.0 +it 06_coal 1 244 2030 0.0 0.0 +it 07_gas 1 244 2030 0.0 0.0 +it 08_non-res 1 244 2030 0.0 0.0 +it 09_hydro_pump 1 244 2030 0.0 0.0 +it 01_solar 1 245 2030 1.0 0.0 +it 02_wind_on 1 245 2030 1.0 0.0 +it 03_wind_off 1 245 2030 1.0 0.0 +it 04_res 1 245 2030 1.0 0.0 +it 05_nuclear 1 245 2030 0.0 0.0 +it 06_coal 1 245 2030 0.0 0.0 +it 07_gas 1 245 2030 0.0 0.0 +it 08_non-res 1 245 2030 0.0 0.0 +it 09_hydro_pump 1 245 2030 0.0 0.0 +it 01_solar 1 246 2030 1.0 0.0 +it 02_wind_on 1 246 2030 1.0 0.0 +it 03_wind_off 1 246 2030 1.0 0.0 +it 04_res 1 246 2030 1.0 0.0 +it 05_nuclear 1 246 2030 0.0 0.0 +it 06_coal 1 246 2030 0.0 0.0 +it 07_gas 1 246 2030 0.0 0.0 +it 08_non-res 1 246 2030 0.0 0.0 +it 09_hydro_pump 1 246 2030 0.0 0.0 +it 01_solar 1 247 2030 1.0 0.0 +it 02_wind_on 1 247 2030 1.0 0.0 +it 03_wind_off 1 247 2030 1.0 0.0 +it 04_res 1 247 2030 1.0 0.0 +it 05_nuclear 1 247 2030 0.0 0.0 +it 06_coal 1 247 2030 0.0 0.0 +it 07_gas 1 247 2030 0.0 0.0 +it 08_non-res 1 247 2030 0.0 0.0 +it 09_hydro_pump 1 247 2030 0.0 0.0 +it 01_solar 1 248 2030 1.0 0.0 +it 02_wind_on 1 248 2030 1.0 0.0 +it 03_wind_off 1 248 2030 1.0 0.0 +it 04_res 1 248 2030 1.0 0.0 +it 05_nuclear 1 248 2030 0.0 0.0 +it 06_coal 1 248 2030 0.0 0.0 +it 07_gas 1 248 2030 0.0 0.0 +it 08_non-res 1 248 2030 0.0 0.0 +it 09_hydro_pump 1 248 2030 0.0 0.0 +it 01_solar 1 249 2030 1.0 0.0 +it 02_wind_on 1 249 2030 1.0 0.0 +it 03_wind_off 1 249 2030 1.0 0.0 +it 04_res 1 249 2030 1.0 0.0 +it 05_nuclear 1 249 2030 0.0 0.0 +it 06_coal 1 249 2030 0.0 0.0 +it 07_gas 1 249 2030 0.0 0.0 +it 08_non-res 1 249 2030 0.0 0.0 +it 09_hydro_pump 1 249 2030 0.0 0.0 +it 01_solar 1 250 2030 1.0 0.0 +it 02_wind_on 1 250 2030 1.0 0.0 +it 03_wind_off 1 250 2030 1.0 0.0 +it 04_res 1 250 2030 1.0 0.0 +it 05_nuclear 1 250 2030 1.0 0.0 +it 06_coal 1 250 2030 0.0 0.0 +it 07_gas 1 250 2030 0.0 0.0 +it 08_non-res 1 250 2030 0.0 0.0 +it 09_hydro_pump 1 250 2030 0.0 0.0 +it 01_solar 1 251 2030 1.0 0.0 +it 02_wind_on 1 251 2030 1.0 0.0 +it 03_wind_off 1 251 2030 1.0 0.0 +it 04_res 1 251 2030 1.0 0.0 +it 05_nuclear 1 251 2030 1.0 0.0 +it 06_coal 1 251 2030 0.0 0.0 +it 07_gas 1 251 2030 0.0 0.0 +it 08_non-res 1 251 2030 0.0 0.0 +it 09_hydro_pump 1 251 2030 0.0 0.0 +it 01_solar 1 252 2030 1.0 0.0 +it 02_wind_on 1 252 2030 1.0 0.0 +it 03_wind_off 1 252 2030 1.0 0.0 +it 04_res 1 252 2030 1.0 0.0 +it 05_nuclear 1 252 2030 1.0 0.0 +it 06_coal 1 252 2030 0.0 0.0 +it 07_gas 1 252 2030 0.0 0.0 +it 08_non-res 1 252 2030 0.0 0.0 +it 09_hydro_pump 1 252 2030 0.0 0.0 +it 01_solar 1 253 2030 1.0 0.0 +it 02_wind_on 1 253 2030 1.0 0.0 +it 03_wind_off 1 253 2030 1.0 0.0 +it 04_res 1 253 2030 1.0 0.0 +it 05_nuclear 1 253 2030 1.0 0.0 +it 06_coal 1 253 2030 0.0 0.0 +it 07_gas 1 253 2030 0.0 0.0 +it 08_non-res 1 253 2030 0.0 0.0 +it 09_hydro_pump 1 253 2030 0.0 0.0 +it 01_solar 1 254 2030 1.0 0.0 +it 02_wind_on 1 254 2030 1.0 0.0 +it 03_wind_off 1 254 2030 1.0 0.0 +it 04_res 1 254 2030 1.0 0.0 +it 05_nuclear 1 254 2030 1.0 0.0 +it 06_coal 1 254 2030 0.0 0.0 +it 07_gas 1 254 2030 0.0 0.0 +it 08_non-res 1 254 2030 0.0 0.0 +it 09_hydro_pump 1 254 2030 0.0 0.0 +it 01_solar 1 255 2030 1.0 0.0 +it 02_wind_on 1 255 2030 1.0 0.0 +it 03_wind_off 1 255 2030 1.0 0.0 +it 04_res 1 255 2030 1.0 0.0 +it 05_nuclear 1 255 2030 1.0 0.0 +it 06_coal 1 255 2030 0.0 0.0 +it 07_gas 1 255 2030 0.0 0.0 +it 08_non-res 1 255 2030 0.0 0.0 +it 09_hydro_pump 1 255 2030 0.0 0.0 +it 01_solar 1 256 2030 1.0 0.0 +it 02_wind_on 1 256 2030 1.0 0.0 +it 03_wind_off 1 256 2030 1.0 0.0 +it 04_res 1 256 2030 1.0 0.0 +it 05_nuclear 1 256 2030 1.0 0.0 +it 06_coal 1 256 2030 0.0 0.0 +it 07_gas 1 256 2030 0.0 0.0 +it 08_non-res 1 256 2030 0.0 0.0 +it 09_hydro_pump 1 256 2030 0.0 0.0 +it 01_solar 1 257 2030 1.0 0.0 +it 02_wind_on 1 257 2030 1.0 0.0 +it 03_wind_off 1 257 2030 1.0 0.0 +it 04_res 1 257 2030 1.0 0.0 +it 05_nuclear 1 257 2030 1.0 0.0 +it 06_coal 1 257 2030 0.0 0.0 +it 07_gas 1 257 2030 0.0 0.0 +it 08_non-res 1 257 2030 0.0 0.0 +it 09_hydro_pump 1 257 2030 0.0 0.0 +it 01_solar 1 258 2030 1.0 0.0 +it 02_wind_on 1 258 2030 1.0 0.0 +it 03_wind_off 1 258 2030 1.0 0.0 +it 04_res 1 258 2030 1.0 0.0 +it 05_nuclear 1 258 2030 1.0 0.0 +it 06_coal 1 258 2030 0.0 0.0 +it 07_gas 1 258 2030 0.0 0.0 +it 08_non-res 1 258 2030 0.0 0.0 +it 09_hydro_pump 1 258 2030 0.0 0.0 +it 01_solar 1 259 2030 1.0 0.0 +it 02_wind_on 1 259 2030 1.0 0.0 +it 03_wind_off 1 259 2030 1.0 0.0 +it 04_res 1 259 2030 1.0 0.0 +it 05_nuclear 1 259 2030 1.0 0.0 +it 06_coal 1 259 2030 0.0 0.0 +it 07_gas 1 259 2030 0.0 0.0 +it 08_non-res 1 259 2030 0.0 0.0 +it 09_hydro_pump 1 259 2030 0.0 0.0 +it 01_solar 1 260 2030 1.0 0.0 +it 02_wind_on 1 260 2030 1.0 0.0 +it 03_wind_off 1 260 2030 1.0 0.0 +it 04_res 1 260 2030 1.0 0.0 +it 05_nuclear 1 260 2030 1.0 0.0 +it 06_coal 1 260 2030 0.0 0.0 +it 07_gas 1 260 2030 0.0 0.0 +it 08_non-res 1 260 2030 0.0 0.0 +it 09_hydro_pump 1 260 2030 0.0 0.0 +it 01_solar 1 261 2030 1.0 0.0 +it 02_wind_on 1 261 2030 1.0 0.0 +it 03_wind_off 1 261 2030 1.0 0.0 +it 04_res 1 261 2030 1.0 0.0 +it 05_nuclear 1 261 2030 1.0 0.0 +it 06_coal 1 261 2030 0.0 0.0 +it 07_gas 1 261 2030 0.0 0.0 +it 08_non-res 1 261 2030 0.0 0.0 +it 09_hydro_pump 1 261 2030 0.0 0.0 +it 01_solar 1 262 2030 1.0 0.0 +it 02_wind_on 1 262 2030 1.0 0.0 +it 03_wind_off 1 262 2030 1.0 0.0 +it 04_res 1 262 2030 1.0 0.0 +it 05_nuclear 1 262 2030 1.0 0.0 +it 06_coal 1 262 2030 0.0 0.0 +it 07_gas 1 262 2030 0.0 0.0 +it 08_non-res 1 262 2030 0.0 0.0 +it 09_hydro_pump 1 262 2030 0.0 0.0 +it 01_solar 1 263 2030 1.0 0.0 +it 02_wind_on 1 263 2030 1.0 0.0 +it 03_wind_off 1 263 2030 1.0 0.0 +it 04_res 1 263 2030 1.0 0.0 +it 05_nuclear 1 263 2030 1.0 0.0 +it 06_coal 1 263 2030 0.0 0.0 +it 07_gas 1 263 2030 0.0 0.0 +it 08_non-res 1 263 2030 0.0 0.0 +it 09_hydro_pump 1 263 2030 0.0 0.0 +it 01_solar 1 264 2030 1.0 0.0 +it 02_wind_on 1 264 2030 1.0 0.0 +it 03_wind_off 1 264 2030 1.0 0.0 +it 04_res 1 264 2030 1.0 0.0 +it 05_nuclear 1 264 2030 1.0 0.0 +it 06_coal 1 264 2030 0.0 0.0 +it 07_gas 1 264 2030 0.0 0.0 +it 08_non-res 1 264 2030 0.0 0.0 +it 09_hydro_pump 1 264 2030 0.0 0.0 +it 01_solar 1 265 2030 1.0 0.0 +it 02_wind_on 1 265 2030 1.0 0.0 +it 03_wind_off 1 265 2030 1.0 0.0 +it 04_res 1 265 2030 1.0 0.0 +it 05_nuclear 1 265 2030 1.0 0.0 +it 06_coal 1 265 2030 0.0 0.0 +it 07_gas 1 265 2030 0.0 0.0 +it 08_non-res 1 265 2030 0.0 0.0 +it 09_hydro_pump 1 265 2030 0.0 0.0 +it 01_solar 1 266 2030 1.0 0.0 +it 02_wind_on 1 266 2030 1.0 0.0 +it 03_wind_off 1 266 2030 1.0 0.0 +it 04_res 1 266 2030 1.0 0.0 +it 05_nuclear 1 266 2030 1.0 0.0 +it 06_coal 1 266 2030 0.0 0.0 +it 07_gas 1 266 2030 0.0 0.0 +it 08_non-res 1 266 2030 0.0 0.0 +it 09_hydro_pump 1 266 2030 0.0 0.0 +it 01_solar 1 267 2030 1.0 0.0 +it 02_wind_on 1 267 2030 1.0 0.0 +it 03_wind_off 1 267 2030 1.0 0.0 +it 04_res 1 267 2030 1.0 0.0 +it 05_nuclear 1 267 2030 1.0 0.0 +it 06_coal 1 267 2030 0.0 0.0 +it 07_gas 1 267 2030 0.0 0.0 +it 08_non-res 1 267 2030 0.0 0.0 +it 09_hydro_pump 1 267 2030 0.0 0.0 +it 01_solar 1 268 2030 1.0 0.0 +it 02_wind_on 1 268 2030 1.0 0.0 +it 03_wind_off 1 268 2030 1.0 0.0 +it 04_res 1 268 2030 1.0 0.0 +it 05_nuclear 1 268 2030 1.0 0.0 +it 06_coal 1 268 2030 0.0 0.0 +it 07_gas 1 268 2030 0.0 0.0 +it 08_non-res 1 268 2030 0.0 0.0 +it 09_hydro_pump 1 268 2030 0.0 0.0 +it 01_solar 1 269 2030 1.0 0.0 +it 02_wind_on 1 269 2030 1.0 0.0 +it 03_wind_off 1 269 2030 1.0 0.0 +it 04_res 1 269 2030 1.0 0.0 +it 05_nuclear 1 269 2030 1.0 0.0 +it 06_coal 1 269 2030 0.0 0.0 +it 07_gas 1 269 2030 0.0 0.0 +it 08_non-res 1 269 2030 0.0 0.0 +it 09_hydro_pump 1 269 2030 0.0 0.0 +it 01_solar 1 270 2030 1.0 0.0 +it 02_wind_on 1 270 2030 1.0 0.0 +it 03_wind_off 1 270 2030 1.0 0.0 +it 04_res 1 270 2030 1.0 0.0 +it 05_nuclear 1 270 2030 1.0 0.0 +it 06_coal 1 270 2030 1.0 0.0 +it 07_gas 1 270 2030 0.0 0.0 +it 08_non-res 1 270 2030 0.0 0.0 +it 09_hydro_pump 1 270 2030 0.0 0.0 +it 01_solar 1 271 2030 1.0 0.0 +it 02_wind_on 1 271 2030 1.0 0.0 +it 03_wind_off 1 271 2030 1.0 0.0 +it 04_res 1 271 2030 1.0 0.0 +it 05_nuclear 1 271 2030 1.0 0.0 +it 06_coal 1 271 2030 1.0 0.0 +it 07_gas 1 271 2030 0.0 0.0 +it 08_non-res 1 271 2030 0.0 0.0 +it 09_hydro_pump 1 271 2030 0.0 0.0 +it 01_solar 1 272 2030 1.0 0.0 +it 02_wind_on 1 272 2030 1.0 0.0 +it 03_wind_off 1 272 2030 1.0 0.0 +it 04_res 1 272 2030 1.0 0.0 +it 05_nuclear 1 272 2030 1.0 0.0 +it 06_coal 1 272 2030 1.0 0.0 +it 07_gas 1 272 2030 0.0 0.0 +it 08_non-res 1 272 2030 0.0 0.0 +it 09_hydro_pump 1 272 2030 0.0 0.0 +it 01_solar 1 273 2030 1.0 0.0 +it 02_wind_on 1 273 2030 1.0 0.0 +it 03_wind_off 1 273 2030 1.0 0.0 +it 04_res 1 273 2030 1.0 0.0 +it 05_nuclear 1 273 2030 1.0 0.0 +it 06_coal 1 273 2030 1.0 0.0 +it 07_gas 1 273 2030 0.0 0.0 +it 08_non-res 1 273 2030 0.0 0.0 +it 09_hydro_pump 1 273 2030 0.0 0.0 +it 01_solar 1 274 2030 1.0 0.0 +it 02_wind_on 1 274 2030 1.0 0.0 +it 03_wind_off 1 274 2030 1.0 0.0 +it 04_res 1 274 2030 1.0 0.0 +it 05_nuclear 1 274 2030 1.0 0.0 +it 06_coal 1 274 2030 1.0 0.0 +it 07_gas 1 274 2030 0.0 0.0 +it 08_non-res 1 274 2030 0.0 0.0 +it 09_hydro_pump 1 274 2030 0.0 0.0 +it 01_solar 1 275 2030 1.0 0.0 +it 02_wind_on 1 275 2030 1.0 0.0 +it 03_wind_off 1 275 2030 1.0 0.0 +it 04_res 1 275 2030 1.0 0.0 +it 05_nuclear 1 275 2030 1.0 0.0 +it 06_coal 1 275 2030 1.0 0.0 +it 07_gas 1 275 2030 0.0 0.0 +it 08_non-res 1 275 2030 0.0 0.0 +it 09_hydro_pump 1 275 2030 0.0 0.0 +it 01_solar 1 276 2030 1.0 0.0 +it 02_wind_on 1 276 2030 1.0 0.0 +it 03_wind_off 1 276 2030 1.0 0.0 +it 04_res 1 276 2030 1.0 0.0 +it 05_nuclear 1 276 2030 1.0 0.0 +it 06_coal 1 276 2030 1.0 0.0 +it 07_gas 1 276 2030 0.0 0.0 +it 08_non-res 1 276 2030 0.0 0.0 +it 09_hydro_pump 1 276 2030 0.0 0.0 +it 01_solar 1 277 2030 1.0 0.0 +it 02_wind_on 1 277 2030 1.0 0.0 +it 03_wind_off 1 277 2030 1.0 0.0 +it 04_res 1 277 2030 1.0 0.0 +it 05_nuclear 1 277 2030 1.0 0.0 +it 06_coal 1 277 2030 1.0 0.0 +it 07_gas 1 277 2030 0.0 0.0 +it 08_non-res 1 277 2030 0.0 0.0 +it 09_hydro_pump 1 277 2030 0.0 0.0 +it 01_solar 1 278 2030 1.0 0.0 +it 02_wind_on 1 278 2030 1.0 0.0 +it 03_wind_off 1 278 2030 1.0 0.0 +it 04_res 1 278 2030 1.0 0.0 +it 05_nuclear 1 278 2030 1.0 0.0 +it 06_coal 1 278 2030 1.0 0.0 +it 07_gas 1 278 2030 0.0 0.0 +it 08_non-res 1 278 2030 0.0 0.0 +it 09_hydro_pump 1 278 2030 0.0 0.0 +it 01_solar 1 279 2030 1.0 0.0 +it 02_wind_on 1 279 2030 1.0 0.0 +it 03_wind_off 1 279 2030 1.0 0.0 +it 04_res 1 279 2030 1.0 0.0 +it 05_nuclear 1 279 2030 1.0 0.0 +it 06_coal 1 279 2030 1.0 0.0 +it 07_gas 1 279 2030 0.0 0.0 +it 08_non-res 1 279 2030 0.0 0.0 +it 09_hydro_pump 1 279 2030 0.0 0.0 +it 01_solar 1 280 2030 1.0 0.0 +it 02_wind_on 1 280 2030 1.0 0.0 +it 03_wind_off 1 280 2030 1.0 0.0 +it 04_res 1 280 2030 1.0 0.0 +it 05_nuclear 1 280 2030 1.0 0.0 +it 06_coal 1 280 2030 1.0 0.0 +it 07_gas 1 280 2030 0.0 0.0 +it 08_non-res 1 280 2030 0.0 0.0 +it 09_hydro_pump 1 280 2030 0.0 0.0 +it 01_solar 1 281 2030 1.0 0.0 +it 02_wind_on 1 281 2030 1.0 0.0 +it 03_wind_off 1 281 2030 1.0 0.0 +it 04_res 1 281 2030 1.0 0.0 +it 05_nuclear 1 281 2030 1.0 0.0 +it 06_coal 1 281 2030 1.0 0.0 +it 07_gas 1 281 2030 0.0 0.0 +it 08_non-res 1 281 2030 0.0 0.0 +it 09_hydro_pump 1 281 2030 0.0 0.0 +it 01_solar 1 282 2030 1.0 0.0 +it 02_wind_on 1 282 2030 1.0 0.0 +it 03_wind_off 1 282 2030 1.0 0.0 +it 04_res 1 282 2030 1.0 0.0 +it 05_nuclear 1 282 2030 1.0 0.0 +it 06_coal 1 282 2030 1.0 0.0 +it 07_gas 1 282 2030 0.0 0.0 +it 08_non-res 1 282 2030 0.0 0.0 +it 09_hydro_pump 1 282 2030 0.0 0.0 +it 01_solar 1 283 2030 1.0 0.0 +it 02_wind_on 1 283 2030 1.0 0.0 +it 03_wind_off 1 283 2030 1.0 0.0 +it 04_res 1 283 2030 1.0 0.0 +it 05_nuclear 1 283 2030 1.0 0.0 +it 06_coal 1 283 2030 1.0 0.0 +it 07_gas 1 283 2030 0.0 0.0 +it 08_non-res 1 283 2030 0.0 0.0 +it 09_hydro_pump 1 283 2030 0.0 0.0 +it 01_solar 1 284 2030 1.0 0.0 +it 02_wind_on 1 284 2030 1.0 0.0 +it 03_wind_off 1 284 2030 1.0 0.0 +it 04_res 1 284 2030 1.0 0.0 +it 05_nuclear 1 284 2030 1.0 0.0 +it 06_coal 1 284 2030 1.0 0.0 +it 07_gas 1 284 2030 0.0 0.0 +it 08_non-res 1 284 2030 0.0 0.0 +it 09_hydro_pump 1 284 2030 0.0 0.0 +it 01_solar 1 285 2030 1.0 0.0 +it 02_wind_on 1 285 2030 1.0 0.0 +it 03_wind_off 1 285 2030 1.0 0.0 +it 04_res 1 285 2030 1.0 0.0 +it 05_nuclear 1 285 2030 1.0 0.0 +it 06_coal 1 285 2030 1.0 0.0 +it 07_gas 1 285 2030 0.0 0.0 +it 08_non-res 1 285 2030 0.0 0.0 +it 09_hydro_pump 1 285 2030 0.0 0.0 +it 01_solar 1 286 2030 1.0 0.0 +it 02_wind_on 1 286 2030 1.0 0.0 +it 03_wind_off 1 286 2030 1.0 0.0 +it 04_res 1 286 2030 1.0 0.0 +it 05_nuclear 1 286 2030 1.0 0.0 +it 06_coal 1 286 2030 1.0 0.0 +it 07_gas 1 286 2030 0.0 0.0 +it 08_non-res 1 286 2030 0.0 0.0 +it 09_hydro_pump 1 286 2030 0.0 0.0 +it 01_solar 1 287 2030 1.0 0.0 +it 02_wind_on 1 287 2030 1.0 0.0 +it 03_wind_off 1 287 2030 1.0 0.0 +it 04_res 1 287 2030 1.0 0.0 +it 05_nuclear 1 287 2030 1.0 0.0 +it 06_coal 1 287 2030 1.0 0.0 +it 07_gas 1 287 2030 0.0 0.0 +it 08_non-res 1 287 2030 0.0 0.0 +it 09_hydro_pump 1 287 2030 0.0 0.0 +it 01_solar 1 288 2030 1.0 0.0 +it 02_wind_on 1 288 2030 1.0 0.0 +it 03_wind_off 1 288 2030 1.0 0.0 +it 04_res 1 288 2030 1.0 0.0 +it 05_nuclear 1 288 2030 1.0 0.0 +it 06_coal 1 288 2030 1.0 0.0 +it 07_gas 1 288 2030 0.0 0.0 +it 08_non-res 1 288 2030 0.0 0.0 +it 09_hydro_pump 1 288 2030 0.0 0.0 +it 01_solar 1 289 2030 1.0 0.0 +it 02_wind_on 1 289 2030 1.0 0.0 +it 03_wind_off 1 289 2030 1.0 0.0 +it 04_res 1 289 2030 1.0 0.0 +it 05_nuclear 1 289 2030 1.0 0.0 +it 06_coal 1 289 2030 1.0 0.0 +it 07_gas 1 289 2030 0.0 0.0 +it 08_non-res 1 289 2030 0.0 0.0 +it 09_hydro_pump 1 289 2030 0.0 0.0 +it 01_solar 1 290 2030 1.0 0.0 +it 02_wind_on 1 290 2030 1.0 0.0 +it 03_wind_off 1 290 2030 1.0 0.0 +it 04_res 1 290 2030 1.0 0.0 +it 05_nuclear 1 290 2030 1.0 0.0 +it 06_coal 1 290 2030 1.0 0.0 +it 07_gas 1 290 2030 1.0 0.0 +it 08_non-res 1 290 2030 0.0 0.0 +it 09_hydro_pump 1 290 2030 0.0 0.0 +it 01_solar 1 291 2030 1.0 0.0 +it 02_wind_on 1 291 2030 1.0 0.0 +it 03_wind_off 1 291 2030 1.0 0.0 +it 04_res 1 291 2030 1.0 0.0 +it 05_nuclear 1 291 2030 1.0 0.0 +it 06_coal 1 291 2030 1.0 0.0 +it 07_gas 1 291 2030 1.0 0.0 +it 08_non-res 1 291 2030 0.0 0.0 +it 09_hydro_pump 1 291 2030 0.0 0.0 +it 01_solar 1 292 2030 1.0 0.0 +it 02_wind_on 1 292 2030 1.0 0.0 +it 03_wind_off 1 292 2030 1.0 0.0 +it 04_res 1 292 2030 1.0 0.0 +it 05_nuclear 1 292 2030 1.0 0.0 +it 06_coal 1 292 2030 1.0 0.0 +it 07_gas 1 292 2030 1.0 0.0 +it 08_non-res 1 292 2030 0.0 0.0 +it 09_hydro_pump 1 292 2030 0.0 0.0 +it 01_solar 1 293 2030 1.0 0.0 +it 02_wind_on 1 293 2030 1.0 0.0 +it 03_wind_off 1 293 2030 1.0 0.0 +it 04_res 1 293 2030 1.0 0.0 +it 05_nuclear 1 293 2030 1.0 0.0 +it 06_coal 1 293 2030 1.0 0.0 +it 07_gas 1 293 2030 1.0 0.0 +it 08_non-res 1 293 2030 0.0 0.0 +it 09_hydro_pump 1 293 2030 0.0 0.0 +it 01_solar 1 294 2030 1.0 0.0 +it 02_wind_on 1 294 2030 1.0 0.0 +it 03_wind_off 1 294 2030 1.0 0.0 +it 04_res 1 294 2030 1.0 0.0 +it 05_nuclear 1 294 2030 1.0 0.0 +it 06_coal 1 294 2030 1.0 0.0 +it 07_gas 1 294 2030 1.0 0.0 +it 08_non-res 1 294 2030 0.0 0.0 +it 09_hydro_pump 1 294 2030 0.0 0.0 +it 01_solar 1 295 2030 1.0 0.0 +it 02_wind_on 1 295 2030 1.0 0.0 +it 03_wind_off 1 295 2030 1.0 0.0 +it 04_res 1 295 2030 1.0 0.0 +it 05_nuclear 1 295 2030 1.0 0.0 +it 06_coal 1 295 2030 1.0 0.0 +it 07_gas 1 295 2030 1.0 0.0 +it 08_non-res 1 295 2030 0.0 0.0 +it 09_hydro_pump 1 295 2030 0.0 0.0 +it 01_solar 1 296 2030 1.0 0.0 +it 02_wind_on 1 296 2030 1.0 0.0 +it 03_wind_off 1 296 2030 1.0 0.0 +it 04_res 1 296 2030 1.0 0.0 +it 05_nuclear 1 296 2030 1.0 0.0 +it 06_coal 1 296 2030 1.0 0.0 +it 07_gas 1 296 2030 1.0 0.0 +it 08_non-res 1 296 2030 0.0 0.0 +it 09_hydro_pump 1 296 2030 0.0 0.0 +it 01_solar 1 297 2030 1.0 0.0 +it 02_wind_on 1 297 2030 1.0 0.0 +it 03_wind_off 1 297 2030 1.0 0.0 +it 04_res 1 297 2030 1.0 0.0 +it 05_nuclear 1 297 2030 1.0 0.0 +it 06_coal 1 297 2030 1.0 0.0 +it 07_gas 1 297 2030 1.0 0.0 +it 08_non-res 1 297 2030 0.0 0.0 +it 09_hydro_pump 1 297 2030 0.0 0.0 +it 01_solar 1 298 2030 1.0 0.0 +it 02_wind_on 1 298 2030 1.0 0.0 +it 03_wind_off 1 298 2030 1.0 0.0 +it 04_res 1 298 2030 1.0 0.0 +it 05_nuclear 1 298 2030 1.0 0.0 +it 06_coal 1 298 2030 1.0 0.0 +it 07_gas 1 298 2030 1.0 0.0 +it 08_non-res 1 298 2030 0.0 0.0 +it 09_hydro_pump 1 298 2030 0.0 0.0 +it 01_solar 1 299 2030 1.0 0.0 +it 02_wind_on 1 299 2030 1.0 0.0 +it 03_wind_off 1 299 2030 1.0 0.0 +it 04_res 1 299 2030 1.0 0.0 +it 05_nuclear 1 299 2030 1.0 0.0 +it 06_coal 1 299 2030 1.0 0.0 +it 07_gas 1 299 2030 1.0 0.0 +it 08_non-res 1 299 2030 0.0 0.0 +it 09_hydro_pump 1 299 2030 0.0 0.0 +it 01_solar 1 300 2030 1.0 0.0 +it 02_wind_on 1 300 2030 1.0 0.0 +it 03_wind_off 1 300 2030 1.0 0.0 +it 04_res 1 300 2030 1.0 0.0 +it 05_nuclear 1 300 2030 1.0 0.0 +it 06_coal 1 300 2030 1.0 0.0 +it 07_gas 1 300 2030 1.0 0.0 +it 08_non-res 1 300 2030 0.0 0.0 +it 09_hydro_pump 1 300 2030 0.0 0.0 +it 01_solar 1 301 2030 1.0 0.0 +it 02_wind_on 1 301 2030 1.0 0.0 +it 03_wind_off 1 301 2030 1.0 0.0 +it 04_res 1 301 2030 1.0 0.0 +it 05_nuclear 1 301 2030 1.0 0.0 +it 06_coal 1 301 2030 1.0 0.0 +it 07_gas 1 301 2030 1.0 0.0 +it 08_non-res 1 301 2030 0.0 0.0 +it 09_hydro_pump 1 301 2030 0.0 0.0 +it 01_solar 1 302 2030 1.0 0.0 +it 02_wind_on 1 302 2030 1.0 0.0 +it 03_wind_off 1 302 2030 1.0 0.0 +it 04_res 1 302 2030 1.0 0.0 +it 05_nuclear 1 302 2030 1.0 0.0 +it 06_coal 1 302 2030 1.0 0.0 +it 07_gas 1 302 2030 1.0 0.0 +it 08_non-res 1 302 2030 0.0 0.0 +it 09_hydro_pump 1 302 2030 0.0 0.0 +it 01_solar 1 303 2030 1.0 0.0 +it 02_wind_on 1 303 2030 1.0 0.0 +it 03_wind_off 1 303 2030 1.0 0.0 +it 04_res 1 303 2030 1.0 0.0 +it 05_nuclear 1 303 2030 1.0 0.0 +it 06_coal 1 303 2030 1.0 0.0 +it 07_gas 1 303 2030 1.0 0.0 +it 08_non-res 1 303 2030 0.0 0.0 +it 09_hydro_pump 1 303 2030 0.0 0.0 +it 01_solar 1 304 2030 1.0 0.0 +it 02_wind_on 1 304 2030 1.0 0.0 +it 03_wind_off 1 304 2030 1.0 0.0 +it 04_res 1 304 2030 1.0 0.0 +it 05_nuclear 1 304 2030 1.0 0.0 +it 06_coal 1 304 2030 1.0 0.0 +it 07_gas 1 304 2030 1.0 0.0 +it 08_non-res 1 304 2030 0.0 0.0 +it 09_hydro_pump 1 304 2030 0.0 0.0 +it 01_solar 1 305 2030 1.0 0.0 +it 02_wind_on 1 305 2030 1.0 0.0 +it 03_wind_off 1 305 2030 1.0 0.0 +it 04_res 1 305 2030 1.0 0.0 +it 05_nuclear 1 305 2030 1.0 0.0 +it 06_coal 1 305 2030 1.0 0.0 +it 07_gas 1 305 2030 1.0 0.0 +it 08_non-res 1 305 2030 0.0 0.0 +it 09_hydro_pump 1 305 2030 0.0 0.0 +it 01_solar 1 306 2030 1.0 0.0 +it 02_wind_on 1 306 2030 1.0 0.0 +it 03_wind_off 1 306 2030 1.0 0.0 +it 04_res 1 306 2030 1.0 0.0 +it 05_nuclear 1 306 2030 1.0 0.0 +it 06_coal 1 306 2030 1.0 0.0 +it 07_gas 1 306 2030 1.0 0.0 +it 08_non-res 1 306 2030 0.0 0.0 +it 09_hydro_pump 1 306 2030 0.0 0.0 +it 01_solar 1 307 2030 1.0 0.0 +it 02_wind_on 1 307 2030 1.0 0.0 +it 03_wind_off 1 307 2030 1.0 0.0 +it 04_res 1 307 2030 1.0 0.0 +it 05_nuclear 1 307 2030 1.0 0.0 +it 06_coal 1 307 2030 1.0 0.0 +it 07_gas 1 307 2030 1.0 0.0 +it 08_non-res 1 307 2030 0.0 0.0 +it 09_hydro_pump 1 307 2030 0.0 0.0 +it 01_solar 1 308 2030 1.0 0.0 +it 02_wind_on 1 308 2030 1.0 0.0 +it 03_wind_off 1 308 2030 1.0 0.0 +it 04_res 1 308 2030 1.0 0.0 +it 05_nuclear 1 308 2030 1.0 0.0 +it 06_coal 1 308 2030 1.0 0.0 +it 07_gas 1 308 2030 1.0 0.0 +it 08_non-res 1 308 2030 0.0 0.0 +it 09_hydro_pump 1 308 2030 0.0 0.0 +it 01_solar 1 309 2030 1.0 0.0 +it 02_wind_on 1 309 2030 1.0 0.0 +it 03_wind_off 1 309 2030 1.0 0.0 +it 04_res 1 309 2030 1.0 0.0 +it 05_nuclear 1 309 2030 1.0 0.0 +it 06_coal 1 309 2030 1.0 0.0 +it 07_gas 1 309 2030 1.0 0.0 +it 08_non-res 1 309 2030 0.0 0.0 +it 09_hydro_pump 1 309 2030 0.0 0.0 +it 01_solar 1 310 2030 1.0 0.0 +it 02_wind_on 1 310 2030 1.0 0.0 +it 03_wind_off 1 310 2030 1.0 0.0 +it 04_res 1 310 2030 1.0 0.0 +it 05_nuclear 1 310 2030 1.0 0.0 +it 06_coal 1 310 2030 1.0 0.0 +it 07_gas 1 310 2030 1.0 0.0 +it 08_non-res 1 310 2030 1.0 0.0 +it 09_hydro_pump 1 310 2030 0.0 0.0 +it 01_solar 1 311 2030 1.0 0.0 +it 02_wind_on 1 311 2030 1.0 0.0 +it 03_wind_off 1 311 2030 1.0 0.0 +it 04_res 1 311 2030 1.0 0.0 +it 05_nuclear 1 311 2030 1.0 0.0 +it 06_coal 1 311 2030 1.0 0.0 +it 07_gas 1 311 2030 1.0 0.0 +it 08_non-res 1 311 2030 1.0 0.0 +it 09_hydro_pump 1 311 2030 0.0 0.0 +it 01_solar 1 312 2030 1.0 0.0 +it 02_wind_on 1 312 2030 1.0 0.0 +it 03_wind_off 1 312 2030 1.0 0.0 +it 04_res 1 312 2030 1.0 0.0 +it 05_nuclear 1 312 2030 1.0 0.0 +it 06_coal 1 312 2030 1.0 0.0 +it 07_gas 1 312 2030 1.0 0.0 +it 08_non-res 1 312 2030 1.0 0.0 +it 09_hydro_pump 1 312 2030 0.0 0.0 +it 01_solar 1 313 2030 1.0 0.0 +it 02_wind_on 1 313 2030 1.0 0.0 +it 03_wind_off 1 313 2030 1.0 0.0 +it 04_res 1 313 2030 1.0 0.0 +it 05_nuclear 1 313 2030 1.0 0.0 +it 06_coal 1 313 2030 1.0 0.0 +it 07_gas 1 313 2030 1.0 0.0 +it 08_non-res 1 313 2030 1.0 0.0 +it 09_hydro_pump 1 313 2030 0.0 0.0 +it 01_solar 1 314 2030 1.0 0.0 +it 02_wind_on 1 314 2030 1.0 0.0 +it 03_wind_off 1 314 2030 1.0 0.0 +it 04_res 1 314 2030 1.0 0.0 +it 05_nuclear 1 314 2030 1.0 0.0 +it 06_coal 1 314 2030 1.0 0.0 +it 07_gas 1 314 2030 1.0 0.0 +it 08_non-res 1 314 2030 1.0 0.0 +it 09_hydro_pump 1 314 2030 0.0 0.0 +it 01_solar 1 315 2030 1.0 0.0 +it 02_wind_on 1 315 2030 1.0 0.0 +it 03_wind_off 1 315 2030 1.0 0.0 +it 04_res 1 315 2030 1.0 0.0 +it 05_nuclear 1 315 2030 1.0 0.0 +it 06_coal 1 315 2030 1.0 0.0 +it 07_gas 1 315 2030 1.0 0.0 +it 08_non-res 1 315 2030 1.0 0.0 +it 09_hydro_pump 1 315 2030 0.0 0.0 +it 01_solar 1 316 2030 1.0 0.0 +it 02_wind_on 1 316 2030 1.0 0.0 +it 03_wind_off 1 316 2030 1.0 0.0 +it 04_res 1 316 2030 1.0 0.0 +it 05_nuclear 1 316 2030 1.0 0.0 +it 06_coal 1 316 2030 1.0 0.0 +it 07_gas 1 316 2030 1.0 0.0 +it 08_non-res 1 316 2030 1.0 0.0 +it 09_hydro_pump 1 316 2030 0.0 0.0 +it 01_solar 1 317 2030 1.0 0.0 +it 02_wind_on 1 317 2030 1.0 0.0 +it 03_wind_off 1 317 2030 1.0 0.0 +it 04_res 1 317 2030 1.0 0.0 +it 05_nuclear 1 317 2030 1.0 0.0 +it 06_coal 1 317 2030 1.0 0.0 +it 07_gas 1 317 2030 1.0 0.0 +it 08_non-res 1 317 2030 1.0 0.0 +it 09_hydro_pump 1 317 2030 0.0 0.0 +it 01_solar 1 318 2030 1.0 0.0 +it 02_wind_on 1 318 2030 1.0 0.0 +it 03_wind_off 1 318 2030 1.0 0.0 +it 04_res 1 318 2030 1.0 0.0 +it 05_nuclear 1 318 2030 1.0 0.0 +it 06_coal 1 318 2030 1.0 0.0 +it 07_gas 1 318 2030 1.0 0.0 +it 08_non-res 1 318 2030 1.0 0.0 +it 09_hydro_pump 1 318 2030 0.0 0.0 +it 01_solar 1 319 2030 1.0 0.0 +it 02_wind_on 1 319 2030 1.0 0.0 +it 03_wind_off 1 319 2030 1.0 0.0 +it 04_res 1 319 2030 1.0 0.0 +it 05_nuclear 1 319 2030 1.0 0.0 +it 06_coal 1 319 2030 1.0 0.0 +it 07_gas 1 319 2030 1.0 0.0 +it 08_non-res 1 319 2030 1.0 0.0 +it 09_hydro_pump 1 319 2030 0.0 0.0 +it 01_solar 1 320 2030 1.0 0.0 +it 02_wind_on 1 320 2030 1.0 0.0 +it 03_wind_off 1 320 2030 1.0 0.0 +it 04_res 1 320 2030 1.0 0.0 +it 05_nuclear 1 320 2030 1.0 0.0 +it 06_coal 1 320 2030 1.0 0.0 +it 07_gas 1 320 2030 1.0 0.0 +it 08_non-res 1 320 2030 1.0 0.0 +it 09_hydro_pump 1 320 2030 0.0 0.0 +it 01_solar 1 321 2030 1.0 0.0 +it 02_wind_on 1 321 2030 1.0 0.0 +it 03_wind_off 1 321 2030 1.0 0.0 +it 04_res 1 321 2030 1.0 0.0 +it 05_nuclear 1 321 2030 1.0 0.0 +it 06_coal 1 321 2030 1.0 0.0 +it 07_gas 1 321 2030 1.0 0.0 +it 08_non-res 1 321 2030 1.0 0.0 +it 09_hydro_pump 1 321 2030 0.0 0.0 +it 01_solar 1 322 2030 1.0 0.0 +it 02_wind_on 1 322 2030 1.0 0.0 +it 03_wind_off 1 322 2030 1.0 0.0 +it 04_res 1 322 2030 1.0 0.0 +it 05_nuclear 1 322 2030 1.0 0.0 +it 06_coal 1 322 2030 1.0 0.0 +it 07_gas 1 322 2030 1.0 0.0 +it 08_non-res 1 322 2030 1.0 0.0 +it 09_hydro_pump 1 322 2030 0.0 0.0 +it 01_solar 1 323 2030 1.0 0.0 +it 02_wind_on 1 323 2030 1.0 0.0 +it 03_wind_off 1 323 2030 1.0 0.0 +it 04_res 1 323 2030 1.0 0.0 +it 05_nuclear 1 323 2030 1.0 0.0 +it 06_coal 1 323 2030 1.0 0.0 +it 07_gas 1 323 2030 1.0 0.0 +it 08_non-res 1 323 2030 1.0 0.0 +it 09_hydro_pump 1 323 2030 0.0 0.0 +it 01_solar 1 324 2030 1.0 0.0 +it 02_wind_on 1 324 2030 1.0 0.0 +it 03_wind_off 1 324 2030 1.0 0.0 +it 04_res 1 324 2030 1.0 0.0 +it 05_nuclear 1 324 2030 1.0 0.0 +it 06_coal 1 324 2030 1.0 0.0 +it 07_gas 1 324 2030 1.0 0.0 +it 08_non-res 1 324 2030 1.0 0.0 +it 09_hydro_pump 1 324 2030 0.0 0.0 +it 01_solar 1 325 2030 1.0 0.0 +it 02_wind_on 1 325 2030 1.0 0.0 +it 03_wind_off 1 325 2030 1.0 0.0 +it 04_res 1 325 2030 1.0 0.0 +it 05_nuclear 1 325 2030 1.0 0.0 +it 06_coal 1 325 2030 1.0 0.0 +it 07_gas 1 325 2030 1.0 0.0 +it 08_non-res 1 325 2030 1.0 0.0 +it 09_hydro_pump 1 325 2030 0.0 0.0 +it 01_solar 1 326 2030 1.0 0.0 +it 02_wind_on 1 326 2030 1.0 0.0 +it 03_wind_off 1 326 2030 1.0 0.0 +it 04_res 1 326 2030 1.0 0.0 +it 05_nuclear 1 326 2030 1.0 0.0 +it 06_coal 1 326 2030 1.0 0.0 +it 07_gas 1 326 2030 1.0 0.0 +it 08_non-res 1 326 2030 1.0 0.0 +it 09_hydro_pump 1 326 2030 0.0 0.0 +it 01_solar 1 327 2030 1.0 0.0 +it 02_wind_on 1 327 2030 1.0 0.0 +it 03_wind_off 1 327 2030 1.0 0.0 +it 04_res 1 327 2030 1.0 0.0 +it 05_nuclear 1 327 2030 1.0 0.0 +it 06_coal 1 327 2030 1.0 0.0 +it 07_gas 1 327 2030 1.0 0.0 +it 08_non-res 1 327 2030 1.0 0.0 +it 09_hydro_pump 1 327 2030 0.0 0.0 +it 01_solar 1 328 2030 1.0 0.0 +it 02_wind_on 1 328 2030 1.0 0.0 +it 03_wind_off 1 328 2030 1.0 0.0 +it 04_res 1 328 2030 1.0 0.0 +it 05_nuclear 1 328 2030 1.0 0.0 +it 06_coal 1 328 2030 1.0 0.0 +it 07_gas 1 328 2030 1.0 0.0 +it 08_non-res 1 328 2030 1.0 0.0 +it 09_hydro_pump 1 328 2030 0.0 0.0 +it 01_solar 1 329 2030 1.0 0.0 +it 02_wind_on 1 329 2030 1.0 0.0 +it 03_wind_off 1 329 2030 1.0 0.0 +it 04_res 1 329 2030 1.0 0.0 +it 05_nuclear 1 329 2030 1.0 0.0 +it 06_coal 1 329 2030 1.0 0.0 +it 07_gas 1 329 2030 1.0 0.0 +it 08_non-res 1 329 2030 1.0 0.0 +it 09_hydro_pump 1 329 2030 0.0 0.0 +it 01_solar 1 330 2030 1.0 0.0 +it 02_wind_on 1 330 2030 1.0 0.0 +it 03_wind_off 1 330 2030 1.0 0.0 +it 04_res 1 330 2030 1.0 0.0 +it 05_nuclear 1 330 2030 1.0 0.0 +it 06_coal 1 330 2030 1.0 0.0 +it 07_gas 1 330 2030 1.0 0.0 +it 08_non-res 1 330 2030 1.0 0.0 +it 09_hydro_pump 1 330 2030 1.0 0.0 +it 01_solar 1 331 2030 1.0 0.0 +it 02_wind_on 1 331 2030 1.0 0.0 +it 03_wind_off 1 331 2030 1.0 0.0 +it 04_res 1 331 2030 1.0 0.0 +it 05_nuclear 1 331 2030 1.0 0.0 +it 06_coal 1 331 2030 1.0 0.0 +it 07_gas 1 331 2030 1.0 0.0 +it 08_non-res 1 331 2030 1.0 0.0 +it 09_hydro_pump 1 331 2030 1.0 0.0 +it 01_solar 1 332 2030 1.0 0.0 +it 02_wind_on 1 332 2030 1.0 0.0 +it 03_wind_off 1 332 2030 1.0 0.0 +it 04_res 1 332 2030 1.0 0.0 +it 05_nuclear 1 332 2030 1.0 0.0 +it 06_coal 1 332 2030 1.0 0.0 +it 07_gas 1 332 2030 1.0 0.0 +it 08_non-res 1 332 2030 1.0 0.0 +it 09_hydro_pump 1 332 2030 1.0 0.0 +it 01_solar 1 333 2030 1.0 0.0 +it 02_wind_on 1 333 2030 1.0 0.0 +it 03_wind_off 1 333 2030 1.0 0.0 +it 04_res 1 333 2030 1.0 0.0 +it 05_nuclear 1 333 2030 1.0 0.0 +it 06_coal 1 333 2030 1.0 0.0 +it 07_gas 1 333 2030 1.0 0.0 +it 08_non-res 1 333 2030 1.0 0.0 +it 09_hydro_pump 1 333 2030 1.0 0.0 +it 01_solar 1 334 2030 1.0 0.0 +it 02_wind_on 1 334 2030 1.0 0.0 +it 03_wind_off 1 334 2030 1.0 0.0 +it 04_res 1 334 2030 1.0 0.0 +it 05_nuclear 1 334 2030 1.0 0.0 +it 06_coal 1 334 2030 1.0 0.0 +it 07_gas 1 334 2030 1.0 0.0 +it 08_non-res 1 334 2030 1.0 0.0 +it 09_hydro_pump 1 334 2030 1.0 0.0 +it 01_solar 1 335 2030 1.0 0.0 +it 02_wind_on 1 335 2030 1.0 0.0 +it 03_wind_off 1 335 2030 1.0 0.0 +it 04_res 1 335 2030 1.0 0.0 +it 05_nuclear 1 335 2030 1.0 0.0 +it 06_coal 1 335 2030 1.0 0.0 +it 07_gas 1 335 2030 1.0 0.0 +it 08_non-res 1 335 2030 1.0 0.0 +it 09_hydro_pump 1 335 2030 1.0 0.0 +it 01_solar 1 336 2030 1.0 0.0 +it 02_wind_on 1 336 2030 1.0 0.0 +it 03_wind_off 1 336 2030 1.0 0.0 +it 04_res 1 336 2030 1.0 0.0 +it 05_nuclear 1 336 2030 1.0 0.0 +it 06_coal 1 336 2030 1.0 0.0 +it 07_gas 1 336 2030 1.0 0.0 +it 08_non-res 1 336 2030 1.0 0.0 +it 09_hydro_pump 1 336 2030 1.0 0.0 +de 01_solar 2 1 2030 0.0 0.0 +de 02_wind_on 2 1 2030 0.0 0.0 +de 03_wind_off 2 1 2030 0.0 0.0 +de 04_res 2 1 2030 0.0 0.0 +de 05_nuclear 2 1 2030 0.0 0.0 +de 06_coal 2 1 2030 0.0 0.0 +de 07_gas 2 1 2030 0.0 0.0 +de 08_non-res 2 1 2030 0.0 0.0 +de 09_hydro_pump 2 1 2030 0.0 0.0 +de 01_solar 2 2 2030 1.0 0.0 +de 02_wind_on 2 2 2030 0.0 0.0 +de 03_wind_off 2 2 2030 0.0 0.0 +de 04_res 2 2 2030 0.0 0.0 +de 05_nuclear 2 2 2030 0.0 0.0 +de 06_coal 2 2 2030 0.0 0.0 +de 07_gas 2 2 2030 0.0 0.0 +de 08_non-res 2 2 2030 0.0 0.0 +de 09_hydro_pump 2 2 2030 0.0 0.0 +de 01_solar 2 3 2030 1.0 0.0 +de 02_wind_on 2 3 2030 0.0 0.0 +de 03_wind_off 2 3 2030 0.0 0.0 +de 04_res 2 3 2030 0.0 0.0 +de 05_nuclear 2 3 2030 0.0 0.0 +de 06_coal 2 3 2030 0.0 0.0 +de 07_gas 2 3 2030 0.0 0.0 +de 08_non-res 2 3 2030 0.0 0.0 +de 09_hydro_pump 2 3 2030 0.0 0.0 +de 01_solar 2 4 2030 1.0 0.0 +de 02_wind_on 2 4 2030 0.0 0.0 +de 03_wind_off 2 4 2030 0.0 0.0 +de 04_res 2 4 2030 0.0 0.0 +de 05_nuclear 2 4 2030 0.0 0.0 +de 06_coal 2 4 2030 0.0 0.0 +de 07_gas 2 4 2030 0.0 0.0 +de 08_non-res 2 4 2030 0.0 0.0 +de 09_hydro_pump 2 4 2030 0.0 0.0 +de 01_solar 2 5 2030 1.0 0.0 +de 02_wind_on 2 5 2030 0.0 0.0 +de 03_wind_off 2 5 2030 0.0 0.0 +de 04_res 2 5 2030 0.0 0.0 +de 05_nuclear 2 5 2030 0.0 0.0 +de 06_coal 2 5 2030 0.0 0.0 +de 07_gas 2 5 2030 0.0 0.0 +de 08_non-res 2 5 2030 0.0 0.0 +de 09_hydro_pump 2 5 2030 0.0 0.0 +de 01_solar 2 6 2030 1.0 0.0 +de 02_wind_on 2 6 2030 0.0 0.0 +de 03_wind_off 2 6 2030 0.0 0.0 +de 04_res 2 6 2030 0.0 0.0 +de 05_nuclear 2 6 2030 0.0 0.0 +de 06_coal 2 6 2030 0.0 0.0 +de 07_gas 2 6 2030 0.0 0.0 +de 08_non-res 2 6 2030 0.0 0.0 +de 09_hydro_pump 2 6 2030 0.0 0.0 +de 01_solar 2 7 2030 1.0 0.0 +de 02_wind_on 2 7 2030 0.0 0.0 +de 03_wind_off 2 7 2030 0.0 0.0 +de 04_res 2 7 2030 0.0 0.0 +de 05_nuclear 2 7 2030 0.0 0.0 +de 06_coal 2 7 2030 0.0 0.0 +de 07_gas 2 7 2030 0.0 0.0 +de 08_non-res 2 7 2030 0.0 0.0 +de 09_hydro_pump 2 7 2030 0.0 0.0 +de 01_solar 2 8 2030 1.0 0.0 +de 02_wind_on 2 8 2030 0.0 0.0 +de 03_wind_off 2 8 2030 0.0 0.0 +de 04_res 2 8 2030 0.0 0.0 +de 05_nuclear 2 8 2030 0.0 0.0 +de 06_coal 2 8 2030 0.0 0.0 +de 07_gas 2 8 2030 0.0 0.0 +de 08_non-res 2 8 2030 0.0 0.0 +de 09_hydro_pump 2 8 2030 0.0 0.0 +de 01_solar 2 9 2030 1.0 0.0 +de 02_wind_on 2 9 2030 0.0 0.0 +de 03_wind_off 2 9 2030 0.0 0.0 +de 04_res 2 9 2030 0.0 0.0 +de 05_nuclear 2 9 2030 0.0 0.0 +de 06_coal 2 9 2030 0.0 0.0 +de 07_gas 2 9 2030 0.0 0.0 +de 08_non-res 2 9 2030 0.0 0.0 +de 09_hydro_pump 2 9 2030 0.0 0.0 +de 01_solar 2 10 2030 1.0 0.0 +de 02_wind_on 2 10 2030 0.0 0.0 +de 03_wind_off 2 10 2030 0.0 0.0 +de 04_res 2 10 2030 0.0 0.0 +de 05_nuclear 2 10 2030 0.0 0.0 +de 06_coal 2 10 2030 0.0 0.0 +de 07_gas 2 10 2030 0.0 0.0 +de 08_non-res 2 10 2030 0.0 0.0 +de 09_hydro_pump 2 10 2030 0.0 0.0 +de 01_solar 2 11 2030 1.0 0.0 +de 02_wind_on 2 11 2030 0.0 0.0 +de 03_wind_off 2 11 2030 0.0 0.0 +de 04_res 2 11 2030 0.0 0.0 +de 05_nuclear 2 11 2030 0.0 0.0 +de 06_coal 2 11 2030 0.0 0.0 +de 07_gas 2 11 2030 0.0 0.0 +de 08_non-res 2 11 2030 0.0 0.0 +de 09_hydro_pump 2 11 2030 0.0 0.0 +de 01_solar 2 12 2030 1.0 0.0 +de 02_wind_on 2 12 2030 0.0 0.0 +de 03_wind_off 2 12 2030 0.0 0.0 +de 04_res 2 12 2030 0.0 0.0 +de 05_nuclear 2 12 2030 0.0 0.0 +de 06_coal 2 12 2030 0.0 0.0 +de 07_gas 2 12 2030 0.0 0.0 +de 08_non-res 2 12 2030 0.0 0.0 +de 09_hydro_pump 2 12 2030 0.0 0.0 +de 01_solar 2 13 2030 1.0 0.0 +de 02_wind_on 2 13 2030 0.0 0.0 +de 03_wind_off 2 13 2030 0.0 0.0 +de 04_res 2 13 2030 0.0 0.0 +de 05_nuclear 2 13 2030 0.0 0.0 +de 06_coal 2 13 2030 0.0 0.0 +de 07_gas 2 13 2030 0.0 0.0 +de 08_non-res 2 13 2030 0.0 0.0 +de 09_hydro_pump 2 13 2030 0.0 0.0 +de 01_solar 2 14 2030 1.0 0.0 +de 02_wind_on 2 14 2030 0.0 0.0 +de 03_wind_off 2 14 2030 0.0 0.0 +de 04_res 2 14 2030 0.0 0.0 +de 05_nuclear 2 14 2030 0.0 0.0 +de 06_coal 2 14 2030 0.0 0.0 +de 07_gas 2 14 2030 0.0 0.0 +de 08_non-res 2 14 2030 0.0 0.0 +de 09_hydro_pump 2 14 2030 0.0 0.0 +de 01_solar 2 15 2030 1.0 0.0 +de 02_wind_on 2 15 2030 0.0 0.0 +de 03_wind_off 2 15 2030 0.0 0.0 +de 04_res 2 15 2030 0.0 0.0 +de 05_nuclear 2 15 2030 0.0 0.0 +de 06_coal 2 15 2030 0.0 0.0 +de 07_gas 2 15 2030 0.0 0.0 +de 08_non-res 2 15 2030 0.0 0.0 +de 09_hydro_pump 2 15 2030 0.0 0.0 +de 01_solar 2 16 2030 1.0 0.0 +de 02_wind_on 2 16 2030 0.0 0.0 +de 03_wind_off 2 16 2030 0.0 0.0 +de 04_res 2 16 2030 0.0 0.0 +de 05_nuclear 2 16 2030 0.0 0.0 +de 06_coal 2 16 2030 0.0 0.0 +de 07_gas 2 16 2030 0.0 0.0 +de 08_non-res 2 16 2030 0.0 0.0 +de 09_hydro_pump 2 16 2030 0.0 0.0 +de 01_solar 2 17 2030 1.0 0.0 +de 02_wind_on 2 17 2030 0.0 0.0 +de 03_wind_off 2 17 2030 0.0 0.0 +de 04_res 2 17 2030 0.0 0.0 +de 05_nuclear 2 17 2030 0.0 0.0 +de 06_coal 2 17 2030 0.0 0.0 +de 07_gas 2 17 2030 0.0 0.0 +de 08_non-res 2 17 2030 0.0 0.0 +de 09_hydro_pump 2 17 2030 0.0 0.0 +de 01_solar 2 18 2030 1.0 0.0 +de 02_wind_on 2 18 2030 0.0 0.0 +de 03_wind_off 2 18 2030 0.0 0.0 +de 04_res 2 18 2030 0.0 0.0 +de 05_nuclear 2 18 2030 0.0 0.0 +de 06_coal 2 18 2030 0.0 0.0 +de 07_gas 2 18 2030 0.0 0.0 +de 08_non-res 2 18 2030 0.0 0.0 +de 09_hydro_pump 2 18 2030 0.0 0.0 +de 01_solar 2 19 2030 1.0 0.0 +de 02_wind_on 2 19 2030 0.0 0.0 +de 03_wind_off 2 19 2030 0.0 0.0 +de 04_res 2 19 2030 0.0 0.0 +de 05_nuclear 2 19 2030 0.0 0.0 +de 06_coal 2 19 2030 0.0 0.0 +de 07_gas 2 19 2030 0.0 0.0 +de 08_non-res 2 19 2030 0.0 0.0 +de 09_hydro_pump 2 19 2030 0.0 0.0 +de 01_solar 2 20 2030 1.0 0.0 +de 02_wind_on 2 20 2030 0.0 0.0 +de 03_wind_off 2 20 2030 0.0 0.0 +de 04_res 2 20 2030 0.0 0.0 +de 05_nuclear 2 20 2030 0.0 0.0 +de 06_coal 2 20 2030 0.0 0.0 +de 07_gas 2 20 2030 0.0 0.0 +de 08_non-res 2 20 2030 0.0 0.0 +de 09_hydro_pump 2 20 2030 0.0 0.0 +de 01_solar 2 21 2030 1.0 0.0 +de 02_wind_on 2 21 2030 0.0 0.0 +de 03_wind_off 2 21 2030 0.0 0.0 +de 04_res 2 21 2030 0.0 0.0 +de 05_nuclear 2 21 2030 0.0 0.0 +de 06_coal 2 21 2030 0.0 0.0 +de 07_gas 2 21 2030 0.0 0.0 +de 08_non-res 2 21 2030 0.0 0.0 +de 09_hydro_pump 2 21 2030 0.0 0.0 +de 01_solar 2 22 2030 1.0 0.0 +de 02_wind_on 2 22 2030 1.0 0.0 +de 03_wind_off 2 22 2030 0.0 0.0 +de 04_res 2 22 2030 0.0 0.0 +de 05_nuclear 2 22 2030 0.0 0.0 +de 06_coal 2 22 2030 0.0 0.0 +de 07_gas 2 22 2030 0.0 0.0 +de 08_non-res 2 22 2030 0.0 0.0 +de 09_hydro_pump 2 22 2030 0.0 0.0 +de 01_solar 2 23 2030 1.0 0.0 +de 02_wind_on 2 23 2030 1.0 0.0 +de 03_wind_off 2 23 2030 0.0 0.0 +de 04_res 2 23 2030 0.0 0.0 +de 05_nuclear 2 23 2030 0.0 0.0 +de 06_coal 2 23 2030 0.0 0.0 +de 07_gas 2 23 2030 0.0 0.0 +de 08_non-res 2 23 2030 0.0 0.0 +de 09_hydro_pump 2 23 2030 0.0 0.0 +de 01_solar 2 24 2030 1.0 0.0 +de 02_wind_on 2 24 2030 1.0 0.0 +de 03_wind_off 2 24 2030 0.0 0.0 +de 04_res 2 24 2030 0.0 0.0 +de 05_nuclear 2 24 2030 0.0 0.0 +de 06_coal 2 24 2030 0.0 0.0 +de 07_gas 2 24 2030 0.0 0.0 +de 08_non-res 2 24 2030 0.0 0.0 +de 09_hydro_pump 2 24 2030 0.0 0.0 +de 01_solar 2 25 2030 1.0 0.0 +de 02_wind_on 2 25 2030 1.0 0.0 +de 03_wind_off 2 25 2030 0.0 0.0 +de 04_res 2 25 2030 0.0 0.0 +de 05_nuclear 2 25 2030 0.0 0.0 +de 06_coal 2 25 2030 0.0 0.0 +de 07_gas 2 25 2030 0.0 0.0 +de 08_non-res 2 25 2030 0.0 0.0 +de 09_hydro_pump 2 25 2030 0.0 0.0 +de 01_solar 2 26 2030 1.0 0.0 +de 02_wind_on 2 26 2030 1.0 0.0 +de 03_wind_off 2 26 2030 0.0 0.0 +de 04_res 2 26 2030 0.0 0.0 +de 05_nuclear 2 26 2030 0.0 0.0 +de 06_coal 2 26 2030 0.0 0.0 +de 07_gas 2 26 2030 0.0 0.0 +de 08_non-res 2 26 2030 0.0 0.0 +de 09_hydro_pump 2 26 2030 0.0 0.0 +de 01_solar 2 27 2030 1.0 0.0 +de 02_wind_on 2 27 2030 1.0 0.0 +de 03_wind_off 2 27 2030 0.0 0.0 +de 04_res 2 27 2030 0.0 0.0 +de 05_nuclear 2 27 2030 0.0 0.0 +de 06_coal 2 27 2030 0.0 0.0 +de 07_gas 2 27 2030 0.0 0.0 +de 08_non-res 2 27 2030 0.0 0.0 +de 09_hydro_pump 2 27 2030 0.0 0.0 +de 01_solar 2 28 2030 1.0 0.0 +de 02_wind_on 2 28 2030 1.0 0.0 +de 03_wind_off 2 28 2030 0.0 0.0 +de 04_res 2 28 2030 0.0 0.0 +de 05_nuclear 2 28 2030 0.0 0.0 +de 06_coal 2 28 2030 0.0 0.0 +de 07_gas 2 28 2030 0.0 0.0 +de 08_non-res 2 28 2030 0.0 0.0 +de 09_hydro_pump 2 28 2030 0.0 0.0 +de 01_solar 2 29 2030 1.0 0.0 +de 02_wind_on 2 29 2030 1.0 0.0 +de 03_wind_off 2 29 2030 0.0 0.0 +de 04_res 2 29 2030 0.0 0.0 +de 05_nuclear 2 29 2030 0.0 0.0 +de 06_coal 2 29 2030 0.0 0.0 +de 07_gas 2 29 2030 0.0 0.0 +de 08_non-res 2 29 2030 0.0 0.0 +de 09_hydro_pump 2 29 2030 0.0 0.0 +de 01_solar 2 30 2030 1.0 0.0 +de 02_wind_on 2 30 2030 1.0 0.0 +de 03_wind_off 2 30 2030 0.0 0.0 +de 04_res 2 30 2030 0.0 0.0 +de 05_nuclear 2 30 2030 0.0 0.0 +de 06_coal 2 30 2030 0.0 0.0 +de 07_gas 2 30 2030 0.0 0.0 +de 08_non-res 2 30 2030 0.0 0.0 +de 09_hydro_pump 2 30 2030 0.0 0.0 +de 01_solar 2 31 2030 1.0 0.0 +de 02_wind_on 2 31 2030 1.0 0.0 +de 03_wind_off 2 31 2030 0.0 0.0 +de 04_res 2 31 2030 0.0 0.0 +de 05_nuclear 2 31 2030 0.0 0.0 +de 06_coal 2 31 2030 0.0 0.0 +de 07_gas 2 31 2030 0.0 0.0 +de 08_non-res 2 31 2030 0.0 0.0 +de 09_hydro_pump 2 31 2030 0.0 0.0 +de 01_solar 2 32 2030 1.0 0.0 +de 02_wind_on 2 32 2030 1.0 0.0 +de 03_wind_off 2 32 2030 0.0 0.0 +de 04_res 2 32 2030 0.0 0.0 +de 05_nuclear 2 32 2030 0.0 0.0 +de 06_coal 2 32 2030 0.0 0.0 +de 07_gas 2 32 2030 0.0 0.0 +de 08_non-res 2 32 2030 0.0 0.0 +de 09_hydro_pump 2 32 2030 0.0 0.0 +de 01_solar 2 33 2030 1.0 0.0 +de 02_wind_on 2 33 2030 1.0 0.0 +de 03_wind_off 2 33 2030 0.0 0.0 +de 04_res 2 33 2030 0.0 0.0 +de 05_nuclear 2 33 2030 0.0 0.0 +de 06_coal 2 33 2030 0.0 0.0 +de 07_gas 2 33 2030 0.0 0.0 +de 08_non-res 2 33 2030 0.0 0.0 +de 09_hydro_pump 2 33 2030 0.0 0.0 +de 01_solar 2 34 2030 1.0 0.0 +de 02_wind_on 2 34 2030 1.0 0.0 +de 03_wind_off 2 34 2030 0.0 0.0 +de 04_res 2 34 2030 0.0 0.0 +de 05_nuclear 2 34 2030 0.0 0.0 +de 06_coal 2 34 2030 0.0 0.0 +de 07_gas 2 34 2030 0.0 0.0 +de 08_non-res 2 34 2030 0.0 0.0 +de 09_hydro_pump 2 34 2030 0.0 0.0 +de 01_solar 2 35 2030 1.0 0.0 +de 02_wind_on 2 35 2030 1.0 0.0 +de 03_wind_off 2 35 2030 0.0 0.0 +de 04_res 2 35 2030 0.0 0.0 +de 05_nuclear 2 35 2030 0.0 0.0 +de 06_coal 2 35 2030 0.0 0.0 +de 07_gas 2 35 2030 0.0 0.0 +de 08_non-res 2 35 2030 0.0 0.0 +de 09_hydro_pump 2 35 2030 0.0 0.0 +de 01_solar 2 36 2030 1.0 0.0 +de 02_wind_on 2 36 2030 1.0 0.0 +de 03_wind_off 2 36 2030 0.0 0.0 +de 04_res 2 36 2030 0.0 0.0 +de 05_nuclear 2 36 2030 0.0 0.0 +de 06_coal 2 36 2030 0.0 0.0 +de 07_gas 2 36 2030 0.0 0.0 +de 08_non-res 2 36 2030 0.0 0.0 +de 09_hydro_pump 2 36 2030 0.0 0.0 +de 01_solar 2 37 2030 1.0 0.0 +de 02_wind_on 2 37 2030 1.0 0.0 +de 03_wind_off 2 37 2030 0.0 0.0 +de 04_res 2 37 2030 0.0 0.0 +de 05_nuclear 2 37 2030 0.0 0.0 +de 06_coal 2 37 2030 0.0 0.0 +de 07_gas 2 37 2030 0.0 0.0 +de 08_non-res 2 37 2030 0.0 0.0 +de 09_hydro_pump 2 37 2030 0.0 0.0 +de 01_solar 2 38 2030 1.0 0.0 +de 02_wind_on 2 38 2030 1.0 0.0 +de 03_wind_off 2 38 2030 0.0 0.0 +de 04_res 2 38 2030 0.0 0.0 +de 05_nuclear 2 38 2030 0.0 0.0 +de 06_coal 2 38 2030 0.0 0.0 +de 07_gas 2 38 2030 0.0 0.0 +de 08_non-res 2 38 2030 0.0 0.0 +de 09_hydro_pump 2 38 2030 0.0 0.0 +de 01_solar 2 39 2030 1.0 0.0 +de 02_wind_on 2 39 2030 1.0 0.0 +de 03_wind_off 2 39 2030 0.0 0.0 +de 04_res 2 39 2030 0.0 0.0 +de 05_nuclear 2 39 2030 0.0 0.0 +de 06_coal 2 39 2030 0.0 0.0 +de 07_gas 2 39 2030 0.0 0.0 +de 08_non-res 2 39 2030 0.0 0.0 +de 09_hydro_pump 2 39 2030 0.0 0.0 +de 01_solar 2 40 2030 1.0 0.0 +de 02_wind_on 2 40 2030 1.0 0.0 +de 03_wind_off 2 40 2030 0.0 0.0 +de 04_res 2 40 2030 0.0 0.0 +de 05_nuclear 2 40 2030 0.0 0.0 +de 06_coal 2 40 2030 0.0 0.0 +de 07_gas 2 40 2030 0.0 0.0 +de 08_non-res 2 40 2030 0.0 0.0 +de 09_hydro_pump 2 40 2030 0.0 0.0 +de 01_solar 2 41 2030 1.0 0.0 +de 02_wind_on 2 41 2030 1.0 0.0 +de 03_wind_off 2 41 2030 0.0 0.0 +de 04_res 2 41 2030 0.0 0.0 +de 05_nuclear 2 41 2030 0.0 0.0 +de 06_coal 2 41 2030 0.0 0.0 +de 07_gas 2 41 2030 0.0 0.0 +de 08_non-res 2 41 2030 0.0 0.0 +de 09_hydro_pump 2 41 2030 0.0 0.0 +de 01_solar 2 42 2030 1.0 0.0 +de 02_wind_on 2 42 2030 1.0 0.0 +de 03_wind_off 2 42 2030 1.0 0.0 +de 04_res 2 42 2030 0.0 0.0 +de 05_nuclear 2 42 2030 0.0 0.0 +de 06_coal 2 42 2030 0.0 0.0 +de 07_gas 2 42 2030 0.0 0.0 +de 08_non-res 2 42 2030 0.0 0.0 +de 09_hydro_pump 2 42 2030 0.0 0.0 +de 01_solar 2 43 2030 1.0 0.0 +de 02_wind_on 2 43 2030 1.0 0.0 +de 03_wind_off 2 43 2030 1.0 0.0 +de 04_res 2 43 2030 0.0 0.0 +de 05_nuclear 2 43 2030 0.0 0.0 +de 06_coal 2 43 2030 0.0 0.0 +de 07_gas 2 43 2030 0.0 0.0 +de 08_non-res 2 43 2030 0.0 0.0 +de 09_hydro_pump 2 43 2030 0.0 0.0 +de 01_solar 2 44 2030 1.0 0.0 +de 02_wind_on 2 44 2030 1.0 0.0 +de 03_wind_off 2 44 2030 1.0 0.0 +de 04_res 2 44 2030 0.0 0.0 +de 05_nuclear 2 44 2030 0.0 0.0 +de 06_coal 2 44 2030 0.0 0.0 +de 07_gas 2 44 2030 0.0 0.0 +de 08_non-res 2 44 2030 0.0 0.0 +de 09_hydro_pump 2 44 2030 0.0 0.0 +de 01_solar 2 45 2030 1.0 0.0 +de 02_wind_on 2 45 2030 1.0 0.0 +de 03_wind_off 2 45 2030 1.0 0.0 +de 04_res 2 45 2030 0.0 0.0 +de 05_nuclear 2 45 2030 0.0 0.0 +de 06_coal 2 45 2030 0.0 0.0 +de 07_gas 2 45 2030 0.0 0.0 +de 08_non-res 2 45 2030 0.0 0.0 +de 09_hydro_pump 2 45 2030 0.0 0.0 +de 01_solar 2 46 2030 1.0 0.0 +de 02_wind_on 2 46 2030 1.0 0.0 +de 03_wind_off 2 46 2030 1.0 0.0 +de 04_res 2 46 2030 0.0 0.0 +de 05_nuclear 2 46 2030 0.0 0.0 +de 06_coal 2 46 2030 0.0 0.0 +de 07_gas 2 46 2030 0.0 0.0 +de 08_non-res 2 46 2030 0.0 0.0 +de 09_hydro_pump 2 46 2030 0.0 0.0 +de 01_solar 2 47 2030 1.0 0.0 +de 02_wind_on 2 47 2030 1.0 0.0 +de 03_wind_off 2 47 2030 1.0 0.0 +de 04_res 2 47 2030 0.0 0.0 +de 05_nuclear 2 47 2030 0.0 0.0 +de 06_coal 2 47 2030 0.0 0.0 +de 07_gas 2 47 2030 0.0 0.0 +de 08_non-res 2 47 2030 0.0 0.0 +de 09_hydro_pump 2 47 2030 0.0 0.0 +de 01_solar 2 48 2030 1.0 0.0 +de 02_wind_on 2 48 2030 1.0 0.0 +de 03_wind_off 2 48 2030 1.0 0.0 +de 04_res 2 48 2030 0.0 0.0 +de 05_nuclear 2 48 2030 0.0 0.0 +de 06_coal 2 48 2030 0.0 0.0 +de 07_gas 2 48 2030 0.0 0.0 +de 08_non-res 2 48 2030 0.0 0.0 +de 09_hydro_pump 2 48 2030 0.0 0.0 +de 01_solar 2 49 2030 1.0 0.0 +de 02_wind_on 2 49 2030 1.0 0.0 +de 03_wind_off 2 49 2030 1.0 0.0 +de 04_res 2 49 2030 0.0 0.0 +de 05_nuclear 2 49 2030 0.0 0.0 +de 06_coal 2 49 2030 0.0 0.0 +de 07_gas 2 49 2030 0.0 0.0 +de 08_non-res 2 49 2030 0.0 0.0 +de 09_hydro_pump 2 49 2030 0.0 0.0 +de 01_solar 2 50 2030 1.0 0.0 +de 02_wind_on 2 50 2030 1.0 0.0 +de 03_wind_off 2 50 2030 1.0 0.0 +de 04_res 2 50 2030 0.0 0.0 +de 05_nuclear 2 50 2030 0.0 0.0 +de 06_coal 2 50 2030 0.0 0.0 +de 07_gas 2 50 2030 0.0 0.0 +de 08_non-res 2 50 2030 0.0 0.0 +de 09_hydro_pump 2 50 2030 0.0 0.0 +de 01_solar 2 51 2030 1.0 0.0 +de 02_wind_on 2 51 2030 1.0 0.0 +de 03_wind_off 2 51 2030 1.0 0.0 +de 04_res 2 51 2030 0.0 0.0 +de 05_nuclear 2 51 2030 0.0 0.0 +de 06_coal 2 51 2030 0.0 0.0 +de 07_gas 2 51 2030 0.0 0.0 +de 08_non-res 2 51 2030 0.0 0.0 +de 09_hydro_pump 2 51 2030 0.0 0.0 +de 01_solar 2 52 2030 1.0 0.0 +de 02_wind_on 2 52 2030 1.0 0.0 +de 03_wind_off 2 52 2030 1.0 0.0 +de 04_res 2 52 2030 0.0 0.0 +de 05_nuclear 2 52 2030 0.0 0.0 +de 06_coal 2 52 2030 0.0 0.0 +de 07_gas 2 52 2030 0.0 0.0 +de 08_non-res 2 52 2030 0.0 0.0 +de 09_hydro_pump 2 52 2030 0.0 0.0 +de 01_solar 2 53 2030 1.0 0.0 +de 02_wind_on 2 53 2030 1.0 0.0 +de 03_wind_off 2 53 2030 1.0 0.0 +de 04_res 2 53 2030 0.0 0.0 +de 05_nuclear 2 53 2030 0.0 0.0 +de 06_coal 2 53 2030 0.0 0.0 +de 07_gas 2 53 2030 0.0 0.0 +de 08_non-res 2 53 2030 0.0 0.0 +de 09_hydro_pump 2 53 2030 0.0 0.0 +de 01_solar 2 54 2030 1.0 0.0 +de 02_wind_on 2 54 2030 1.0 0.0 +de 03_wind_off 2 54 2030 1.0 0.0 +de 04_res 2 54 2030 0.0 0.0 +de 05_nuclear 2 54 2030 0.0 0.0 +de 06_coal 2 54 2030 0.0 0.0 +de 07_gas 2 54 2030 0.0 0.0 +de 08_non-res 2 54 2030 0.0 0.0 +de 09_hydro_pump 2 54 2030 0.0 0.0 +de 01_solar 2 55 2030 1.0 0.0 +de 02_wind_on 2 55 2030 1.0 0.0 +de 03_wind_off 2 55 2030 1.0 0.0 +de 04_res 2 55 2030 0.0 0.0 +de 05_nuclear 2 55 2030 0.0 0.0 +de 06_coal 2 55 2030 0.0 0.0 +de 07_gas 2 55 2030 0.0 0.0 +de 08_non-res 2 55 2030 0.0 0.0 +de 09_hydro_pump 2 55 2030 0.0 0.0 +de 01_solar 2 56 2030 1.0 0.0 +de 02_wind_on 2 56 2030 1.0 0.0 +de 03_wind_off 2 56 2030 1.0 0.0 +de 04_res 2 56 2030 0.0 0.0 +de 05_nuclear 2 56 2030 0.0 0.0 +de 06_coal 2 56 2030 0.0 0.0 +de 07_gas 2 56 2030 0.0 0.0 +de 08_non-res 2 56 2030 0.0 0.0 +de 09_hydro_pump 2 56 2030 0.0 0.0 +de 01_solar 2 57 2030 1.0 0.0 +de 02_wind_on 2 57 2030 1.0 0.0 +de 03_wind_off 2 57 2030 1.0 0.0 +de 04_res 2 57 2030 0.0 0.0 +de 05_nuclear 2 57 2030 0.0 0.0 +de 06_coal 2 57 2030 0.0 0.0 +de 07_gas 2 57 2030 0.0 0.0 +de 08_non-res 2 57 2030 0.0 0.0 +de 09_hydro_pump 2 57 2030 0.0 0.0 +de 01_solar 2 58 2030 1.0 0.0 +de 02_wind_on 2 58 2030 1.0 0.0 +de 03_wind_off 2 58 2030 1.0 0.0 +de 04_res 2 58 2030 0.0 0.0 +de 05_nuclear 2 58 2030 0.0 0.0 +de 06_coal 2 58 2030 0.0 0.0 +de 07_gas 2 58 2030 0.0 0.0 +de 08_non-res 2 58 2030 0.0 0.0 +de 09_hydro_pump 2 58 2030 0.0 0.0 +de 01_solar 2 59 2030 1.0 0.0 +de 02_wind_on 2 59 2030 1.0 0.0 +de 03_wind_off 2 59 2030 1.0 0.0 +de 04_res 2 59 2030 0.0 0.0 +de 05_nuclear 2 59 2030 0.0 0.0 +de 06_coal 2 59 2030 0.0 0.0 +de 07_gas 2 59 2030 0.0 0.0 +de 08_non-res 2 59 2030 0.0 0.0 +de 09_hydro_pump 2 59 2030 0.0 0.0 +de 01_solar 2 60 2030 1.0 0.0 +de 02_wind_on 2 60 2030 1.0 0.0 +de 03_wind_off 2 60 2030 1.0 0.0 +de 04_res 2 60 2030 0.0 0.0 +de 05_nuclear 2 60 2030 0.0 0.0 +de 06_coal 2 60 2030 0.0 0.0 +de 07_gas 2 60 2030 0.0 0.0 +de 08_non-res 2 60 2030 0.0 0.0 +de 09_hydro_pump 2 60 2030 0.0 0.0 +de 01_solar 2 61 2030 1.0 0.0 +de 02_wind_on 2 61 2030 1.0 0.0 +de 03_wind_off 2 61 2030 1.0 0.0 +de 04_res 2 61 2030 0.0 0.0 +de 05_nuclear 2 61 2030 0.0 0.0 +de 06_coal 2 61 2030 0.0 0.0 +de 07_gas 2 61 2030 0.0 0.0 +de 08_non-res 2 61 2030 0.0 0.0 +de 09_hydro_pump 2 61 2030 0.0 0.0 +de 01_solar 2 62 2030 1.0 0.0 +de 02_wind_on 2 62 2030 1.0 0.0 +de 03_wind_off 2 62 2030 1.0 0.0 +de 04_res 2 62 2030 1.0 0.0 +de 05_nuclear 2 62 2030 0.0 0.0 +de 06_coal 2 62 2030 0.0 0.0 +de 07_gas 2 62 2030 0.0 0.0 +de 08_non-res 2 62 2030 0.0 0.0 +de 09_hydro_pump 2 62 2030 0.0 0.0 +de 01_solar 2 63 2030 1.0 0.0 +de 02_wind_on 2 63 2030 1.0 0.0 +de 03_wind_off 2 63 2030 1.0 0.0 +de 04_res 2 63 2030 1.0 0.0 +de 05_nuclear 2 63 2030 0.0 0.0 +de 06_coal 2 63 2030 0.0 0.0 +de 07_gas 2 63 2030 0.0 0.0 +de 08_non-res 2 63 2030 0.0 0.0 +de 09_hydro_pump 2 63 2030 0.0 0.0 +de 01_solar 2 64 2030 1.0 0.0 +de 02_wind_on 2 64 2030 1.0 0.0 +de 03_wind_off 2 64 2030 1.0 0.0 +de 04_res 2 64 2030 1.0 0.0 +de 05_nuclear 2 64 2030 0.0 0.0 +de 06_coal 2 64 2030 0.0 0.0 +de 07_gas 2 64 2030 0.0 0.0 +de 08_non-res 2 64 2030 0.0 0.0 +de 09_hydro_pump 2 64 2030 0.0 0.0 +de 01_solar 2 65 2030 1.0 0.0 +de 02_wind_on 2 65 2030 1.0 0.0 +de 03_wind_off 2 65 2030 1.0 0.0 +de 04_res 2 65 2030 1.0 0.0 +de 05_nuclear 2 65 2030 0.0 0.0 +de 06_coal 2 65 2030 0.0 0.0 +de 07_gas 2 65 2030 0.0 0.0 +de 08_non-res 2 65 2030 0.0 0.0 +de 09_hydro_pump 2 65 2030 0.0 0.0 +de 01_solar 2 66 2030 1.0 0.0 +de 02_wind_on 2 66 2030 1.0 0.0 +de 03_wind_off 2 66 2030 1.0 0.0 +de 04_res 2 66 2030 1.0 0.0 +de 05_nuclear 2 66 2030 0.0 0.0 +de 06_coal 2 66 2030 0.0 0.0 +de 07_gas 2 66 2030 0.0 0.0 +de 08_non-res 2 66 2030 0.0 0.0 +de 09_hydro_pump 2 66 2030 0.0 0.0 +de 01_solar 2 67 2030 1.0 0.0 +de 02_wind_on 2 67 2030 1.0 0.0 +de 03_wind_off 2 67 2030 1.0 0.0 +de 04_res 2 67 2030 1.0 0.0 +de 05_nuclear 2 67 2030 0.0 0.0 +de 06_coal 2 67 2030 0.0 0.0 +de 07_gas 2 67 2030 0.0 0.0 +de 08_non-res 2 67 2030 0.0 0.0 +de 09_hydro_pump 2 67 2030 0.0 0.0 +de 01_solar 2 68 2030 1.0 0.0 +de 02_wind_on 2 68 2030 1.0 0.0 +de 03_wind_off 2 68 2030 1.0 0.0 +de 04_res 2 68 2030 1.0 0.0 +de 05_nuclear 2 68 2030 0.0 0.0 +de 06_coal 2 68 2030 0.0 0.0 +de 07_gas 2 68 2030 0.0 0.0 +de 08_non-res 2 68 2030 0.0 0.0 +de 09_hydro_pump 2 68 2030 0.0 0.0 +de 01_solar 2 69 2030 1.0 0.0 +de 02_wind_on 2 69 2030 1.0 0.0 +de 03_wind_off 2 69 2030 1.0 0.0 +de 04_res 2 69 2030 1.0 0.0 +de 05_nuclear 2 69 2030 0.0 0.0 +de 06_coal 2 69 2030 0.0 0.0 +de 07_gas 2 69 2030 0.0 0.0 +de 08_non-res 2 69 2030 0.0 0.0 +de 09_hydro_pump 2 69 2030 0.0 0.0 +de 01_solar 2 70 2030 1.0 0.0 +de 02_wind_on 2 70 2030 1.0 0.0 +de 03_wind_off 2 70 2030 1.0 0.0 +de 04_res 2 70 2030 1.0 0.0 +de 05_nuclear 2 70 2030 0.0 0.0 +de 06_coal 2 70 2030 0.0 0.0 +de 07_gas 2 70 2030 0.0 0.0 +de 08_non-res 2 70 2030 0.0 0.0 +de 09_hydro_pump 2 70 2030 0.0 0.0 +de 01_solar 2 71 2030 1.0 0.0 +de 02_wind_on 2 71 2030 1.0 0.0 +de 03_wind_off 2 71 2030 1.0 0.0 +de 04_res 2 71 2030 1.0 0.0 +de 05_nuclear 2 71 2030 0.0 0.0 +de 06_coal 2 71 2030 0.0 0.0 +de 07_gas 2 71 2030 0.0 0.0 +de 08_non-res 2 71 2030 0.0 0.0 +de 09_hydro_pump 2 71 2030 0.0 0.0 +de 01_solar 2 72 2030 1.0 0.0 +de 02_wind_on 2 72 2030 1.0 0.0 +de 03_wind_off 2 72 2030 1.0 0.0 +de 04_res 2 72 2030 1.0 0.0 +de 05_nuclear 2 72 2030 0.0 0.0 +de 06_coal 2 72 2030 0.0 0.0 +de 07_gas 2 72 2030 0.0 0.0 +de 08_non-res 2 72 2030 0.0 0.0 +de 09_hydro_pump 2 72 2030 0.0 0.0 +de 01_solar 2 73 2030 1.0 0.0 +de 02_wind_on 2 73 2030 1.0 0.0 +de 03_wind_off 2 73 2030 1.0 0.0 +de 04_res 2 73 2030 1.0 0.0 +de 05_nuclear 2 73 2030 0.0 0.0 +de 06_coal 2 73 2030 0.0 0.0 +de 07_gas 2 73 2030 0.0 0.0 +de 08_non-res 2 73 2030 0.0 0.0 +de 09_hydro_pump 2 73 2030 0.0 0.0 +de 01_solar 2 74 2030 1.0 0.0 +de 02_wind_on 2 74 2030 1.0 0.0 +de 03_wind_off 2 74 2030 1.0 0.0 +de 04_res 2 74 2030 1.0 0.0 +de 05_nuclear 2 74 2030 0.0 0.0 +de 06_coal 2 74 2030 0.0 0.0 +de 07_gas 2 74 2030 0.0 0.0 +de 08_non-res 2 74 2030 0.0 0.0 +de 09_hydro_pump 2 74 2030 0.0 0.0 +de 01_solar 2 75 2030 1.0 0.0 +de 02_wind_on 2 75 2030 1.0 0.0 +de 03_wind_off 2 75 2030 1.0 0.0 +de 04_res 2 75 2030 1.0 0.0 +de 05_nuclear 2 75 2030 0.0 0.0 +de 06_coal 2 75 2030 0.0 0.0 +de 07_gas 2 75 2030 0.0 0.0 +de 08_non-res 2 75 2030 0.0 0.0 +de 09_hydro_pump 2 75 2030 0.0 0.0 +de 01_solar 2 76 2030 1.0 0.0 +de 02_wind_on 2 76 2030 1.0 0.0 +de 03_wind_off 2 76 2030 1.0 0.0 +de 04_res 2 76 2030 1.0 0.0 +de 05_nuclear 2 76 2030 0.0 0.0 +de 06_coal 2 76 2030 0.0 0.0 +de 07_gas 2 76 2030 0.0 0.0 +de 08_non-res 2 76 2030 0.0 0.0 +de 09_hydro_pump 2 76 2030 0.0 0.0 +de 01_solar 2 77 2030 1.0 0.0 +de 02_wind_on 2 77 2030 1.0 0.0 +de 03_wind_off 2 77 2030 1.0 0.0 +de 04_res 2 77 2030 1.0 0.0 +de 05_nuclear 2 77 2030 0.0 0.0 +de 06_coal 2 77 2030 0.0 0.0 +de 07_gas 2 77 2030 0.0 0.0 +de 08_non-res 2 77 2030 0.0 0.0 +de 09_hydro_pump 2 77 2030 0.0 0.0 +de 01_solar 2 78 2030 1.0 0.0 +de 02_wind_on 2 78 2030 1.0 0.0 +de 03_wind_off 2 78 2030 1.0 0.0 +de 04_res 2 78 2030 1.0 0.0 +de 05_nuclear 2 78 2030 0.0 0.0 +de 06_coal 2 78 2030 0.0 0.0 +de 07_gas 2 78 2030 0.0 0.0 +de 08_non-res 2 78 2030 0.0 0.0 +de 09_hydro_pump 2 78 2030 0.0 0.0 +de 01_solar 2 79 2030 1.0 0.0 +de 02_wind_on 2 79 2030 1.0 0.0 +de 03_wind_off 2 79 2030 1.0 0.0 +de 04_res 2 79 2030 1.0 0.0 +de 05_nuclear 2 79 2030 0.0 0.0 +de 06_coal 2 79 2030 0.0 0.0 +de 07_gas 2 79 2030 0.0 0.0 +de 08_non-res 2 79 2030 0.0 0.0 +de 09_hydro_pump 2 79 2030 0.0 0.0 +de 01_solar 2 80 2030 1.0 0.0 +de 02_wind_on 2 80 2030 1.0 0.0 +de 03_wind_off 2 80 2030 1.0 0.0 +de 04_res 2 80 2030 1.0 0.0 +de 05_nuclear 2 80 2030 0.0 0.0 +de 06_coal 2 80 2030 0.0 0.0 +de 07_gas 2 80 2030 0.0 0.0 +de 08_non-res 2 80 2030 0.0 0.0 +de 09_hydro_pump 2 80 2030 0.0 0.0 +de 01_solar 2 81 2030 1.0 0.0 +de 02_wind_on 2 81 2030 1.0 0.0 +de 03_wind_off 2 81 2030 1.0 0.0 +de 04_res 2 81 2030 1.0 0.0 +de 05_nuclear 2 81 2030 0.0 0.0 +de 06_coal 2 81 2030 0.0 0.0 +de 07_gas 2 81 2030 0.0 0.0 +de 08_non-res 2 81 2030 0.0 0.0 +de 09_hydro_pump 2 81 2030 0.0 0.0 +de 01_solar 2 82 2030 1.0 0.0 +de 02_wind_on 2 82 2030 1.0 0.0 +de 03_wind_off 2 82 2030 1.0 0.0 +de 04_res 2 82 2030 1.0 0.0 +de 05_nuclear 2 82 2030 1.0 0.0 +de 06_coal 2 82 2030 0.0 0.0 +de 07_gas 2 82 2030 0.0 0.0 +de 08_non-res 2 82 2030 0.0 0.0 +de 09_hydro_pump 2 82 2030 0.0 0.0 +de 01_solar 2 83 2030 1.0 0.0 +de 02_wind_on 2 83 2030 1.0 0.0 +de 03_wind_off 2 83 2030 1.0 0.0 +de 04_res 2 83 2030 1.0 0.0 +de 05_nuclear 2 83 2030 1.0 0.0 +de 06_coal 2 83 2030 0.0 0.0 +de 07_gas 2 83 2030 0.0 0.0 +de 08_non-res 2 83 2030 0.0 0.0 +de 09_hydro_pump 2 83 2030 0.0 0.0 +de 01_solar 2 84 2030 1.0 0.0 +de 02_wind_on 2 84 2030 1.0 0.0 +de 03_wind_off 2 84 2030 1.0 0.0 +de 04_res 2 84 2030 1.0 0.0 +de 05_nuclear 2 84 2030 1.0 0.0 +de 06_coal 2 84 2030 0.0 0.0 +de 07_gas 2 84 2030 0.0 0.0 +de 08_non-res 2 84 2030 0.0 0.0 +de 09_hydro_pump 2 84 2030 0.0 0.0 +de 01_solar 2 85 2030 1.0 0.0 +de 02_wind_on 2 85 2030 1.0 0.0 +de 03_wind_off 2 85 2030 1.0 0.0 +de 04_res 2 85 2030 1.0 0.0 +de 05_nuclear 2 85 2030 1.0 0.0 +de 06_coal 2 85 2030 0.0 0.0 +de 07_gas 2 85 2030 0.0 0.0 +de 08_non-res 2 85 2030 0.0 0.0 +de 09_hydro_pump 2 85 2030 0.0 0.0 +de 01_solar 2 86 2030 1.0 0.0 +de 02_wind_on 2 86 2030 1.0 0.0 +de 03_wind_off 2 86 2030 1.0 0.0 +de 04_res 2 86 2030 1.0 0.0 +de 05_nuclear 2 86 2030 1.0 0.0 +de 06_coal 2 86 2030 0.0 0.0 +de 07_gas 2 86 2030 0.0 0.0 +de 08_non-res 2 86 2030 0.0 0.0 +de 09_hydro_pump 2 86 2030 0.0 0.0 +de 01_solar 2 87 2030 1.0 0.0 +de 02_wind_on 2 87 2030 1.0 0.0 +de 03_wind_off 2 87 2030 1.0 0.0 +de 04_res 2 87 2030 1.0 0.0 +de 05_nuclear 2 87 2030 1.0 0.0 +de 06_coal 2 87 2030 0.0 0.0 +de 07_gas 2 87 2030 0.0 0.0 +de 08_non-res 2 87 2030 0.0 0.0 +de 09_hydro_pump 2 87 2030 0.0 0.0 +de 01_solar 2 88 2030 1.0 0.0 +de 02_wind_on 2 88 2030 1.0 0.0 +de 03_wind_off 2 88 2030 1.0 0.0 +de 04_res 2 88 2030 1.0 0.0 +de 05_nuclear 2 88 2030 1.0 0.0 +de 06_coal 2 88 2030 0.0 0.0 +de 07_gas 2 88 2030 0.0 0.0 +de 08_non-res 2 88 2030 0.0 0.0 +de 09_hydro_pump 2 88 2030 0.0 0.0 +de 01_solar 2 89 2030 1.0 0.0 +de 02_wind_on 2 89 2030 1.0 0.0 +de 03_wind_off 2 89 2030 1.0 0.0 +de 04_res 2 89 2030 1.0 0.0 +de 05_nuclear 2 89 2030 1.0 0.0 +de 06_coal 2 89 2030 0.0 0.0 +de 07_gas 2 89 2030 0.0 0.0 +de 08_non-res 2 89 2030 0.0 0.0 +de 09_hydro_pump 2 89 2030 0.0 0.0 +de 01_solar 2 90 2030 1.0 0.0 +de 02_wind_on 2 90 2030 1.0 0.0 +de 03_wind_off 2 90 2030 1.0 0.0 +de 04_res 2 90 2030 1.0 0.0 +de 05_nuclear 2 90 2030 1.0 0.0 +de 06_coal 2 90 2030 0.0 0.0 +de 07_gas 2 90 2030 0.0 0.0 +de 08_non-res 2 90 2030 0.0 0.0 +de 09_hydro_pump 2 90 2030 0.0 0.0 +de 01_solar 2 91 2030 1.0 0.0 +de 02_wind_on 2 91 2030 1.0 0.0 +de 03_wind_off 2 91 2030 1.0 0.0 +de 04_res 2 91 2030 1.0 0.0 +de 05_nuclear 2 91 2030 1.0 0.0 +de 06_coal 2 91 2030 0.0 0.0 +de 07_gas 2 91 2030 0.0 0.0 +de 08_non-res 2 91 2030 0.0 0.0 +de 09_hydro_pump 2 91 2030 0.0 0.0 +de 01_solar 2 92 2030 1.0 0.0 +de 02_wind_on 2 92 2030 1.0 0.0 +de 03_wind_off 2 92 2030 1.0 0.0 +de 04_res 2 92 2030 1.0 0.0 +de 05_nuclear 2 92 2030 1.0 0.0 +de 06_coal 2 92 2030 0.0 0.0 +de 07_gas 2 92 2030 0.0 0.0 +de 08_non-res 2 92 2030 0.0 0.0 +de 09_hydro_pump 2 92 2030 0.0 0.0 +de 01_solar 2 93 2030 1.0 0.0 +de 02_wind_on 2 93 2030 1.0 0.0 +de 03_wind_off 2 93 2030 1.0 0.0 +de 04_res 2 93 2030 1.0 0.0 +de 05_nuclear 2 93 2030 1.0 0.0 +de 06_coal 2 93 2030 0.0 0.0 +de 07_gas 2 93 2030 0.0 0.0 +de 08_non-res 2 93 2030 0.0 0.0 +de 09_hydro_pump 2 93 2030 0.0 0.0 +de 01_solar 2 94 2030 1.0 0.0 +de 02_wind_on 2 94 2030 1.0 0.0 +de 03_wind_off 2 94 2030 1.0 0.0 +de 04_res 2 94 2030 1.0 0.0 +de 05_nuclear 2 94 2030 1.0 0.0 +de 06_coal 2 94 2030 0.0 0.0 +de 07_gas 2 94 2030 0.0 0.0 +de 08_non-res 2 94 2030 0.0 0.0 +de 09_hydro_pump 2 94 2030 0.0 0.0 +de 01_solar 2 95 2030 1.0 0.0 +de 02_wind_on 2 95 2030 1.0 0.0 +de 03_wind_off 2 95 2030 1.0 0.0 +de 04_res 2 95 2030 1.0 0.0 +de 05_nuclear 2 95 2030 1.0 0.0 +de 06_coal 2 95 2030 0.0 0.0 +de 07_gas 2 95 2030 0.0 0.0 +de 08_non-res 2 95 2030 0.0 0.0 +de 09_hydro_pump 2 95 2030 0.0 0.0 +de 01_solar 2 96 2030 1.0 0.0 +de 02_wind_on 2 96 2030 1.0 0.0 +de 03_wind_off 2 96 2030 1.0 0.0 +de 04_res 2 96 2030 1.0 0.0 +de 05_nuclear 2 96 2030 1.0 0.0 +de 06_coal 2 96 2030 0.0 0.0 +de 07_gas 2 96 2030 0.0 0.0 +de 08_non-res 2 96 2030 0.0 0.0 +de 09_hydro_pump 2 96 2030 0.0 0.0 +de 01_solar 2 97 2030 1.0 0.0 +de 02_wind_on 2 97 2030 1.0 0.0 +de 03_wind_off 2 97 2030 1.0 0.0 +de 04_res 2 97 2030 1.0 0.0 +de 05_nuclear 2 97 2030 1.0 0.0 +de 06_coal 2 97 2030 0.0 0.0 +de 07_gas 2 97 2030 0.0 0.0 +de 08_non-res 2 97 2030 0.0 0.0 +de 09_hydro_pump 2 97 2030 0.0 0.0 +de 01_solar 2 98 2030 1.0 0.0 +de 02_wind_on 2 98 2030 1.0 0.0 +de 03_wind_off 2 98 2030 1.0 0.0 +de 04_res 2 98 2030 1.0 0.0 +de 05_nuclear 2 98 2030 1.0 0.0 +de 06_coal 2 98 2030 0.0 0.0 +de 07_gas 2 98 2030 0.0 0.0 +de 08_non-res 2 98 2030 0.0 0.0 +de 09_hydro_pump 2 98 2030 0.0 0.0 +de 01_solar 2 99 2030 1.0 0.0 +de 02_wind_on 2 99 2030 1.0 0.0 +de 03_wind_off 2 99 2030 1.0 0.0 +de 04_res 2 99 2030 1.0 0.0 +de 05_nuclear 2 99 2030 1.0 0.0 +de 06_coal 2 99 2030 0.0 0.0 +de 07_gas 2 99 2030 0.0 0.0 +de 08_non-res 2 99 2030 0.0 0.0 +de 09_hydro_pump 2 99 2030 0.0 0.0 +de 01_solar 2 100 2030 1.0 0.0 +de 02_wind_on 2 100 2030 1.0 0.0 +de 03_wind_off 2 100 2030 1.0 0.0 +de 04_res 2 100 2030 1.0 0.0 +de 05_nuclear 2 100 2030 1.0 0.0 +de 06_coal 2 100 2030 0.0 0.0 +de 07_gas 2 100 2030 0.0 0.0 +de 08_non-res 2 100 2030 0.0 0.0 +de 09_hydro_pump 2 100 2030 0.0 0.0 +de 01_solar 2 101 2030 1.0 0.0 +de 02_wind_on 2 101 2030 1.0 0.0 +de 03_wind_off 2 101 2030 1.0 0.0 +de 04_res 2 101 2030 1.0 0.0 +de 05_nuclear 2 101 2030 1.0 0.0 +de 06_coal 2 101 2030 0.0 0.0 +de 07_gas 2 101 2030 0.0 0.0 +de 08_non-res 2 101 2030 0.0 0.0 +de 09_hydro_pump 2 101 2030 0.0 0.0 +de 01_solar 2 102 2030 1.0 0.0 +de 02_wind_on 2 102 2030 1.0 0.0 +de 03_wind_off 2 102 2030 1.0 0.0 +de 04_res 2 102 2030 1.0 0.0 +de 05_nuclear 2 102 2030 1.0 0.0 +de 06_coal 2 102 2030 1.0 0.0 +de 07_gas 2 102 2030 0.0 0.0 +de 08_non-res 2 102 2030 0.0 0.0 +de 09_hydro_pump 2 102 2030 0.0 0.0 +de 01_solar 2 103 2030 1.0 0.0 +de 02_wind_on 2 103 2030 1.0 0.0 +de 03_wind_off 2 103 2030 1.0 0.0 +de 04_res 2 103 2030 1.0 0.0 +de 05_nuclear 2 103 2030 1.0 0.0 +de 06_coal 2 103 2030 1.0 0.0 +de 07_gas 2 103 2030 0.0 0.0 +de 08_non-res 2 103 2030 0.0 0.0 +de 09_hydro_pump 2 103 2030 0.0 0.0 +de 01_solar 2 104 2030 1.0 0.0 +de 02_wind_on 2 104 2030 1.0 0.0 +de 03_wind_off 2 104 2030 1.0 0.0 +de 04_res 2 104 2030 1.0 0.0 +de 05_nuclear 2 104 2030 1.0 0.0 +de 06_coal 2 104 2030 1.0 0.0 +de 07_gas 2 104 2030 0.0 0.0 +de 08_non-res 2 104 2030 0.0 0.0 +de 09_hydro_pump 2 104 2030 0.0 0.0 +de 01_solar 2 105 2030 1.0 0.0 +de 02_wind_on 2 105 2030 1.0 0.0 +de 03_wind_off 2 105 2030 1.0 0.0 +de 04_res 2 105 2030 1.0 0.0 +de 05_nuclear 2 105 2030 1.0 0.0 +de 06_coal 2 105 2030 1.0 0.0 +de 07_gas 2 105 2030 0.0 0.0 +de 08_non-res 2 105 2030 0.0 0.0 +de 09_hydro_pump 2 105 2030 0.0 0.0 +de 01_solar 2 106 2030 1.0 0.0 +de 02_wind_on 2 106 2030 1.0 0.0 +de 03_wind_off 2 106 2030 1.0 0.0 +de 04_res 2 106 2030 1.0 0.0 +de 05_nuclear 2 106 2030 1.0 0.0 +de 06_coal 2 106 2030 1.0 0.0 +de 07_gas 2 106 2030 0.0 0.0 +de 08_non-res 2 106 2030 0.0 0.0 +de 09_hydro_pump 2 106 2030 0.0 0.0 +de 01_solar 2 107 2030 1.0 0.0 +de 02_wind_on 2 107 2030 1.0 0.0 +de 03_wind_off 2 107 2030 1.0 0.0 +de 04_res 2 107 2030 1.0 0.0 +de 05_nuclear 2 107 2030 1.0 0.0 +de 06_coal 2 107 2030 1.0 0.0 +de 07_gas 2 107 2030 0.0 0.0 +de 08_non-res 2 107 2030 0.0 0.0 +de 09_hydro_pump 2 107 2030 0.0 0.0 +de 01_solar 2 108 2030 1.0 0.0 +de 02_wind_on 2 108 2030 1.0 0.0 +de 03_wind_off 2 108 2030 1.0 0.0 +de 04_res 2 108 2030 1.0 0.0 +de 05_nuclear 2 108 2030 1.0 0.0 +de 06_coal 2 108 2030 1.0 0.0 +de 07_gas 2 108 2030 0.0 0.0 +de 08_non-res 2 108 2030 0.0 0.0 +de 09_hydro_pump 2 108 2030 0.0 0.0 +de 01_solar 2 109 2030 1.0 0.0 +de 02_wind_on 2 109 2030 1.0 0.0 +de 03_wind_off 2 109 2030 1.0 0.0 +de 04_res 2 109 2030 1.0 0.0 +de 05_nuclear 2 109 2030 1.0 0.0 +de 06_coal 2 109 2030 1.0 0.0 +de 07_gas 2 109 2030 0.0 0.0 +de 08_non-res 2 109 2030 0.0 0.0 +de 09_hydro_pump 2 109 2030 0.0 0.0 +de 01_solar 2 110 2030 1.0 0.0 +de 02_wind_on 2 110 2030 1.0 0.0 +de 03_wind_off 2 110 2030 1.0 0.0 +de 04_res 2 110 2030 1.0 0.0 +de 05_nuclear 2 110 2030 1.0 0.0 +de 06_coal 2 110 2030 1.0 0.0 +de 07_gas 2 110 2030 0.0 0.0 +de 08_non-res 2 110 2030 0.0 0.0 +de 09_hydro_pump 2 110 2030 0.0 0.0 +de 01_solar 2 111 2030 1.0 0.0 +de 02_wind_on 2 111 2030 1.0 0.0 +de 03_wind_off 2 111 2030 1.0 0.0 +de 04_res 2 111 2030 1.0 0.0 +de 05_nuclear 2 111 2030 1.0 0.0 +de 06_coal 2 111 2030 1.0 0.0 +de 07_gas 2 111 2030 0.0 0.0 +de 08_non-res 2 111 2030 0.0 0.0 +de 09_hydro_pump 2 111 2030 0.0 0.0 +de 01_solar 2 112 2030 1.0 0.0 +de 02_wind_on 2 112 2030 1.0 0.0 +de 03_wind_off 2 112 2030 1.0 0.0 +de 04_res 2 112 2030 1.0 0.0 +de 05_nuclear 2 112 2030 1.0 0.0 +de 06_coal 2 112 2030 1.0 0.0 +de 07_gas 2 112 2030 0.0 0.0 +de 08_non-res 2 112 2030 0.0 0.0 +de 09_hydro_pump 2 112 2030 0.0 0.0 +de 01_solar 2 113 2030 1.0 0.0 +de 02_wind_on 2 113 2030 1.0 0.0 +de 03_wind_off 2 113 2030 1.0 0.0 +de 04_res 2 113 2030 1.0 0.0 +de 05_nuclear 2 113 2030 1.0 0.0 +de 06_coal 2 113 2030 1.0 0.0 +de 07_gas 2 113 2030 0.0 0.0 +de 08_non-res 2 113 2030 0.0 0.0 +de 09_hydro_pump 2 113 2030 0.0 0.0 +de 01_solar 2 114 2030 1.0 0.0 +de 02_wind_on 2 114 2030 1.0 0.0 +de 03_wind_off 2 114 2030 1.0 0.0 +de 04_res 2 114 2030 1.0 0.0 +de 05_nuclear 2 114 2030 1.0 0.0 +de 06_coal 2 114 2030 1.0 0.0 +de 07_gas 2 114 2030 0.0 0.0 +de 08_non-res 2 114 2030 0.0 0.0 +de 09_hydro_pump 2 114 2030 0.0 0.0 +de 01_solar 2 115 2030 1.0 0.0 +de 02_wind_on 2 115 2030 1.0 0.0 +de 03_wind_off 2 115 2030 1.0 0.0 +de 04_res 2 115 2030 1.0 0.0 +de 05_nuclear 2 115 2030 1.0 0.0 +de 06_coal 2 115 2030 1.0 0.0 +de 07_gas 2 115 2030 0.0 0.0 +de 08_non-res 2 115 2030 0.0 0.0 +de 09_hydro_pump 2 115 2030 0.0 0.0 +de 01_solar 2 116 2030 1.0 0.0 +de 02_wind_on 2 116 2030 1.0 0.0 +de 03_wind_off 2 116 2030 1.0 0.0 +de 04_res 2 116 2030 1.0 0.0 +de 05_nuclear 2 116 2030 1.0 0.0 +de 06_coal 2 116 2030 1.0 0.0 +de 07_gas 2 116 2030 0.0 0.0 +de 08_non-res 2 116 2030 0.0 0.0 +de 09_hydro_pump 2 116 2030 0.0 0.0 +de 01_solar 2 117 2030 1.0 0.0 +de 02_wind_on 2 117 2030 1.0 0.0 +de 03_wind_off 2 117 2030 1.0 0.0 +de 04_res 2 117 2030 1.0 0.0 +de 05_nuclear 2 117 2030 1.0 0.0 +de 06_coal 2 117 2030 1.0 0.0 +de 07_gas 2 117 2030 0.0 0.0 +de 08_non-res 2 117 2030 0.0 0.0 +de 09_hydro_pump 2 117 2030 0.0 0.0 +de 01_solar 2 118 2030 1.0 0.0 +de 02_wind_on 2 118 2030 1.0 0.0 +de 03_wind_off 2 118 2030 1.0 0.0 +de 04_res 2 118 2030 1.0 0.0 +de 05_nuclear 2 118 2030 1.0 0.0 +de 06_coal 2 118 2030 1.0 0.0 +de 07_gas 2 118 2030 0.0 0.0 +de 08_non-res 2 118 2030 0.0 0.0 +de 09_hydro_pump 2 118 2030 0.0 0.0 +de 01_solar 2 119 2030 1.0 0.0 +de 02_wind_on 2 119 2030 1.0 0.0 +de 03_wind_off 2 119 2030 1.0 0.0 +de 04_res 2 119 2030 1.0 0.0 +de 05_nuclear 2 119 2030 1.0 0.0 +de 06_coal 2 119 2030 1.0 0.0 +de 07_gas 2 119 2030 0.0 0.0 +de 08_non-res 2 119 2030 0.0 0.0 +de 09_hydro_pump 2 119 2030 0.0 0.0 +de 01_solar 2 120 2030 1.0 0.0 +de 02_wind_on 2 120 2030 1.0 0.0 +de 03_wind_off 2 120 2030 1.0 0.0 +de 04_res 2 120 2030 1.0 0.0 +de 05_nuclear 2 120 2030 1.0 0.0 +de 06_coal 2 120 2030 1.0 0.0 +de 07_gas 2 120 2030 0.0 0.0 +de 08_non-res 2 120 2030 0.0 0.0 +de 09_hydro_pump 2 120 2030 0.0 0.0 +de 01_solar 2 121 2030 1.0 0.0 +de 02_wind_on 2 121 2030 1.0 0.0 +de 03_wind_off 2 121 2030 1.0 0.0 +de 04_res 2 121 2030 1.0 0.0 +de 05_nuclear 2 121 2030 1.0 0.0 +de 06_coal 2 121 2030 1.0 0.0 +de 07_gas 2 121 2030 0.0 0.0 +de 08_non-res 2 121 2030 0.0 0.0 +de 09_hydro_pump 2 121 2030 0.0 0.0 +de 01_solar 2 122 2030 1.0 0.0 +de 02_wind_on 2 122 2030 1.0 0.0 +de 03_wind_off 2 122 2030 1.0 0.0 +de 04_res 2 122 2030 1.0 0.0 +de 05_nuclear 2 122 2030 1.0 0.0 +de 06_coal 2 122 2030 1.0 0.0 +de 07_gas 2 122 2030 1.0 0.0 +de 08_non-res 2 122 2030 0.0 0.0 +de 09_hydro_pump 2 122 2030 0.0 0.0 +de 01_solar 2 123 2030 1.0 0.0 +de 02_wind_on 2 123 2030 1.0 0.0 +de 03_wind_off 2 123 2030 1.0 0.0 +de 04_res 2 123 2030 1.0 0.0 +de 05_nuclear 2 123 2030 1.0 0.0 +de 06_coal 2 123 2030 1.0 0.0 +de 07_gas 2 123 2030 1.0 0.0 +de 08_non-res 2 123 2030 0.0 0.0 +de 09_hydro_pump 2 123 2030 0.0 0.0 +de 01_solar 2 124 2030 1.0 0.0 +de 02_wind_on 2 124 2030 1.0 0.0 +de 03_wind_off 2 124 2030 1.0 0.0 +de 04_res 2 124 2030 1.0 0.0 +de 05_nuclear 2 124 2030 1.0 0.0 +de 06_coal 2 124 2030 1.0 0.0 +de 07_gas 2 124 2030 1.0 0.0 +de 08_non-res 2 124 2030 0.0 0.0 +de 09_hydro_pump 2 124 2030 0.0 0.0 +de 01_solar 2 125 2030 1.0 0.0 +de 02_wind_on 2 125 2030 1.0 0.0 +de 03_wind_off 2 125 2030 1.0 0.0 +de 04_res 2 125 2030 1.0 0.0 +de 05_nuclear 2 125 2030 1.0 0.0 +de 06_coal 2 125 2030 1.0 0.0 +de 07_gas 2 125 2030 1.0 0.0 +de 08_non-res 2 125 2030 0.0 0.0 +de 09_hydro_pump 2 125 2030 0.0 0.0 +de 01_solar 2 126 2030 1.0 0.0 +de 02_wind_on 2 126 2030 1.0 0.0 +de 03_wind_off 2 126 2030 1.0 0.0 +de 04_res 2 126 2030 1.0 0.0 +de 05_nuclear 2 126 2030 1.0 0.0 +de 06_coal 2 126 2030 1.0 0.0 +de 07_gas 2 126 2030 1.0 0.0 +de 08_non-res 2 126 2030 0.0 0.0 +de 09_hydro_pump 2 126 2030 0.0 0.0 +de 01_solar 2 127 2030 1.0 0.0 +de 02_wind_on 2 127 2030 1.0 0.0 +de 03_wind_off 2 127 2030 1.0 0.0 +de 04_res 2 127 2030 1.0 0.0 +de 05_nuclear 2 127 2030 1.0 0.0 +de 06_coal 2 127 2030 1.0 0.0 +de 07_gas 2 127 2030 1.0 0.0 +de 08_non-res 2 127 2030 0.0 0.0 +de 09_hydro_pump 2 127 2030 0.0 0.0 +de 01_solar 2 128 2030 1.0 0.0 +de 02_wind_on 2 128 2030 1.0 0.0 +de 03_wind_off 2 128 2030 1.0 0.0 +de 04_res 2 128 2030 1.0 0.0 +de 05_nuclear 2 128 2030 1.0 0.0 +de 06_coal 2 128 2030 1.0 0.0 +de 07_gas 2 128 2030 1.0 0.0 +de 08_non-res 2 128 2030 0.0 0.0 +de 09_hydro_pump 2 128 2030 0.0 0.0 +de 01_solar 2 129 2030 1.0 0.0 +de 02_wind_on 2 129 2030 1.0 0.0 +de 03_wind_off 2 129 2030 1.0 0.0 +de 04_res 2 129 2030 1.0 0.0 +de 05_nuclear 2 129 2030 1.0 0.0 +de 06_coal 2 129 2030 1.0 0.0 +de 07_gas 2 129 2030 1.0 0.0 +de 08_non-res 2 129 2030 0.0 0.0 +de 09_hydro_pump 2 129 2030 0.0 0.0 +de 01_solar 2 130 2030 1.0 0.0 +de 02_wind_on 2 130 2030 1.0 0.0 +de 03_wind_off 2 130 2030 1.0 0.0 +de 04_res 2 130 2030 1.0 0.0 +de 05_nuclear 2 130 2030 1.0 0.0 +de 06_coal 2 130 2030 1.0 0.0 +de 07_gas 2 130 2030 1.0 0.0 +de 08_non-res 2 130 2030 0.0 0.0 +de 09_hydro_pump 2 130 2030 0.0 0.0 +de 01_solar 2 131 2030 1.0 0.0 +de 02_wind_on 2 131 2030 1.0 0.0 +de 03_wind_off 2 131 2030 1.0 0.0 +de 04_res 2 131 2030 1.0 0.0 +de 05_nuclear 2 131 2030 1.0 0.0 +de 06_coal 2 131 2030 1.0 0.0 +de 07_gas 2 131 2030 1.0 0.0 +de 08_non-res 2 131 2030 0.0 0.0 +de 09_hydro_pump 2 131 2030 0.0 0.0 +de 01_solar 2 132 2030 1.0 0.0 +de 02_wind_on 2 132 2030 1.0 0.0 +de 03_wind_off 2 132 2030 1.0 0.0 +de 04_res 2 132 2030 1.0 0.0 +de 05_nuclear 2 132 2030 1.0 0.0 +de 06_coal 2 132 2030 1.0 0.0 +de 07_gas 2 132 2030 1.0 0.0 +de 08_non-res 2 132 2030 0.0 0.0 +de 09_hydro_pump 2 132 2030 0.0 0.0 +de 01_solar 2 133 2030 1.0 0.0 +de 02_wind_on 2 133 2030 1.0 0.0 +de 03_wind_off 2 133 2030 1.0 0.0 +de 04_res 2 133 2030 1.0 0.0 +de 05_nuclear 2 133 2030 1.0 0.0 +de 06_coal 2 133 2030 1.0 0.0 +de 07_gas 2 133 2030 1.0 0.0 +de 08_non-res 2 133 2030 0.0 0.0 +de 09_hydro_pump 2 133 2030 0.0 0.0 +de 01_solar 2 134 2030 1.0 0.0 +de 02_wind_on 2 134 2030 1.0 0.0 +de 03_wind_off 2 134 2030 1.0 0.0 +de 04_res 2 134 2030 1.0 0.0 +de 05_nuclear 2 134 2030 1.0 0.0 +de 06_coal 2 134 2030 1.0 0.0 +de 07_gas 2 134 2030 1.0 0.0 +de 08_non-res 2 134 2030 0.0 0.0 +de 09_hydro_pump 2 134 2030 0.0 0.0 +de 01_solar 2 135 2030 1.0 0.0 +de 02_wind_on 2 135 2030 1.0 0.0 +de 03_wind_off 2 135 2030 1.0 0.0 +de 04_res 2 135 2030 1.0 0.0 +de 05_nuclear 2 135 2030 1.0 0.0 +de 06_coal 2 135 2030 1.0 0.0 +de 07_gas 2 135 2030 1.0 0.0 +de 08_non-res 2 135 2030 0.0 0.0 +de 09_hydro_pump 2 135 2030 0.0 0.0 +de 01_solar 2 136 2030 1.0 0.0 +de 02_wind_on 2 136 2030 1.0 0.0 +de 03_wind_off 2 136 2030 1.0 0.0 +de 04_res 2 136 2030 1.0 0.0 +de 05_nuclear 2 136 2030 1.0 0.0 +de 06_coal 2 136 2030 1.0 0.0 +de 07_gas 2 136 2030 1.0 0.0 +de 08_non-res 2 136 2030 0.0 0.0 +de 09_hydro_pump 2 136 2030 0.0 0.0 +de 01_solar 2 137 2030 1.0 0.0 +de 02_wind_on 2 137 2030 1.0 0.0 +de 03_wind_off 2 137 2030 1.0 0.0 +de 04_res 2 137 2030 1.0 0.0 +de 05_nuclear 2 137 2030 1.0 0.0 +de 06_coal 2 137 2030 1.0 0.0 +de 07_gas 2 137 2030 1.0 0.0 +de 08_non-res 2 137 2030 0.0 0.0 +de 09_hydro_pump 2 137 2030 0.0 0.0 +de 01_solar 2 138 2030 1.0 0.0 +de 02_wind_on 2 138 2030 1.0 0.0 +de 03_wind_off 2 138 2030 1.0 0.0 +de 04_res 2 138 2030 1.0 0.0 +de 05_nuclear 2 138 2030 1.0 0.0 +de 06_coal 2 138 2030 1.0 0.0 +de 07_gas 2 138 2030 1.0 0.0 +de 08_non-res 2 138 2030 0.0 0.0 +de 09_hydro_pump 2 138 2030 0.0 0.0 +de 01_solar 2 139 2030 1.0 0.0 +de 02_wind_on 2 139 2030 1.0 0.0 +de 03_wind_off 2 139 2030 1.0 0.0 +de 04_res 2 139 2030 1.0 0.0 +de 05_nuclear 2 139 2030 1.0 0.0 +de 06_coal 2 139 2030 1.0 0.0 +de 07_gas 2 139 2030 1.0 0.0 +de 08_non-res 2 139 2030 0.0 0.0 +de 09_hydro_pump 2 139 2030 0.0 0.0 +de 01_solar 2 140 2030 1.0 0.0 +de 02_wind_on 2 140 2030 1.0 0.0 +de 03_wind_off 2 140 2030 1.0 0.0 +de 04_res 2 140 2030 1.0 0.0 +de 05_nuclear 2 140 2030 1.0 0.0 +de 06_coal 2 140 2030 1.0 0.0 +de 07_gas 2 140 2030 1.0 0.0 +de 08_non-res 2 140 2030 0.0 0.0 +de 09_hydro_pump 2 140 2030 0.0 0.0 +de 01_solar 2 141 2030 1.0 0.0 +de 02_wind_on 2 141 2030 1.0 0.0 +de 03_wind_off 2 141 2030 1.0 0.0 +de 04_res 2 141 2030 1.0 0.0 +de 05_nuclear 2 141 2030 1.0 0.0 +de 06_coal 2 141 2030 1.0 0.0 +de 07_gas 2 141 2030 1.0 0.0 +de 08_non-res 2 141 2030 0.0 0.0 +de 09_hydro_pump 2 141 2030 0.0 0.0 +de 01_solar 2 142 2030 1.0 0.0 +de 02_wind_on 2 142 2030 1.0 0.0 +de 03_wind_off 2 142 2030 1.0 0.0 +de 04_res 2 142 2030 1.0 0.0 +de 05_nuclear 2 142 2030 1.0 0.0 +de 06_coal 2 142 2030 1.0 0.0 +de 07_gas 2 142 2030 1.0 0.0 +de 08_non-res 2 142 2030 1.0 0.0 +de 09_hydro_pump 2 142 2030 0.0 0.0 +de 01_solar 2 143 2030 1.0 0.0 +de 02_wind_on 2 143 2030 1.0 0.0 +de 03_wind_off 2 143 2030 1.0 0.0 +de 04_res 2 143 2030 1.0 0.0 +de 05_nuclear 2 143 2030 1.0 0.0 +de 06_coal 2 143 2030 1.0 0.0 +de 07_gas 2 143 2030 1.0 0.0 +de 08_non-res 2 143 2030 1.0 0.0 +de 09_hydro_pump 2 143 2030 0.0 0.0 +de 01_solar 2 144 2030 1.0 0.0 +de 02_wind_on 2 144 2030 1.0 0.0 +de 03_wind_off 2 144 2030 1.0 0.0 +de 04_res 2 144 2030 1.0 0.0 +de 05_nuclear 2 144 2030 1.0 0.0 +de 06_coal 2 144 2030 1.0 0.0 +de 07_gas 2 144 2030 1.0 0.0 +de 08_non-res 2 144 2030 1.0 0.0 +de 09_hydro_pump 2 144 2030 0.0 0.0 +de 01_solar 2 145 2030 1.0 0.0 +de 02_wind_on 2 145 2030 1.0 0.0 +de 03_wind_off 2 145 2030 1.0 0.0 +de 04_res 2 145 2030 1.0 0.0 +de 05_nuclear 2 145 2030 1.0 0.0 +de 06_coal 2 145 2030 1.0 0.0 +de 07_gas 2 145 2030 1.0 0.0 +de 08_non-res 2 145 2030 1.0 0.0 +de 09_hydro_pump 2 145 2030 0.0 0.0 +de 01_solar 2 146 2030 1.0 0.0 +de 02_wind_on 2 146 2030 1.0 0.0 +de 03_wind_off 2 146 2030 1.0 0.0 +de 04_res 2 146 2030 1.0 0.0 +de 05_nuclear 2 146 2030 1.0 0.0 +de 06_coal 2 146 2030 1.0 0.0 +de 07_gas 2 146 2030 1.0 0.0 +de 08_non-res 2 146 2030 1.0 0.0 +de 09_hydro_pump 2 146 2030 0.0 0.0 +de 01_solar 2 147 2030 1.0 0.0 +de 02_wind_on 2 147 2030 1.0 0.0 +de 03_wind_off 2 147 2030 1.0 0.0 +de 04_res 2 147 2030 1.0 0.0 +de 05_nuclear 2 147 2030 1.0 0.0 +de 06_coal 2 147 2030 1.0 0.0 +de 07_gas 2 147 2030 1.0 0.0 +de 08_non-res 2 147 2030 1.0 0.0 +de 09_hydro_pump 2 147 2030 0.0 0.0 +de 01_solar 2 148 2030 1.0 0.0 +de 02_wind_on 2 148 2030 1.0 0.0 +de 03_wind_off 2 148 2030 1.0 0.0 +de 04_res 2 148 2030 1.0 0.0 +de 05_nuclear 2 148 2030 1.0 0.0 +de 06_coal 2 148 2030 1.0 0.0 +de 07_gas 2 148 2030 1.0 0.0 +de 08_non-res 2 148 2030 1.0 0.0 +de 09_hydro_pump 2 148 2030 0.0 0.0 +de 01_solar 2 149 2030 1.0 0.0 +de 02_wind_on 2 149 2030 1.0 0.0 +de 03_wind_off 2 149 2030 1.0 0.0 +de 04_res 2 149 2030 1.0 0.0 +de 05_nuclear 2 149 2030 1.0 0.0 +de 06_coal 2 149 2030 1.0 0.0 +de 07_gas 2 149 2030 1.0 0.0 +de 08_non-res 2 149 2030 1.0 0.0 +de 09_hydro_pump 2 149 2030 0.0 0.0 +de 01_solar 2 150 2030 1.0 0.0 +de 02_wind_on 2 150 2030 1.0 0.0 +de 03_wind_off 2 150 2030 1.0 0.0 +de 04_res 2 150 2030 1.0 0.0 +de 05_nuclear 2 150 2030 1.0 0.0 +de 06_coal 2 150 2030 1.0 0.0 +de 07_gas 2 150 2030 1.0 0.0 +de 08_non-res 2 150 2030 1.0 0.0 +de 09_hydro_pump 2 150 2030 0.0 0.0 +de 01_solar 2 151 2030 1.0 0.0 +de 02_wind_on 2 151 2030 1.0 0.0 +de 03_wind_off 2 151 2030 1.0 0.0 +de 04_res 2 151 2030 1.0 0.0 +de 05_nuclear 2 151 2030 1.0 0.0 +de 06_coal 2 151 2030 1.0 0.0 +de 07_gas 2 151 2030 1.0 0.0 +de 08_non-res 2 151 2030 1.0 0.0 +de 09_hydro_pump 2 151 2030 0.0 0.0 +de 01_solar 2 152 2030 1.0 0.0 +de 02_wind_on 2 152 2030 1.0 0.0 +de 03_wind_off 2 152 2030 1.0 0.0 +de 04_res 2 152 2030 1.0 0.0 +de 05_nuclear 2 152 2030 1.0 0.0 +de 06_coal 2 152 2030 1.0 0.0 +de 07_gas 2 152 2030 1.0 0.0 +de 08_non-res 2 152 2030 1.0 0.0 +de 09_hydro_pump 2 152 2030 0.0 0.0 +de 01_solar 2 153 2030 1.0 0.0 +de 02_wind_on 2 153 2030 1.0 0.0 +de 03_wind_off 2 153 2030 1.0 0.0 +de 04_res 2 153 2030 1.0 0.0 +de 05_nuclear 2 153 2030 1.0 0.0 +de 06_coal 2 153 2030 1.0 0.0 +de 07_gas 2 153 2030 1.0 0.0 +de 08_non-res 2 153 2030 1.0 0.0 +de 09_hydro_pump 2 153 2030 0.0 0.0 +de 01_solar 2 154 2030 1.0 0.0 +de 02_wind_on 2 154 2030 1.0 0.0 +de 03_wind_off 2 154 2030 1.0 0.0 +de 04_res 2 154 2030 1.0 0.0 +de 05_nuclear 2 154 2030 1.0 0.0 +de 06_coal 2 154 2030 1.0 0.0 +de 07_gas 2 154 2030 1.0 0.0 +de 08_non-res 2 154 2030 1.0 0.0 +de 09_hydro_pump 2 154 2030 0.0 0.0 +de 01_solar 2 155 2030 1.0 0.0 +de 02_wind_on 2 155 2030 1.0 0.0 +de 03_wind_off 2 155 2030 1.0 0.0 +de 04_res 2 155 2030 1.0 0.0 +de 05_nuclear 2 155 2030 1.0 0.0 +de 06_coal 2 155 2030 1.0 0.0 +de 07_gas 2 155 2030 1.0 0.0 +de 08_non-res 2 155 2030 1.0 0.0 +de 09_hydro_pump 2 155 2030 0.0 0.0 +de 01_solar 2 156 2030 1.0 0.0 +de 02_wind_on 2 156 2030 1.0 0.0 +de 03_wind_off 2 156 2030 1.0 0.0 +de 04_res 2 156 2030 1.0 0.0 +de 05_nuclear 2 156 2030 1.0 0.0 +de 06_coal 2 156 2030 1.0 0.0 +de 07_gas 2 156 2030 1.0 0.0 +de 08_non-res 2 156 2030 1.0 0.0 +de 09_hydro_pump 2 156 2030 0.0 0.0 +de 01_solar 2 157 2030 1.0 0.0 +de 02_wind_on 2 157 2030 1.0 0.0 +de 03_wind_off 2 157 2030 1.0 0.0 +de 04_res 2 157 2030 1.0 0.0 +de 05_nuclear 2 157 2030 1.0 0.0 +de 06_coal 2 157 2030 1.0 0.0 +de 07_gas 2 157 2030 1.0 0.0 +de 08_non-res 2 157 2030 1.0 0.0 +de 09_hydro_pump 2 157 2030 0.0 0.0 +de 01_solar 2 158 2030 1.0 0.0 +de 02_wind_on 2 158 2030 1.0 0.0 +de 03_wind_off 2 158 2030 1.0 0.0 +de 04_res 2 158 2030 1.0 0.0 +de 05_nuclear 2 158 2030 1.0 0.0 +de 06_coal 2 158 2030 1.0 0.0 +de 07_gas 2 158 2030 1.0 0.0 +de 08_non-res 2 158 2030 1.0 0.0 +de 09_hydro_pump 2 158 2030 0.0 0.0 +de 01_solar 2 159 2030 1.0 0.0 +de 02_wind_on 2 159 2030 1.0 0.0 +de 03_wind_off 2 159 2030 1.0 0.0 +de 04_res 2 159 2030 1.0 0.0 +de 05_nuclear 2 159 2030 1.0 0.0 +de 06_coal 2 159 2030 1.0 0.0 +de 07_gas 2 159 2030 1.0 0.0 +de 08_non-res 2 159 2030 1.0 0.0 +de 09_hydro_pump 2 159 2030 0.0 0.0 +de 01_solar 2 160 2030 1.0 0.0 +de 02_wind_on 2 160 2030 1.0 0.0 +de 03_wind_off 2 160 2030 1.0 0.0 +de 04_res 2 160 2030 1.0 0.0 +de 05_nuclear 2 160 2030 1.0 0.0 +de 06_coal 2 160 2030 1.0 0.0 +de 07_gas 2 160 2030 1.0 0.0 +de 08_non-res 2 160 2030 1.0 0.0 +de 09_hydro_pump 2 160 2030 0.0 0.0 +de 01_solar 2 161 2030 1.0 0.0 +de 02_wind_on 2 161 2030 1.0 0.0 +de 03_wind_off 2 161 2030 1.0 0.0 +de 04_res 2 161 2030 1.0 0.0 +de 05_nuclear 2 161 2030 1.0 0.0 +de 06_coal 2 161 2030 1.0 0.0 +de 07_gas 2 161 2030 1.0 0.0 +de 08_non-res 2 161 2030 1.0 0.0 +de 09_hydro_pump 2 161 2030 0.0 0.0 +de 01_solar 2 162 2030 1.0 0.0 +de 02_wind_on 2 162 2030 1.0 0.0 +de 03_wind_off 2 162 2030 1.0 0.0 +de 04_res 2 162 2030 1.0 0.0 +de 05_nuclear 2 162 2030 1.0 0.0 +de 06_coal 2 162 2030 1.0 0.0 +de 07_gas 2 162 2030 1.0 0.0 +de 08_non-res 2 162 2030 1.0 0.0 +de 09_hydro_pump 2 162 2030 1.0 0.0 +de 01_solar 2 163 2030 1.0 0.0 +de 02_wind_on 2 163 2030 1.0 0.0 +de 03_wind_off 2 163 2030 1.0 0.0 +de 04_res 2 163 2030 1.0 0.0 +de 05_nuclear 2 163 2030 1.0 0.0 +de 06_coal 2 163 2030 1.0 0.0 +de 07_gas 2 163 2030 1.0 0.0 +de 08_non-res 2 163 2030 1.0 0.0 +de 09_hydro_pump 2 163 2030 1.0 0.0 +de 01_solar 2 164 2030 1.0 0.0 +de 02_wind_on 2 164 2030 1.0 0.0 +de 03_wind_off 2 164 2030 1.0 0.0 +de 04_res 2 164 2030 1.0 0.0 +de 05_nuclear 2 164 2030 1.0 0.0 +de 06_coal 2 164 2030 1.0 0.0 +de 07_gas 2 164 2030 1.0 0.0 +de 08_non-res 2 164 2030 1.0 0.0 +de 09_hydro_pump 2 164 2030 1.0 0.0 +de 01_solar 2 165 2030 1.0 0.0 +de 02_wind_on 2 165 2030 1.0 0.0 +de 03_wind_off 2 165 2030 1.0 0.0 +de 04_res 2 165 2030 1.0 0.0 +de 05_nuclear 2 165 2030 1.0 0.0 +de 06_coal 2 165 2030 1.0 0.0 +de 07_gas 2 165 2030 1.0 0.0 +de 08_non-res 2 165 2030 1.0 0.0 +de 09_hydro_pump 2 165 2030 1.0 0.0 +de 01_solar 2 166 2030 1.0 0.0 +de 02_wind_on 2 166 2030 1.0 0.0 +de 03_wind_off 2 166 2030 1.0 0.0 +de 04_res 2 166 2030 1.0 0.0 +de 05_nuclear 2 166 2030 1.0 0.0 +de 06_coal 2 166 2030 1.0 0.0 +de 07_gas 2 166 2030 1.0 0.0 +de 08_non-res 2 166 2030 1.0 0.0 +de 09_hydro_pump 2 166 2030 1.0 0.0 +de 01_solar 2 167 2030 1.0 0.0 +de 02_wind_on 2 167 2030 1.0 0.0 +de 03_wind_off 2 167 2030 1.0 0.0 +de 04_res 2 167 2030 1.0 0.0 +de 05_nuclear 2 167 2030 1.0 0.0 +de 06_coal 2 167 2030 1.0 0.0 +de 07_gas 2 167 2030 1.0 0.0 +de 08_non-res 2 167 2030 1.0 0.0 +de 09_hydro_pump 2 167 2030 1.0 0.0 +de 01_solar 2 168 2030 1.0 0.0 +de 02_wind_on 2 168 2030 1.0 0.0 +de 03_wind_off 2 168 2030 1.0 0.0 +de 04_res 2 168 2030 1.0 0.0 +de 05_nuclear 2 168 2030 1.0 0.0 +de 06_coal 2 168 2030 1.0 0.0 +de 07_gas 2 168 2030 1.0 0.0 +de 08_non-res 2 168 2030 1.0 0.0 +de 09_hydro_pump 2 168 2030 1.0 0.0 +de 01_solar 2 169 2030 0.0 0.0 +de 02_wind_on 2 169 2030 0.0 0.0 +de 03_wind_off 2 169 2030 0.0 0.0 +de 04_res 2 169 2030 0.0 0.0 +de 05_nuclear 2 169 2030 0.0 0.0 +de 06_coal 2 169 2030 0.0 0.0 +de 07_gas 2 169 2030 0.0 0.0 +de 08_non-res 2 169 2030 0.0 0.0 +de 09_hydro_pump 2 169 2030 0.0 0.0 +de 01_solar 2 170 2030 1.0 0.0 +de 02_wind_on 2 170 2030 0.0 0.0 +de 03_wind_off 2 170 2030 0.0 0.0 +de 04_res 2 170 2030 0.0 0.0 +de 05_nuclear 2 170 2030 0.0 0.0 +de 06_coal 2 170 2030 0.0 0.0 +de 07_gas 2 170 2030 0.0 0.0 +de 08_non-res 2 170 2030 0.0 0.0 +de 09_hydro_pump 2 170 2030 0.0 0.0 +de 01_solar 2 171 2030 1.0 0.0 +de 02_wind_on 2 171 2030 0.0 0.0 +de 03_wind_off 2 171 2030 0.0 0.0 +de 04_res 2 171 2030 0.0 0.0 +de 05_nuclear 2 171 2030 0.0 0.0 +de 06_coal 2 171 2030 0.0 0.0 +de 07_gas 2 171 2030 0.0 0.0 +de 08_non-res 2 171 2030 0.0 0.0 +de 09_hydro_pump 2 171 2030 0.0 0.0 +de 01_solar 2 172 2030 1.0 0.0 +de 02_wind_on 2 172 2030 0.0 0.0 +de 03_wind_off 2 172 2030 0.0 0.0 +de 04_res 2 172 2030 0.0 0.0 +de 05_nuclear 2 172 2030 0.0 0.0 +de 06_coal 2 172 2030 0.0 0.0 +de 07_gas 2 172 2030 0.0 0.0 +de 08_non-res 2 172 2030 0.0 0.0 +de 09_hydro_pump 2 172 2030 0.0 0.0 +de 01_solar 2 173 2030 1.0 0.0 +de 02_wind_on 2 173 2030 0.0 0.0 +de 03_wind_off 2 173 2030 0.0 0.0 +de 04_res 2 173 2030 0.0 0.0 +de 05_nuclear 2 173 2030 0.0 0.0 +de 06_coal 2 173 2030 0.0 0.0 +de 07_gas 2 173 2030 0.0 0.0 +de 08_non-res 2 173 2030 0.0 0.0 +de 09_hydro_pump 2 173 2030 0.0 0.0 +de 01_solar 2 174 2030 1.0 0.0 +de 02_wind_on 2 174 2030 0.0 0.0 +de 03_wind_off 2 174 2030 0.0 0.0 +de 04_res 2 174 2030 0.0 0.0 +de 05_nuclear 2 174 2030 0.0 0.0 +de 06_coal 2 174 2030 0.0 0.0 +de 07_gas 2 174 2030 0.0 0.0 +de 08_non-res 2 174 2030 0.0 0.0 +de 09_hydro_pump 2 174 2030 0.0 0.0 +de 01_solar 2 175 2030 1.0 0.0 +de 02_wind_on 2 175 2030 0.0 0.0 +de 03_wind_off 2 175 2030 0.0 0.0 +de 04_res 2 175 2030 0.0 0.0 +de 05_nuclear 2 175 2030 0.0 0.0 +de 06_coal 2 175 2030 0.0 0.0 +de 07_gas 2 175 2030 0.0 0.0 +de 08_non-res 2 175 2030 0.0 0.0 +de 09_hydro_pump 2 175 2030 0.0 0.0 +de 01_solar 2 176 2030 1.0 0.0 +de 02_wind_on 2 176 2030 0.0 0.0 +de 03_wind_off 2 176 2030 0.0 0.0 +de 04_res 2 176 2030 0.0 0.0 +de 05_nuclear 2 176 2030 0.0 0.0 +de 06_coal 2 176 2030 0.0 0.0 +de 07_gas 2 176 2030 0.0 0.0 +de 08_non-res 2 176 2030 0.0 0.0 +de 09_hydro_pump 2 176 2030 0.0 0.0 +de 01_solar 2 177 2030 1.0 0.0 +de 02_wind_on 2 177 2030 0.0 0.0 +de 03_wind_off 2 177 2030 0.0 0.0 +de 04_res 2 177 2030 0.0 0.0 +de 05_nuclear 2 177 2030 0.0 0.0 +de 06_coal 2 177 2030 0.0 0.0 +de 07_gas 2 177 2030 0.0 0.0 +de 08_non-res 2 177 2030 0.0 0.0 +de 09_hydro_pump 2 177 2030 0.0 0.0 +de 01_solar 2 178 2030 1.0 0.0 +de 02_wind_on 2 178 2030 0.0 0.0 +de 03_wind_off 2 178 2030 0.0 0.0 +de 04_res 2 178 2030 0.0 0.0 +de 05_nuclear 2 178 2030 0.0 0.0 +de 06_coal 2 178 2030 0.0 0.0 +de 07_gas 2 178 2030 0.0 0.0 +de 08_non-res 2 178 2030 0.0 0.0 +de 09_hydro_pump 2 178 2030 0.0 0.0 +de 01_solar 2 179 2030 1.0 0.0 +de 02_wind_on 2 179 2030 0.0 0.0 +de 03_wind_off 2 179 2030 0.0 0.0 +de 04_res 2 179 2030 0.0 0.0 +de 05_nuclear 2 179 2030 0.0 0.0 +de 06_coal 2 179 2030 0.0 0.0 +de 07_gas 2 179 2030 0.0 0.0 +de 08_non-res 2 179 2030 0.0 0.0 +de 09_hydro_pump 2 179 2030 0.0 0.0 +de 01_solar 2 180 2030 1.0 0.0 +de 02_wind_on 2 180 2030 0.0 0.0 +de 03_wind_off 2 180 2030 0.0 0.0 +de 04_res 2 180 2030 0.0 0.0 +de 05_nuclear 2 180 2030 0.0 0.0 +de 06_coal 2 180 2030 0.0 0.0 +de 07_gas 2 180 2030 0.0 0.0 +de 08_non-res 2 180 2030 0.0 0.0 +de 09_hydro_pump 2 180 2030 0.0 0.0 +de 01_solar 2 181 2030 1.0 0.0 +de 02_wind_on 2 181 2030 0.0 0.0 +de 03_wind_off 2 181 2030 0.0 0.0 +de 04_res 2 181 2030 0.0 0.0 +de 05_nuclear 2 181 2030 0.0 0.0 +de 06_coal 2 181 2030 0.0 0.0 +de 07_gas 2 181 2030 0.0 0.0 +de 08_non-res 2 181 2030 0.0 0.0 +de 09_hydro_pump 2 181 2030 0.0 0.0 +de 01_solar 2 182 2030 1.0 0.0 +de 02_wind_on 2 182 2030 0.0 0.0 +de 03_wind_off 2 182 2030 0.0 0.0 +de 04_res 2 182 2030 0.0 0.0 +de 05_nuclear 2 182 2030 0.0 0.0 +de 06_coal 2 182 2030 0.0 0.0 +de 07_gas 2 182 2030 0.0 0.0 +de 08_non-res 2 182 2030 0.0 0.0 +de 09_hydro_pump 2 182 2030 0.0 0.0 +de 01_solar 2 183 2030 1.0 0.0 +de 02_wind_on 2 183 2030 0.0 0.0 +de 03_wind_off 2 183 2030 0.0 0.0 +de 04_res 2 183 2030 0.0 0.0 +de 05_nuclear 2 183 2030 0.0 0.0 +de 06_coal 2 183 2030 0.0 0.0 +de 07_gas 2 183 2030 0.0 0.0 +de 08_non-res 2 183 2030 0.0 0.0 +de 09_hydro_pump 2 183 2030 0.0 0.0 +de 01_solar 2 184 2030 1.0 0.0 +de 02_wind_on 2 184 2030 0.0 0.0 +de 03_wind_off 2 184 2030 0.0 0.0 +de 04_res 2 184 2030 0.0 0.0 +de 05_nuclear 2 184 2030 0.0 0.0 +de 06_coal 2 184 2030 0.0 0.0 +de 07_gas 2 184 2030 0.0 0.0 +de 08_non-res 2 184 2030 0.0 0.0 +de 09_hydro_pump 2 184 2030 0.0 0.0 +de 01_solar 2 185 2030 1.0 0.0 +de 02_wind_on 2 185 2030 0.0 0.0 +de 03_wind_off 2 185 2030 0.0 0.0 +de 04_res 2 185 2030 0.0 0.0 +de 05_nuclear 2 185 2030 0.0 0.0 +de 06_coal 2 185 2030 0.0 0.0 +de 07_gas 2 185 2030 0.0 0.0 +de 08_non-res 2 185 2030 0.0 0.0 +de 09_hydro_pump 2 185 2030 0.0 0.0 +de 01_solar 2 186 2030 1.0 0.0 +de 02_wind_on 2 186 2030 0.0 0.0 +de 03_wind_off 2 186 2030 0.0 0.0 +de 04_res 2 186 2030 0.0 0.0 +de 05_nuclear 2 186 2030 0.0 0.0 +de 06_coal 2 186 2030 0.0 0.0 +de 07_gas 2 186 2030 0.0 0.0 +de 08_non-res 2 186 2030 0.0 0.0 +de 09_hydro_pump 2 186 2030 0.0 0.0 +de 01_solar 2 187 2030 1.0 0.0 +de 02_wind_on 2 187 2030 0.0 0.0 +de 03_wind_off 2 187 2030 0.0 0.0 +de 04_res 2 187 2030 0.0 0.0 +de 05_nuclear 2 187 2030 0.0 0.0 +de 06_coal 2 187 2030 0.0 0.0 +de 07_gas 2 187 2030 0.0 0.0 +de 08_non-res 2 187 2030 0.0 0.0 +de 09_hydro_pump 2 187 2030 0.0 0.0 +de 01_solar 2 188 2030 1.0 0.0 +de 02_wind_on 2 188 2030 0.0 0.0 +de 03_wind_off 2 188 2030 0.0 0.0 +de 04_res 2 188 2030 0.0 0.0 +de 05_nuclear 2 188 2030 0.0 0.0 +de 06_coal 2 188 2030 0.0 0.0 +de 07_gas 2 188 2030 0.0 0.0 +de 08_non-res 2 188 2030 0.0 0.0 +de 09_hydro_pump 2 188 2030 0.0 0.0 +de 01_solar 2 189 2030 1.0 0.0 +de 02_wind_on 2 189 2030 0.0 0.0 +de 03_wind_off 2 189 2030 0.0 0.0 +de 04_res 2 189 2030 0.0 0.0 +de 05_nuclear 2 189 2030 0.0 0.0 +de 06_coal 2 189 2030 0.0 0.0 +de 07_gas 2 189 2030 0.0 0.0 +de 08_non-res 2 189 2030 0.0 0.0 +de 09_hydro_pump 2 189 2030 0.0 0.0 +de 01_solar 2 190 2030 1.0 0.0 +de 02_wind_on 2 190 2030 1.0 0.0 +de 03_wind_off 2 190 2030 0.0 0.0 +de 04_res 2 190 2030 0.0 0.0 +de 05_nuclear 2 190 2030 0.0 0.0 +de 06_coal 2 190 2030 0.0 0.0 +de 07_gas 2 190 2030 0.0 0.0 +de 08_non-res 2 190 2030 0.0 0.0 +de 09_hydro_pump 2 190 2030 0.0 0.0 +de 01_solar 2 191 2030 1.0 0.0 +de 02_wind_on 2 191 2030 1.0 0.0 +de 03_wind_off 2 191 2030 0.0 0.0 +de 04_res 2 191 2030 0.0 0.0 +de 05_nuclear 2 191 2030 0.0 0.0 +de 06_coal 2 191 2030 0.0 0.0 +de 07_gas 2 191 2030 0.0 0.0 +de 08_non-res 2 191 2030 0.0 0.0 +de 09_hydro_pump 2 191 2030 0.0 0.0 +de 01_solar 2 192 2030 1.0 0.0 +de 02_wind_on 2 192 2030 1.0 0.0 +de 03_wind_off 2 192 2030 0.0 0.0 +de 04_res 2 192 2030 0.0 0.0 +de 05_nuclear 2 192 2030 0.0 0.0 +de 06_coal 2 192 2030 0.0 0.0 +de 07_gas 2 192 2030 0.0 0.0 +de 08_non-res 2 192 2030 0.0 0.0 +de 09_hydro_pump 2 192 2030 0.0 0.0 +de 01_solar 2 193 2030 1.0 0.0 +de 02_wind_on 2 193 2030 1.0 0.0 +de 03_wind_off 2 193 2030 0.0 0.0 +de 04_res 2 193 2030 0.0 0.0 +de 05_nuclear 2 193 2030 0.0 0.0 +de 06_coal 2 193 2030 0.0 0.0 +de 07_gas 2 193 2030 0.0 0.0 +de 08_non-res 2 193 2030 0.0 0.0 +de 09_hydro_pump 2 193 2030 0.0 0.0 +de 01_solar 2 194 2030 1.0 0.0 +de 02_wind_on 2 194 2030 1.0 0.0 +de 03_wind_off 2 194 2030 0.0 0.0 +de 04_res 2 194 2030 0.0 0.0 +de 05_nuclear 2 194 2030 0.0 0.0 +de 06_coal 2 194 2030 0.0 0.0 +de 07_gas 2 194 2030 0.0 0.0 +de 08_non-res 2 194 2030 0.0 0.0 +de 09_hydro_pump 2 194 2030 0.0 0.0 +de 01_solar 2 195 2030 1.0 0.0 +de 02_wind_on 2 195 2030 1.0 0.0 +de 03_wind_off 2 195 2030 0.0 0.0 +de 04_res 2 195 2030 0.0 0.0 +de 05_nuclear 2 195 2030 0.0 0.0 +de 06_coal 2 195 2030 0.0 0.0 +de 07_gas 2 195 2030 0.0 0.0 +de 08_non-res 2 195 2030 0.0 0.0 +de 09_hydro_pump 2 195 2030 0.0 0.0 +de 01_solar 2 196 2030 1.0 0.0 +de 02_wind_on 2 196 2030 1.0 0.0 +de 03_wind_off 2 196 2030 0.0 0.0 +de 04_res 2 196 2030 0.0 0.0 +de 05_nuclear 2 196 2030 0.0 0.0 +de 06_coal 2 196 2030 0.0 0.0 +de 07_gas 2 196 2030 0.0 0.0 +de 08_non-res 2 196 2030 0.0 0.0 +de 09_hydro_pump 2 196 2030 0.0 0.0 +de 01_solar 2 197 2030 1.0 0.0 +de 02_wind_on 2 197 2030 1.0 0.0 +de 03_wind_off 2 197 2030 0.0 0.0 +de 04_res 2 197 2030 0.0 0.0 +de 05_nuclear 2 197 2030 0.0 0.0 +de 06_coal 2 197 2030 0.0 0.0 +de 07_gas 2 197 2030 0.0 0.0 +de 08_non-res 2 197 2030 0.0 0.0 +de 09_hydro_pump 2 197 2030 0.0 0.0 +de 01_solar 2 198 2030 1.0 0.0 +de 02_wind_on 2 198 2030 1.0 0.0 +de 03_wind_off 2 198 2030 0.0 0.0 +de 04_res 2 198 2030 0.0 0.0 +de 05_nuclear 2 198 2030 0.0 0.0 +de 06_coal 2 198 2030 0.0 0.0 +de 07_gas 2 198 2030 0.0 0.0 +de 08_non-res 2 198 2030 0.0 0.0 +de 09_hydro_pump 2 198 2030 0.0 0.0 +de 01_solar 2 199 2030 1.0 0.0 +de 02_wind_on 2 199 2030 1.0 0.0 +de 03_wind_off 2 199 2030 0.0 0.0 +de 04_res 2 199 2030 0.0 0.0 +de 05_nuclear 2 199 2030 0.0 0.0 +de 06_coal 2 199 2030 0.0 0.0 +de 07_gas 2 199 2030 0.0 0.0 +de 08_non-res 2 199 2030 0.0 0.0 +de 09_hydro_pump 2 199 2030 0.0 0.0 +de 01_solar 2 200 2030 1.0 0.0 +de 02_wind_on 2 200 2030 1.0 0.0 +de 03_wind_off 2 200 2030 0.0 0.0 +de 04_res 2 200 2030 0.0 0.0 +de 05_nuclear 2 200 2030 0.0 0.0 +de 06_coal 2 200 2030 0.0 0.0 +de 07_gas 2 200 2030 0.0 0.0 +de 08_non-res 2 200 2030 0.0 0.0 +de 09_hydro_pump 2 200 2030 0.0 0.0 +de 01_solar 2 201 2030 1.0 0.0 +de 02_wind_on 2 201 2030 1.0 0.0 +de 03_wind_off 2 201 2030 0.0 0.0 +de 04_res 2 201 2030 0.0 0.0 +de 05_nuclear 2 201 2030 0.0 0.0 +de 06_coal 2 201 2030 0.0 0.0 +de 07_gas 2 201 2030 0.0 0.0 +de 08_non-res 2 201 2030 0.0 0.0 +de 09_hydro_pump 2 201 2030 0.0 0.0 +de 01_solar 2 202 2030 1.0 0.0 +de 02_wind_on 2 202 2030 1.0 0.0 +de 03_wind_off 2 202 2030 0.0 0.0 +de 04_res 2 202 2030 0.0 0.0 +de 05_nuclear 2 202 2030 0.0 0.0 +de 06_coal 2 202 2030 0.0 0.0 +de 07_gas 2 202 2030 0.0 0.0 +de 08_non-res 2 202 2030 0.0 0.0 +de 09_hydro_pump 2 202 2030 0.0 0.0 +de 01_solar 2 203 2030 1.0 0.0 +de 02_wind_on 2 203 2030 1.0 0.0 +de 03_wind_off 2 203 2030 0.0 0.0 +de 04_res 2 203 2030 0.0 0.0 +de 05_nuclear 2 203 2030 0.0 0.0 +de 06_coal 2 203 2030 0.0 0.0 +de 07_gas 2 203 2030 0.0 0.0 +de 08_non-res 2 203 2030 0.0 0.0 +de 09_hydro_pump 2 203 2030 0.0 0.0 +de 01_solar 2 204 2030 1.0 0.0 +de 02_wind_on 2 204 2030 1.0 0.0 +de 03_wind_off 2 204 2030 0.0 0.0 +de 04_res 2 204 2030 0.0 0.0 +de 05_nuclear 2 204 2030 0.0 0.0 +de 06_coal 2 204 2030 0.0 0.0 +de 07_gas 2 204 2030 0.0 0.0 +de 08_non-res 2 204 2030 0.0 0.0 +de 09_hydro_pump 2 204 2030 0.0 0.0 +de 01_solar 2 205 2030 1.0 0.0 +de 02_wind_on 2 205 2030 1.0 0.0 +de 03_wind_off 2 205 2030 0.0 0.0 +de 04_res 2 205 2030 0.0 0.0 +de 05_nuclear 2 205 2030 0.0 0.0 +de 06_coal 2 205 2030 0.0 0.0 +de 07_gas 2 205 2030 0.0 0.0 +de 08_non-res 2 205 2030 0.0 0.0 +de 09_hydro_pump 2 205 2030 0.0 0.0 +de 01_solar 2 206 2030 1.0 0.0 +de 02_wind_on 2 206 2030 1.0 0.0 +de 03_wind_off 2 206 2030 0.0 0.0 +de 04_res 2 206 2030 0.0 0.0 +de 05_nuclear 2 206 2030 0.0 0.0 +de 06_coal 2 206 2030 0.0 0.0 +de 07_gas 2 206 2030 0.0 0.0 +de 08_non-res 2 206 2030 0.0 0.0 +de 09_hydro_pump 2 206 2030 0.0 0.0 +de 01_solar 2 207 2030 1.0 0.0 +de 02_wind_on 2 207 2030 1.0 0.0 +de 03_wind_off 2 207 2030 0.0 0.0 +de 04_res 2 207 2030 0.0 0.0 +de 05_nuclear 2 207 2030 0.0 0.0 +de 06_coal 2 207 2030 0.0 0.0 +de 07_gas 2 207 2030 0.0 0.0 +de 08_non-res 2 207 2030 0.0 0.0 +de 09_hydro_pump 2 207 2030 0.0 0.0 +de 01_solar 2 208 2030 1.0 0.0 +de 02_wind_on 2 208 2030 1.0 0.0 +de 03_wind_off 2 208 2030 0.0 0.0 +de 04_res 2 208 2030 0.0 0.0 +de 05_nuclear 2 208 2030 0.0 0.0 +de 06_coal 2 208 2030 0.0 0.0 +de 07_gas 2 208 2030 0.0 0.0 +de 08_non-res 2 208 2030 0.0 0.0 +de 09_hydro_pump 2 208 2030 0.0 0.0 +de 01_solar 2 209 2030 1.0 0.0 +de 02_wind_on 2 209 2030 1.0 0.0 +de 03_wind_off 2 209 2030 0.0 0.0 +de 04_res 2 209 2030 0.0 0.0 +de 05_nuclear 2 209 2030 0.0 0.0 +de 06_coal 2 209 2030 0.0 0.0 +de 07_gas 2 209 2030 0.0 0.0 +de 08_non-res 2 209 2030 0.0 0.0 +de 09_hydro_pump 2 209 2030 0.0 0.0 +de 01_solar 2 210 2030 1.0 0.0 +de 02_wind_on 2 210 2030 1.0 0.0 +de 03_wind_off 2 210 2030 1.0 0.0 +de 04_res 2 210 2030 0.0 0.0 +de 05_nuclear 2 210 2030 0.0 0.0 +de 06_coal 2 210 2030 0.0 0.0 +de 07_gas 2 210 2030 0.0 0.0 +de 08_non-res 2 210 2030 0.0 0.0 +de 09_hydro_pump 2 210 2030 0.0 0.0 +de 01_solar 2 211 2030 1.0 0.0 +de 02_wind_on 2 211 2030 1.0 0.0 +de 03_wind_off 2 211 2030 1.0 0.0 +de 04_res 2 211 2030 0.0 0.0 +de 05_nuclear 2 211 2030 0.0 0.0 +de 06_coal 2 211 2030 0.0 0.0 +de 07_gas 2 211 2030 0.0 0.0 +de 08_non-res 2 211 2030 0.0 0.0 +de 09_hydro_pump 2 211 2030 0.0 0.0 +de 01_solar 2 212 2030 1.0 0.0 +de 02_wind_on 2 212 2030 1.0 0.0 +de 03_wind_off 2 212 2030 1.0 0.0 +de 04_res 2 212 2030 0.0 0.0 +de 05_nuclear 2 212 2030 0.0 0.0 +de 06_coal 2 212 2030 0.0 0.0 +de 07_gas 2 212 2030 0.0 0.0 +de 08_non-res 2 212 2030 0.0 0.0 +de 09_hydro_pump 2 212 2030 0.0 0.0 +de 01_solar 2 213 2030 1.0 0.0 +de 02_wind_on 2 213 2030 1.0 0.0 +de 03_wind_off 2 213 2030 1.0 0.0 +de 04_res 2 213 2030 0.0 0.0 +de 05_nuclear 2 213 2030 0.0 0.0 +de 06_coal 2 213 2030 0.0 0.0 +de 07_gas 2 213 2030 0.0 0.0 +de 08_non-res 2 213 2030 0.0 0.0 +de 09_hydro_pump 2 213 2030 0.0 0.0 +de 01_solar 2 214 2030 1.0 0.0 +de 02_wind_on 2 214 2030 1.0 0.0 +de 03_wind_off 2 214 2030 1.0 0.0 +de 04_res 2 214 2030 0.0 0.0 +de 05_nuclear 2 214 2030 0.0 0.0 +de 06_coal 2 214 2030 0.0 0.0 +de 07_gas 2 214 2030 0.0 0.0 +de 08_non-res 2 214 2030 0.0 0.0 +de 09_hydro_pump 2 214 2030 0.0 0.0 +de 01_solar 2 215 2030 1.0 0.0 +de 02_wind_on 2 215 2030 1.0 0.0 +de 03_wind_off 2 215 2030 1.0 0.0 +de 04_res 2 215 2030 0.0 0.0 +de 05_nuclear 2 215 2030 0.0 0.0 +de 06_coal 2 215 2030 0.0 0.0 +de 07_gas 2 215 2030 0.0 0.0 +de 08_non-res 2 215 2030 0.0 0.0 +de 09_hydro_pump 2 215 2030 0.0 0.0 +de 01_solar 2 216 2030 1.0 0.0 +de 02_wind_on 2 216 2030 1.0 0.0 +de 03_wind_off 2 216 2030 1.0 0.0 +de 04_res 2 216 2030 0.0 0.0 +de 05_nuclear 2 216 2030 0.0 0.0 +de 06_coal 2 216 2030 0.0 0.0 +de 07_gas 2 216 2030 0.0 0.0 +de 08_non-res 2 216 2030 0.0 0.0 +de 09_hydro_pump 2 216 2030 0.0 0.0 +de 01_solar 2 217 2030 1.0 0.0 +de 02_wind_on 2 217 2030 1.0 0.0 +de 03_wind_off 2 217 2030 1.0 0.0 +de 04_res 2 217 2030 0.0 0.0 +de 05_nuclear 2 217 2030 0.0 0.0 +de 06_coal 2 217 2030 0.0 0.0 +de 07_gas 2 217 2030 0.0 0.0 +de 08_non-res 2 217 2030 0.0 0.0 +de 09_hydro_pump 2 217 2030 0.0 0.0 +de 01_solar 2 218 2030 1.0 0.0 +de 02_wind_on 2 218 2030 1.0 0.0 +de 03_wind_off 2 218 2030 1.0 0.0 +de 04_res 2 218 2030 0.0 0.0 +de 05_nuclear 2 218 2030 0.0 0.0 +de 06_coal 2 218 2030 0.0 0.0 +de 07_gas 2 218 2030 0.0 0.0 +de 08_non-res 2 218 2030 0.0 0.0 +de 09_hydro_pump 2 218 2030 0.0 0.0 +de 01_solar 2 219 2030 1.0 0.0 +de 02_wind_on 2 219 2030 1.0 0.0 +de 03_wind_off 2 219 2030 1.0 0.0 +de 04_res 2 219 2030 0.0 0.0 +de 05_nuclear 2 219 2030 0.0 0.0 +de 06_coal 2 219 2030 0.0 0.0 +de 07_gas 2 219 2030 0.0 0.0 +de 08_non-res 2 219 2030 0.0 0.0 +de 09_hydro_pump 2 219 2030 0.0 0.0 +de 01_solar 2 220 2030 1.0 0.0 +de 02_wind_on 2 220 2030 1.0 0.0 +de 03_wind_off 2 220 2030 1.0 0.0 +de 04_res 2 220 2030 0.0 0.0 +de 05_nuclear 2 220 2030 0.0 0.0 +de 06_coal 2 220 2030 0.0 0.0 +de 07_gas 2 220 2030 0.0 0.0 +de 08_non-res 2 220 2030 0.0 0.0 +de 09_hydro_pump 2 220 2030 0.0 0.0 +de 01_solar 2 221 2030 1.0 0.0 +de 02_wind_on 2 221 2030 1.0 0.0 +de 03_wind_off 2 221 2030 1.0 0.0 +de 04_res 2 221 2030 0.0 0.0 +de 05_nuclear 2 221 2030 0.0 0.0 +de 06_coal 2 221 2030 0.0 0.0 +de 07_gas 2 221 2030 0.0 0.0 +de 08_non-res 2 221 2030 0.0 0.0 +de 09_hydro_pump 2 221 2030 0.0 0.0 +de 01_solar 2 222 2030 1.0 0.0 +de 02_wind_on 2 222 2030 1.0 0.0 +de 03_wind_off 2 222 2030 1.0 0.0 +de 04_res 2 222 2030 0.0 0.0 +de 05_nuclear 2 222 2030 0.0 0.0 +de 06_coal 2 222 2030 0.0 0.0 +de 07_gas 2 222 2030 0.0 0.0 +de 08_non-res 2 222 2030 0.0 0.0 +de 09_hydro_pump 2 222 2030 0.0 0.0 +de 01_solar 2 223 2030 1.0 0.0 +de 02_wind_on 2 223 2030 1.0 0.0 +de 03_wind_off 2 223 2030 1.0 0.0 +de 04_res 2 223 2030 0.0 0.0 +de 05_nuclear 2 223 2030 0.0 0.0 +de 06_coal 2 223 2030 0.0 0.0 +de 07_gas 2 223 2030 0.0 0.0 +de 08_non-res 2 223 2030 0.0 0.0 +de 09_hydro_pump 2 223 2030 0.0 0.0 +de 01_solar 2 224 2030 1.0 0.0 +de 02_wind_on 2 224 2030 1.0 0.0 +de 03_wind_off 2 224 2030 1.0 0.0 +de 04_res 2 224 2030 0.0 0.0 +de 05_nuclear 2 224 2030 0.0 0.0 +de 06_coal 2 224 2030 0.0 0.0 +de 07_gas 2 224 2030 0.0 0.0 +de 08_non-res 2 224 2030 0.0 0.0 +de 09_hydro_pump 2 224 2030 0.0 0.0 +de 01_solar 2 225 2030 1.0 0.0 +de 02_wind_on 2 225 2030 1.0 0.0 +de 03_wind_off 2 225 2030 1.0 0.0 +de 04_res 2 225 2030 0.0 0.0 +de 05_nuclear 2 225 2030 0.0 0.0 +de 06_coal 2 225 2030 0.0 0.0 +de 07_gas 2 225 2030 0.0 0.0 +de 08_non-res 2 225 2030 0.0 0.0 +de 09_hydro_pump 2 225 2030 0.0 0.0 +de 01_solar 2 226 2030 1.0 0.0 +de 02_wind_on 2 226 2030 1.0 0.0 +de 03_wind_off 2 226 2030 1.0 0.0 +de 04_res 2 226 2030 0.0 0.0 +de 05_nuclear 2 226 2030 0.0 0.0 +de 06_coal 2 226 2030 0.0 0.0 +de 07_gas 2 226 2030 0.0 0.0 +de 08_non-res 2 226 2030 0.0 0.0 +de 09_hydro_pump 2 226 2030 0.0 0.0 +de 01_solar 2 227 2030 1.0 0.0 +de 02_wind_on 2 227 2030 1.0 0.0 +de 03_wind_off 2 227 2030 1.0 0.0 +de 04_res 2 227 2030 0.0 0.0 +de 05_nuclear 2 227 2030 0.0 0.0 +de 06_coal 2 227 2030 0.0 0.0 +de 07_gas 2 227 2030 0.0 0.0 +de 08_non-res 2 227 2030 0.0 0.0 +de 09_hydro_pump 2 227 2030 0.0 0.0 +de 01_solar 2 228 2030 1.0 0.0 +de 02_wind_on 2 228 2030 1.0 0.0 +de 03_wind_off 2 228 2030 1.0 0.0 +de 04_res 2 228 2030 0.0 0.0 +de 05_nuclear 2 228 2030 0.0 0.0 +de 06_coal 2 228 2030 0.0 0.0 +de 07_gas 2 228 2030 0.0 0.0 +de 08_non-res 2 228 2030 0.0 0.0 +de 09_hydro_pump 2 228 2030 0.0 0.0 +de 01_solar 2 229 2030 1.0 0.0 +de 02_wind_on 2 229 2030 1.0 0.0 +de 03_wind_off 2 229 2030 1.0 0.0 +de 04_res 2 229 2030 0.0 0.0 +de 05_nuclear 2 229 2030 0.0 0.0 +de 06_coal 2 229 2030 0.0 0.0 +de 07_gas 2 229 2030 0.0 0.0 +de 08_non-res 2 229 2030 0.0 0.0 +de 09_hydro_pump 2 229 2030 0.0 0.0 +de 01_solar 2 230 2030 1.0 0.0 +de 02_wind_on 2 230 2030 1.0 0.0 +de 03_wind_off 2 230 2030 1.0 0.0 +de 04_res 2 230 2030 1.0 0.0 +de 05_nuclear 2 230 2030 0.0 0.0 +de 06_coal 2 230 2030 0.0 0.0 +de 07_gas 2 230 2030 0.0 0.0 +de 08_non-res 2 230 2030 0.0 0.0 +de 09_hydro_pump 2 230 2030 0.0 0.0 +de 01_solar 2 231 2030 1.0 0.0 +de 02_wind_on 2 231 2030 1.0 0.0 +de 03_wind_off 2 231 2030 1.0 0.0 +de 04_res 2 231 2030 1.0 0.0 +de 05_nuclear 2 231 2030 0.0 0.0 +de 06_coal 2 231 2030 0.0 0.0 +de 07_gas 2 231 2030 0.0 0.0 +de 08_non-res 2 231 2030 0.0 0.0 +de 09_hydro_pump 2 231 2030 0.0 0.0 +de 01_solar 2 232 2030 1.0 0.0 +de 02_wind_on 2 232 2030 1.0 0.0 +de 03_wind_off 2 232 2030 1.0 0.0 +de 04_res 2 232 2030 1.0 0.0 +de 05_nuclear 2 232 2030 0.0 0.0 +de 06_coal 2 232 2030 0.0 0.0 +de 07_gas 2 232 2030 0.0 0.0 +de 08_non-res 2 232 2030 0.0 0.0 +de 09_hydro_pump 2 232 2030 0.0 0.0 +de 01_solar 2 233 2030 1.0 0.0 +de 02_wind_on 2 233 2030 1.0 0.0 +de 03_wind_off 2 233 2030 1.0 0.0 +de 04_res 2 233 2030 1.0 0.0 +de 05_nuclear 2 233 2030 0.0 0.0 +de 06_coal 2 233 2030 0.0 0.0 +de 07_gas 2 233 2030 0.0 0.0 +de 08_non-res 2 233 2030 0.0 0.0 +de 09_hydro_pump 2 233 2030 0.0 0.0 +de 01_solar 2 234 2030 1.0 0.0 +de 02_wind_on 2 234 2030 1.0 0.0 +de 03_wind_off 2 234 2030 1.0 0.0 +de 04_res 2 234 2030 1.0 0.0 +de 05_nuclear 2 234 2030 0.0 0.0 +de 06_coal 2 234 2030 0.0 0.0 +de 07_gas 2 234 2030 0.0 0.0 +de 08_non-res 2 234 2030 0.0 0.0 +de 09_hydro_pump 2 234 2030 0.0 0.0 +de 01_solar 2 235 2030 1.0 0.0 +de 02_wind_on 2 235 2030 1.0 0.0 +de 03_wind_off 2 235 2030 1.0 0.0 +de 04_res 2 235 2030 1.0 0.0 +de 05_nuclear 2 235 2030 0.0 0.0 +de 06_coal 2 235 2030 0.0 0.0 +de 07_gas 2 235 2030 0.0 0.0 +de 08_non-res 2 235 2030 0.0 0.0 +de 09_hydro_pump 2 235 2030 0.0 0.0 +de 01_solar 2 236 2030 1.0 0.0 +de 02_wind_on 2 236 2030 1.0 0.0 +de 03_wind_off 2 236 2030 1.0 0.0 +de 04_res 2 236 2030 1.0 0.0 +de 05_nuclear 2 236 2030 0.0 0.0 +de 06_coal 2 236 2030 0.0 0.0 +de 07_gas 2 236 2030 0.0 0.0 +de 08_non-res 2 236 2030 0.0 0.0 +de 09_hydro_pump 2 236 2030 0.0 0.0 +de 01_solar 2 237 2030 1.0 0.0 +de 02_wind_on 2 237 2030 1.0 0.0 +de 03_wind_off 2 237 2030 1.0 0.0 +de 04_res 2 237 2030 1.0 0.0 +de 05_nuclear 2 237 2030 0.0 0.0 +de 06_coal 2 237 2030 0.0 0.0 +de 07_gas 2 237 2030 0.0 0.0 +de 08_non-res 2 237 2030 0.0 0.0 +de 09_hydro_pump 2 237 2030 0.0 0.0 +de 01_solar 2 238 2030 1.0 0.0 +de 02_wind_on 2 238 2030 1.0 0.0 +de 03_wind_off 2 238 2030 1.0 0.0 +de 04_res 2 238 2030 1.0 0.0 +de 05_nuclear 2 238 2030 0.0 0.0 +de 06_coal 2 238 2030 0.0 0.0 +de 07_gas 2 238 2030 0.0 0.0 +de 08_non-res 2 238 2030 0.0 0.0 +de 09_hydro_pump 2 238 2030 0.0 0.0 +de 01_solar 2 239 2030 1.0 0.0 +de 02_wind_on 2 239 2030 1.0 0.0 +de 03_wind_off 2 239 2030 1.0 0.0 +de 04_res 2 239 2030 1.0 0.0 +de 05_nuclear 2 239 2030 0.0 0.0 +de 06_coal 2 239 2030 0.0 0.0 +de 07_gas 2 239 2030 0.0 0.0 +de 08_non-res 2 239 2030 0.0 0.0 +de 09_hydro_pump 2 239 2030 0.0 0.0 +de 01_solar 2 240 2030 1.0 0.0 +de 02_wind_on 2 240 2030 1.0 0.0 +de 03_wind_off 2 240 2030 1.0 0.0 +de 04_res 2 240 2030 1.0 0.0 +de 05_nuclear 2 240 2030 0.0 0.0 +de 06_coal 2 240 2030 0.0 0.0 +de 07_gas 2 240 2030 0.0 0.0 +de 08_non-res 2 240 2030 0.0 0.0 +de 09_hydro_pump 2 240 2030 0.0 0.0 +de 01_solar 2 241 2030 1.0 0.0 +de 02_wind_on 2 241 2030 1.0 0.0 +de 03_wind_off 2 241 2030 1.0 0.0 +de 04_res 2 241 2030 1.0 0.0 +de 05_nuclear 2 241 2030 0.0 0.0 +de 06_coal 2 241 2030 0.0 0.0 +de 07_gas 2 241 2030 0.0 0.0 +de 08_non-res 2 241 2030 0.0 0.0 +de 09_hydro_pump 2 241 2030 0.0 0.0 +de 01_solar 2 242 2030 1.0 0.0 +de 02_wind_on 2 242 2030 1.0 0.0 +de 03_wind_off 2 242 2030 1.0 0.0 +de 04_res 2 242 2030 1.0 0.0 +de 05_nuclear 2 242 2030 0.0 0.0 +de 06_coal 2 242 2030 0.0 0.0 +de 07_gas 2 242 2030 0.0 0.0 +de 08_non-res 2 242 2030 0.0 0.0 +de 09_hydro_pump 2 242 2030 0.0 0.0 +de 01_solar 2 243 2030 1.0 0.0 +de 02_wind_on 2 243 2030 1.0 0.0 +de 03_wind_off 2 243 2030 1.0 0.0 +de 04_res 2 243 2030 1.0 0.0 +de 05_nuclear 2 243 2030 0.0 0.0 +de 06_coal 2 243 2030 0.0 0.0 +de 07_gas 2 243 2030 0.0 0.0 +de 08_non-res 2 243 2030 0.0 0.0 +de 09_hydro_pump 2 243 2030 0.0 0.0 +de 01_solar 2 244 2030 1.0 0.0 +de 02_wind_on 2 244 2030 1.0 0.0 +de 03_wind_off 2 244 2030 1.0 0.0 +de 04_res 2 244 2030 1.0 0.0 +de 05_nuclear 2 244 2030 0.0 0.0 +de 06_coal 2 244 2030 0.0 0.0 +de 07_gas 2 244 2030 0.0 0.0 +de 08_non-res 2 244 2030 0.0 0.0 +de 09_hydro_pump 2 244 2030 0.0 0.0 +de 01_solar 2 245 2030 1.0 0.0 +de 02_wind_on 2 245 2030 1.0 0.0 +de 03_wind_off 2 245 2030 1.0 0.0 +de 04_res 2 245 2030 1.0 0.0 +de 05_nuclear 2 245 2030 0.0 0.0 +de 06_coal 2 245 2030 0.0 0.0 +de 07_gas 2 245 2030 0.0 0.0 +de 08_non-res 2 245 2030 0.0 0.0 +de 09_hydro_pump 2 245 2030 0.0 0.0 +de 01_solar 2 246 2030 1.0 0.0 +de 02_wind_on 2 246 2030 1.0 0.0 +de 03_wind_off 2 246 2030 1.0 0.0 +de 04_res 2 246 2030 1.0 0.0 +de 05_nuclear 2 246 2030 0.0 0.0 +de 06_coal 2 246 2030 0.0 0.0 +de 07_gas 2 246 2030 0.0 0.0 +de 08_non-res 2 246 2030 0.0 0.0 +de 09_hydro_pump 2 246 2030 0.0 0.0 +de 01_solar 2 247 2030 1.0 0.0 +de 02_wind_on 2 247 2030 1.0 0.0 +de 03_wind_off 2 247 2030 1.0 0.0 +de 04_res 2 247 2030 1.0 0.0 +de 05_nuclear 2 247 2030 0.0 0.0 +de 06_coal 2 247 2030 0.0 0.0 +de 07_gas 2 247 2030 0.0 0.0 +de 08_non-res 2 247 2030 0.0 0.0 +de 09_hydro_pump 2 247 2030 0.0 0.0 +de 01_solar 2 248 2030 1.0 0.0 +de 02_wind_on 2 248 2030 1.0 0.0 +de 03_wind_off 2 248 2030 1.0 0.0 +de 04_res 2 248 2030 1.0 0.0 +de 05_nuclear 2 248 2030 0.0 0.0 +de 06_coal 2 248 2030 0.0 0.0 +de 07_gas 2 248 2030 0.0 0.0 +de 08_non-res 2 248 2030 0.0 0.0 +de 09_hydro_pump 2 248 2030 0.0 0.0 +de 01_solar 2 249 2030 1.0 0.0 +de 02_wind_on 2 249 2030 1.0 0.0 +de 03_wind_off 2 249 2030 1.0 0.0 +de 04_res 2 249 2030 1.0 0.0 +de 05_nuclear 2 249 2030 0.0 0.0 +de 06_coal 2 249 2030 0.0 0.0 +de 07_gas 2 249 2030 0.0 0.0 +de 08_non-res 2 249 2030 0.0 0.0 +de 09_hydro_pump 2 249 2030 0.0 0.0 +de 01_solar 2 250 2030 1.0 0.0 +de 02_wind_on 2 250 2030 1.0 0.0 +de 03_wind_off 2 250 2030 1.0 0.0 +de 04_res 2 250 2030 1.0 0.0 +de 05_nuclear 2 250 2030 1.0 0.0 +de 06_coal 2 250 2030 0.0 0.0 +de 07_gas 2 250 2030 0.0 0.0 +de 08_non-res 2 250 2030 0.0 0.0 +de 09_hydro_pump 2 250 2030 0.0 0.0 +de 01_solar 2 251 2030 1.0 0.0 +de 02_wind_on 2 251 2030 1.0 0.0 +de 03_wind_off 2 251 2030 1.0 0.0 +de 04_res 2 251 2030 1.0 0.0 +de 05_nuclear 2 251 2030 1.0 0.0 +de 06_coal 2 251 2030 0.0 0.0 +de 07_gas 2 251 2030 0.0 0.0 +de 08_non-res 2 251 2030 0.0 0.0 +de 09_hydro_pump 2 251 2030 0.0 0.0 +de 01_solar 2 252 2030 1.0 0.0 +de 02_wind_on 2 252 2030 1.0 0.0 +de 03_wind_off 2 252 2030 1.0 0.0 +de 04_res 2 252 2030 1.0 0.0 +de 05_nuclear 2 252 2030 1.0 0.0 +de 06_coal 2 252 2030 0.0 0.0 +de 07_gas 2 252 2030 0.0 0.0 +de 08_non-res 2 252 2030 0.0 0.0 +de 09_hydro_pump 2 252 2030 0.0 0.0 +de 01_solar 2 253 2030 1.0 0.0 +de 02_wind_on 2 253 2030 1.0 0.0 +de 03_wind_off 2 253 2030 1.0 0.0 +de 04_res 2 253 2030 1.0 0.0 +de 05_nuclear 2 253 2030 1.0 0.0 +de 06_coal 2 253 2030 0.0 0.0 +de 07_gas 2 253 2030 0.0 0.0 +de 08_non-res 2 253 2030 0.0 0.0 +de 09_hydro_pump 2 253 2030 0.0 0.0 +de 01_solar 2 254 2030 1.0 0.0 +de 02_wind_on 2 254 2030 1.0 0.0 +de 03_wind_off 2 254 2030 1.0 0.0 +de 04_res 2 254 2030 1.0 0.0 +de 05_nuclear 2 254 2030 1.0 0.0 +de 06_coal 2 254 2030 0.0 0.0 +de 07_gas 2 254 2030 0.0 0.0 +de 08_non-res 2 254 2030 0.0 0.0 +de 09_hydro_pump 2 254 2030 0.0 0.0 +de 01_solar 2 255 2030 1.0 0.0 +de 02_wind_on 2 255 2030 1.0 0.0 +de 03_wind_off 2 255 2030 1.0 0.0 +de 04_res 2 255 2030 1.0 0.0 +de 05_nuclear 2 255 2030 1.0 0.0 +de 06_coal 2 255 2030 0.0 0.0 +de 07_gas 2 255 2030 0.0 0.0 +de 08_non-res 2 255 2030 0.0 0.0 +de 09_hydro_pump 2 255 2030 0.0 0.0 +de 01_solar 2 256 2030 1.0 0.0 +de 02_wind_on 2 256 2030 1.0 0.0 +de 03_wind_off 2 256 2030 1.0 0.0 +de 04_res 2 256 2030 1.0 0.0 +de 05_nuclear 2 256 2030 1.0 0.0 +de 06_coal 2 256 2030 0.0 0.0 +de 07_gas 2 256 2030 0.0 0.0 +de 08_non-res 2 256 2030 0.0 0.0 +de 09_hydro_pump 2 256 2030 0.0 0.0 +de 01_solar 2 257 2030 1.0 0.0 +de 02_wind_on 2 257 2030 1.0 0.0 +de 03_wind_off 2 257 2030 1.0 0.0 +de 04_res 2 257 2030 1.0 0.0 +de 05_nuclear 2 257 2030 1.0 0.0 +de 06_coal 2 257 2030 0.0 0.0 +de 07_gas 2 257 2030 0.0 0.0 +de 08_non-res 2 257 2030 0.0 0.0 +de 09_hydro_pump 2 257 2030 0.0 0.0 +de 01_solar 2 258 2030 1.0 0.0 +de 02_wind_on 2 258 2030 1.0 0.0 +de 03_wind_off 2 258 2030 1.0 0.0 +de 04_res 2 258 2030 1.0 0.0 +de 05_nuclear 2 258 2030 1.0 0.0 +de 06_coal 2 258 2030 0.0 0.0 +de 07_gas 2 258 2030 0.0 0.0 +de 08_non-res 2 258 2030 0.0 0.0 +de 09_hydro_pump 2 258 2030 0.0 0.0 +de 01_solar 2 259 2030 1.0 0.0 +de 02_wind_on 2 259 2030 1.0 0.0 +de 03_wind_off 2 259 2030 1.0 0.0 +de 04_res 2 259 2030 1.0 0.0 +de 05_nuclear 2 259 2030 1.0 0.0 +de 06_coal 2 259 2030 0.0 0.0 +de 07_gas 2 259 2030 0.0 0.0 +de 08_non-res 2 259 2030 0.0 0.0 +de 09_hydro_pump 2 259 2030 0.0 0.0 +de 01_solar 2 260 2030 1.0 0.0 +de 02_wind_on 2 260 2030 1.0 0.0 +de 03_wind_off 2 260 2030 1.0 0.0 +de 04_res 2 260 2030 1.0 0.0 +de 05_nuclear 2 260 2030 1.0 0.0 +de 06_coal 2 260 2030 0.0 0.0 +de 07_gas 2 260 2030 0.0 0.0 +de 08_non-res 2 260 2030 0.0 0.0 +de 09_hydro_pump 2 260 2030 0.0 0.0 +de 01_solar 2 261 2030 1.0 0.0 +de 02_wind_on 2 261 2030 1.0 0.0 +de 03_wind_off 2 261 2030 1.0 0.0 +de 04_res 2 261 2030 1.0 0.0 +de 05_nuclear 2 261 2030 1.0 0.0 +de 06_coal 2 261 2030 0.0 0.0 +de 07_gas 2 261 2030 0.0 0.0 +de 08_non-res 2 261 2030 0.0 0.0 +de 09_hydro_pump 2 261 2030 0.0 0.0 +de 01_solar 2 262 2030 1.0 0.0 +de 02_wind_on 2 262 2030 1.0 0.0 +de 03_wind_off 2 262 2030 1.0 0.0 +de 04_res 2 262 2030 1.0 0.0 +de 05_nuclear 2 262 2030 1.0 0.0 +de 06_coal 2 262 2030 0.0 0.0 +de 07_gas 2 262 2030 0.0 0.0 +de 08_non-res 2 262 2030 0.0 0.0 +de 09_hydro_pump 2 262 2030 0.0 0.0 +de 01_solar 2 263 2030 1.0 0.0 +de 02_wind_on 2 263 2030 1.0 0.0 +de 03_wind_off 2 263 2030 1.0 0.0 +de 04_res 2 263 2030 1.0 0.0 +de 05_nuclear 2 263 2030 1.0 0.0 +de 06_coal 2 263 2030 0.0 0.0 +de 07_gas 2 263 2030 0.0 0.0 +de 08_non-res 2 263 2030 0.0 0.0 +de 09_hydro_pump 2 263 2030 0.0 0.0 +de 01_solar 2 264 2030 1.0 0.0 +de 02_wind_on 2 264 2030 1.0 0.0 +de 03_wind_off 2 264 2030 1.0 0.0 +de 04_res 2 264 2030 1.0 0.0 +de 05_nuclear 2 264 2030 1.0 0.0 +de 06_coal 2 264 2030 0.0 0.0 +de 07_gas 2 264 2030 0.0 0.0 +de 08_non-res 2 264 2030 0.0 0.0 +de 09_hydro_pump 2 264 2030 0.0 0.0 +de 01_solar 2 265 2030 1.0 0.0 +de 02_wind_on 2 265 2030 1.0 0.0 +de 03_wind_off 2 265 2030 1.0 0.0 +de 04_res 2 265 2030 1.0 0.0 +de 05_nuclear 2 265 2030 1.0 0.0 +de 06_coal 2 265 2030 0.0 0.0 +de 07_gas 2 265 2030 0.0 0.0 +de 08_non-res 2 265 2030 0.0 0.0 +de 09_hydro_pump 2 265 2030 0.0 0.0 +de 01_solar 2 266 2030 1.0 0.0 +de 02_wind_on 2 266 2030 1.0 0.0 +de 03_wind_off 2 266 2030 1.0 0.0 +de 04_res 2 266 2030 1.0 0.0 +de 05_nuclear 2 266 2030 1.0 0.0 +de 06_coal 2 266 2030 0.0 0.0 +de 07_gas 2 266 2030 0.0 0.0 +de 08_non-res 2 266 2030 0.0 0.0 +de 09_hydro_pump 2 266 2030 0.0 0.0 +de 01_solar 2 267 2030 1.0 0.0 +de 02_wind_on 2 267 2030 1.0 0.0 +de 03_wind_off 2 267 2030 1.0 0.0 +de 04_res 2 267 2030 1.0 0.0 +de 05_nuclear 2 267 2030 1.0 0.0 +de 06_coal 2 267 2030 0.0 0.0 +de 07_gas 2 267 2030 0.0 0.0 +de 08_non-res 2 267 2030 0.0 0.0 +de 09_hydro_pump 2 267 2030 0.0 0.0 +de 01_solar 2 268 2030 1.0 0.0 +de 02_wind_on 2 268 2030 1.0 0.0 +de 03_wind_off 2 268 2030 1.0 0.0 +de 04_res 2 268 2030 1.0 0.0 +de 05_nuclear 2 268 2030 1.0 0.0 +de 06_coal 2 268 2030 0.0 0.0 +de 07_gas 2 268 2030 0.0 0.0 +de 08_non-res 2 268 2030 0.0 0.0 +de 09_hydro_pump 2 268 2030 0.0 0.0 +de 01_solar 2 269 2030 1.0 0.0 +de 02_wind_on 2 269 2030 1.0 0.0 +de 03_wind_off 2 269 2030 1.0 0.0 +de 04_res 2 269 2030 1.0 0.0 +de 05_nuclear 2 269 2030 1.0 0.0 +de 06_coal 2 269 2030 0.0 0.0 +de 07_gas 2 269 2030 0.0 0.0 +de 08_non-res 2 269 2030 0.0 0.0 +de 09_hydro_pump 2 269 2030 0.0 0.0 +de 01_solar 2 270 2030 1.0 0.0 +de 02_wind_on 2 270 2030 1.0 0.0 +de 03_wind_off 2 270 2030 1.0 0.0 +de 04_res 2 270 2030 1.0 0.0 +de 05_nuclear 2 270 2030 1.0 0.0 +de 06_coal 2 270 2030 1.0 0.0 +de 07_gas 2 270 2030 0.0 0.0 +de 08_non-res 2 270 2030 0.0 0.0 +de 09_hydro_pump 2 270 2030 0.0 0.0 +de 01_solar 2 271 2030 1.0 0.0 +de 02_wind_on 2 271 2030 1.0 0.0 +de 03_wind_off 2 271 2030 1.0 0.0 +de 04_res 2 271 2030 1.0 0.0 +de 05_nuclear 2 271 2030 1.0 0.0 +de 06_coal 2 271 2030 1.0 0.0 +de 07_gas 2 271 2030 0.0 0.0 +de 08_non-res 2 271 2030 0.0 0.0 +de 09_hydro_pump 2 271 2030 0.0 0.0 +de 01_solar 2 272 2030 1.0 0.0 +de 02_wind_on 2 272 2030 1.0 0.0 +de 03_wind_off 2 272 2030 1.0 0.0 +de 04_res 2 272 2030 1.0 0.0 +de 05_nuclear 2 272 2030 1.0 0.0 +de 06_coal 2 272 2030 1.0 0.0 +de 07_gas 2 272 2030 0.0 0.0 +de 08_non-res 2 272 2030 0.0 0.0 +de 09_hydro_pump 2 272 2030 0.0 0.0 +de 01_solar 2 273 2030 1.0 0.0 +de 02_wind_on 2 273 2030 1.0 0.0 +de 03_wind_off 2 273 2030 1.0 0.0 +de 04_res 2 273 2030 1.0 0.0 +de 05_nuclear 2 273 2030 1.0 0.0 +de 06_coal 2 273 2030 1.0 0.0 +de 07_gas 2 273 2030 0.0 0.0 +de 08_non-res 2 273 2030 0.0 0.0 +de 09_hydro_pump 2 273 2030 0.0 0.0 +de 01_solar 2 274 2030 1.0 0.0 +de 02_wind_on 2 274 2030 1.0 0.0 +de 03_wind_off 2 274 2030 1.0 0.0 +de 04_res 2 274 2030 1.0 0.0 +de 05_nuclear 2 274 2030 1.0 0.0 +de 06_coal 2 274 2030 1.0 0.0 +de 07_gas 2 274 2030 0.0 0.0 +de 08_non-res 2 274 2030 0.0 0.0 +de 09_hydro_pump 2 274 2030 0.0 0.0 +de 01_solar 2 275 2030 1.0 0.0 +de 02_wind_on 2 275 2030 1.0 0.0 +de 03_wind_off 2 275 2030 1.0 0.0 +de 04_res 2 275 2030 1.0 0.0 +de 05_nuclear 2 275 2030 1.0 0.0 +de 06_coal 2 275 2030 1.0 0.0 +de 07_gas 2 275 2030 0.0 0.0 +de 08_non-res 2 275 2030 0.0 0.0 +de 09_hydro_pump 2 275 2030 0.0 0.0 +de 01_solar 2 276 2030 1.0 0.0 +de 02_wind_on 2 276 2030 1.0 0.0 +de 03_wind_off 2 276 2030 1.0 0.0 +de 04_res 2 276 2030 1.0 0.0 +de 05_nuclear 2 276 2030 1.0 0.0 +de 06_coal 2 276 2030 1.0 0.0 +de 07_gas 2 276 2030 0.0 0.0 +de 08_non-res 2 276 2030 0.0 0.0 +de 09_hydro_pump 2 276 2030 0.0 0.0 +de 01_solar 2 277 2030 1.0 0.0 +de 02_wind_on 2 277 2030 1.0 0.0 +de 03_wind_off 2 277 2030 1.0 0.0 +de 04_res 2 277 2030 1.0 0.0 +de 05_nuclear 2 277 2030 1.0 0.0 +de 06_coal 2 277 2030 1.0 0.0 +de 07_gas 2 277 2030 0.0 0.0 +de 08_non-res 2 277 2030 0.0 0.0 +de 09_hydro_pump 2 277 2030 0.0 0.0 +de 01_solar 2 278 2030 1.0 0.0 +de 02_wind_on 2 278 2030 1.0 0.0 +de 03_wind_off 2 278 2030 1.0 0.0 +de 04_res 2 278 2030 1.0 0.0 +de 05_nuclear 2 278 2030 1.0 0.0 +de 06_coal 2 278 2030 1.0 0.0 +de 07_gas 2 278 2030 0.0 0.0 +de 08_non-res 2 278 2030 0.0 0.0 +de 09_hydro_pump 2 278 2030 0.0 0.0 +de 01_solar 2 279 2030 1.0 0.0 +de 02_wind_on 2 279 2030 1.0 0.0 +de 03_wind_off 2 279 2030 1.0 0.0 +de 04_res 2 279 2030 1.0 0.0 +de 05_nuclear 2 279 2030 1.0 0.0 +de 06_coal 2 279 2030 1.0 0.0 +de 07_gas 2 279 2030 0.0 0.0 +de 08_non-res 2 279 2030 0.0 0.0 +de 09_hydro_pump 2 279 2030 0.0 0.0 +de 01_solar 2 280 2030 1.0 0.0 +de 02_wind_on 2 280 2030 1.0 0.0 +de 03_wind_off 2 280 2030 1.0 0.0 +de 04_res 2 280 2030 1.0 0.0 +de 05_nuclear 2 280 2030 1.0 0.0 +de 06_coal 2 280 2030 1.0 0.0 +de 07_gas 2 280 2030 0.0 0.0 +de 08_non-res 2 280 2030 0.0 0.0 +de 09_hydro_pump 2 280 2030 0.0 0.0 +de 01_solar 2 281 2030 1.0 0.0 +de 02_wind_on 2 281 2030 1.0 0.0 +de 03_wind_off 2 281 2030 1.0 0.0 +de 04_res 2 281 2030 1.0 0.0 +de 05_nuclear 2 281 2030 1.0 0.0 +de 06_coal 2 281 2030 1.0 0.0 +de 07_gas 2 281 2030 0.0 0.0 +de 08_non-res 2 281 2030 0.0 0.0 +de 09_hydro_pump 2 281 2030 0.0 0.0 +de 01_solar 2 282 2030 1.0 0.0 +de 02_wind_on 2 282 2030 1.0 0.0 +de 03_wind_off 2 282 2030 1.0 0.0 +de 04_res 2 282 2030 1.0 0.0 +de 05_nuclear 2 282 2030 1.0 0.0 +de 06_coal 2 282 2030 1.0 0.0 +de 07_gas 2 282 2030 0.0 0.0 +de 08_non-res 2 282 2030 0.0 0.0 +de 09_hydro_pump 2 282 2030 0.0 0.0 +de 01_solar 2 283 2030 1.0 0.0 +de 02_wind_on 2 283 2030 1.0 0.0 +de 03_wind_off 2 283 2030 1.0 0.0 +de 04_res 2 283 2030 1.0 0.0 +de 05_nuclear 2 283 2030 1.0 0.0 +de 06_coal 2 283 2030 1.0 0.0 +de 07_gas 2 283 2030 0.0 0.0 +de 08_non-res 2 283 2030 0.0 0.0 +de 09_hydro_pump 2 283 2030 0.0 0.0 +de 01_solar 2 284 2030 1.0 0.0 +de 02_wind_on 2 284 2030 1.0 0.0 +de 03_wind_off 2 284 2030 1.0 0.0 +de 04_res 2 284 2030 1.0 0.0 +de 05_nuclear 2 284 2030 1.0 0.0 +de 06_coal 2 284 2030 1.0 0.0 +de 07_gas 2 284 2030 0.0 0.0 +de 08_non-res 2 284 2030 0.0 0.0 +de 09_hydro_pump 2 284 2030 0.0 0.0 +de 01_solar 2 285 2030 1.0 0.0 +de 02_wind_on 2 285 2030 1.0 0.0 +de 03_wind_off 2 285 2030 1.0 0.0 +de 04_res 2 285 2030 1.0 0.0 +de 05_nuclear 2 285 2030 1.0 0.0 +de 06_coal 2 285 2030 1.0 0.0 +de 07_gas 2 285 2030 0.0 0.0 +de 08_non-res 2 285 2030 0.0 0.0 +de 09_hydro_pump 2 285 2030 0.0 0.0 +de 01_solar 2 286 2030 1.0 0.0 +de 02_wind_on 2 286 2030 1.0 0.0 +de 03_wind_off 2 286 2030 1.0 0.0 +de 04_res 2 286 2030 1.0 0.0 +de 05_nuclear 2 286 2030 1.0 0.0 +de 06_coal 2 286 2030 1.0 0.0 +de 07_gas 2 286 2030 0.0 0.0 +de 08_non-res 2 286 2030 0.0 0.0 +de 09_hydro_pump 2 286 2030 0.0 0.0 +de 01_solar 2 287 2030 1.0 0.0 +de 02_wind_on 2 287 2030 1.0 0.0 +de 03_wind_off 2 287 2030 1.0 0.0 +de 04_res 2 287 2030 1.0 0.0 +de 05_nuclear 2 287 2030 1.0 0.0 +de 06_coal 2 287 2030 1.0 0.0 +de 07_gas 2 287 2030 0.0 0.0 +de 08_non-res 2 287 2030 0.0 0.0 +de 09_hydro_pump 2 287 2030 0.0 0.0 +de 01_solar 2 288 2030 1.0 0.0 +de 02_wind_on 2 288 2030 1.0 0.0 +de 03_wind_off 2 288 2030 1.0 0.0 +de 04_res 2 288 2030 1.0 0.0 +de 05_nuclear 2 288 2030 1.0 0.0 +de 06_coal 2 288 2030 1.0 0.0 +de 07_gas 2 288 2030 0.0 0.0 +de 08_non-res 2 288 2030 0.0 0.0 +de 09_hydro_pump 2 288 2030 0.0 0.0 +de 01_solar 2 289 2030 1.0 0.0 +de 02_wind_on 2 289 2030 1.0 0.0 +de 03_wind_off 2 289 2030 1.0 0.0 +de 04_res 2 289 2030 1.0 0.0 +de 05_nuclear 2 289 2030 1.0 0.0 +de 06_coal 2 289 2030 1.0 0.0 +de 07_gas 2 289 2030 0.0 0.0 +de 08_non-res 2 289 2030 0.0 0.0 +de 09_hydro_pump 2 289 2030 0.0 0.0 +de 01_solar 2 290 2030 1.0 0.0 +de 02_wind_on 2 290 2030 1.0 0.0 +de 03_wind_off 2 290 2030 1.0 0.0 +de 04_res 2 290 2030 1.0 0.0 +de 05_nuclear 2 290 2030 1.0 0.0 +de 06_coal 2 290 2030 1.0 0.0 +de 07_gas 2 290 2030 1.0 0.0 +de 08_non-res 2 290 2030 0.0 0.0 +de 09_hydro_pump 2 290 2030 0.0 0.0 +de 01_solar 2 291 2030 1.0 0.0 +de 02_wind_on 2 291 2030 1.0 0.0 +de 03_wind_off 2 291 2030 1.0 0.0 +de 04_res 2 291 2030 1.0 0.0 +de 05_nuclear 2 291 2030 1.0 0.0 +de 06_coal 2 291 2030 1.0 0.0 +de 07_gas 2 291 2030 1.0 0.0 +de 08_non-res 2 291 2030 0.0 0.0 +de 09_hydro_pump 2 291 2030 0.0 0.0 +de 01_solar 2 292 2030 1.0 0.0 +de 02_wind_on 2 292 2030 1.0 0.0 +de 03_wind_off 2 292 2030 1.0 0.0 +de 04_res 2 292 2030 1.0 0.0 +de 05_nuclear 2 292 2030 1.0 0.0 +de 06_coal 2 292 2030 1.0 0.0 +de 07_gas 2 292 2030 1.0 0.0 +de 08_non-res 2 292 2030 0.0 0.0 +de 09_hydro_pump 2 292 2030 0.0 0.0 +de 01_solar 2 293 2030 1.0 0.0 +de 02_wind_on 2 293 2030 1.0 0.0 +de 03_wind_off 2 293 2030 1.0 0.0 +de 04_res 2 293 2030 1.0 0.0 +de 05_nuclear 2 293 2030 1.0 0.0 +de 06_coal 2 293 2030 1.0 0.0 +de 07_gas 2 293 2030 1.0 0.0 +de 08_non-res 2 293 2030 0.0 0.0 +de 09_hydro_pump 2 293 2030 0.0 0.0 +de 01_solar 2 294 2030 1.0 0.0 +de 02_wind_on 2 294 2030 1.0 0.0 +de 03_wind_off 2 294 2030 1.0 0.0 +de 04_res 2 294 2030 1.0 0.0 +de 05_nuclear 2 294 2030 1.0 0.0 +de 06_coal 2 294 2030 1.0 0.0 +de 07_gas 2 294 2030 1.0 0.0 +de 08_non-res 2 294 2030 0.0 0.0 +de 09_hydro_pump 2 294 2030 0.0 0.0 +de 01_solar 2 295 2030 1.0 0.0 +de 02_wind_on 2 295 2030 1.0 0.0 +de 03_wind_off 2 295 2030 1.0 0.0 +de 04_res 2 295 2030 1.0 0.0 +de 05_nuclear 2 295 2030 1.0 0.0 +de 06_coal 2 295 2030 1.0 0.0 +de 07_gas 2 295 2030 1.0 0.0 +de 08_non-res 2 295 2030 0.0 0.0 +de 09_hydro_pump 2 295 2030 0.0 0.0 +de 01_solar 2 296 2030 1.0 0.0 +de 02_wind_on 2 296 2030 1.0 0.0 +de 03_wind_off 2 296 2030 1.0 0.0 +de 04_res 2 296 2030 1.0 0.0 +de 05_nuclear 2 296 2030 1.0 0.0 +de 06_coal 2 296 2030 1.0 0.0 +de 07_gas 2 296 2030 1.0 0.0 +de 08_non-res 2 296 2030 0.0 0.0 +de 09_hydro_pump 2 296 2030 0.0 0.0 +de 01_solar 2 297 2030 1.0 0.0 +de 02_wind_on 2 297 2030 1.0 0.0 +de 03_wind_off 2 297 2030 1.0 0.0 +de 04_res 2 297 2030 1.0 0.0 +de 05_nuclear 2 297 2030 1.0 0.0 +de 06_coal 2 297 2030 1.0 0.0 +de 07_gas 2 297 2030 1.0 0.0 +de 08_non-res 2 297 2030 0.0 0.0 +de 09_hydro_pump 2 297 2030 0.0 0.0 +de 01_solar 2 298 2030 1.0 0.0 +de 02_wind_on 2 298 2030 1.0 0.0 +de 03_wind_off 2 298 2030 1.0 0.0 +de 04_res 2 298 2030 1.0 0.0 +de 05_nuclear 2 298 2030 1.0 0.0 +de 06_coal 2 298 2030 1.0 0.0 +de 07_gas 2 298 2030 1.0 0.0 +de 08_non-res 2 298 2030 0.0 0.0 +de 09_hydro_pump 2 298 2030 0.0 0.0 +de 01_solar 2 299 2030 1.0 0.0 +de 02_wind_on 2 299 2030 1.0 0.0 +de 03_wind_off 2 299 2030 1.0 0.0 +de 04_res 2 299 2030 1.0 0.0 +de 05_nuclear 2 299 2030 1.0 0.0 +de 06_coal 2 299 2030 1.0 0.0 +de 07_gas 2 299 2030 1.0 0.0 +de 08_non-res 2 299 2030 0.0 0.0 +de 09_hydro_pump 2 299 2030 0.0 0.0 +de 01_solar 2 300 2030 1.0 0.0 +de 02_wind_on 2 300 2030 1.0 0.0 +de 03_wind_off 2 300 2030 1.0 0.0 +de 04_res 2 300 2030 1.0 0.0 +de 05_nuclear 2 300 2030 1.0 0.0 +de 06_coal 2 300 2030 1.0 0.0 +de 07_gas 2 300 2030 1.0 0.0 +de 08_non-res 2 300 2030 0.0 0.0 +de 09_hydro_pump 2 300 2030 0.0 0.0 +de 01_solar 2 301 2030 1.0 0.0 +de 02_wind_on 2 301 2030 1.0 0.0 +de 03_wind_off 2 301 2030 1.0 0.0 +de 04_res 2 301 2030 1.0 0.0 +de 05_nuclear 2 301 2030 1.0 0.0 +de 06_coal 2 301 2030 1.0 0.0 +de 07_gas 2 301 2030 1.0 0.0 +de 08_non-res 2 301 2030 0.0 0.0 +de 09_hydro_pump 2 301 2030 0.0 0.0 +de 01_solar 2 302 2030 1.0 0.0 +de 02_wind_on 2 302 2030 1.0 0.0 +de 03_wind_off 2 302 2030 1.0 0.0 +de 04_res 2 302 2030 1.0 0.0 +de 05_nuclear 2 302 2030 1.0 0.0 +de 06_coal 2 302 2030 1.0 0.0 +de 07_gas 2 302 2030 1.0 0.0 +de 08_non-res 2 302 2030 0.0 0.0 +de 09_hydro_pump 2 302 2030 0.0 0.0 +de 01_solar 2 303 2030 1.0 0.0 +de 02_wind_on 2 303 2030 1.0 0.0 +de 03_wind_off 2 303 2030 1.0 0.0 +de 04_res 2 303 2030 1.0 0.0 +de 05_nuclear 2 303 2030 1.0 0.0 +de 06_coal 2 303 2030 1.0 0.0 +de 07_gas 2 303 2030 1.0 0.0 +de 08_non-res 2 303 2030 0.0 0.0 +de 09_hydro_pump 2 303 2030 0.0 0.0 +de 01_solar 2 304 2030 1.0 0.0 +de 02_wind_on 2 304 2030 1.0 0.0 +de 03_wind_off 2 304 2030 1.0 0.0 +de 04_res 2 304 2030 1.0 0.0 +de 05_nuclear 2 304 2030 1.0 0.0 +de 06_coal 2 304 2030 1.0 0.0 +de 07_gas 2 304 2030 1.0 0.0 +de 08_non-res 2 304 2030 0.0 0.0 +de 09_hydro_pump 2 304 2030 0.0 0.0 +de 01_solar 2 305 2030 1.0 0.0 +de 02_wind_on 2 305 2030 1.0 0.0 +de 03_wind_off 2 305 2030 1.0 0.0 +de 04_res 2 305 2030 1.0 0.0 +de 05_nuclear 2 305 2030 1.0 0.0 +de 06_coal 2 305 2030 1.0 0.0 +de 07_gas 2 305 2030 1.0 0.0 +de 08_non-res 2 305 2030 0.0 0.0 +de 09_hydro_pump 2 305 2030 0.0 0.0 +de 01_solar 2 306 2030 1.0 0.0 +de 02_wind_on 2 306 2030 1.0 0.0 +de 03_wind_off 2 306 2030 1.0 0.0 +de 04_res 2 306 2030 1.0 0.0 +de 05_nuclear 2 306 2030 1.0 0.0 +de 06_coal 2 306 2030 1.0 0.0 +de 07_gas 2 306 2030 1.0 0.0 +de 08_non-res 2 306 2030 0.0 0.0 +de 09_hydro_pump 2 306 2030 0.0 0.0 +de 01_solar 2 307 2030 1.0 0.0 +de 02_wind_on 2 307 2030 1.0 0.0 +de 03_wind_off 2 307 2030 1.0 0.0 +de 04_res 2 307 2030 1.0 0.0 +de 05_nuclear 2 307 2030 1.0 0.0 +de 06_coal 2 307 2030 1.0 0.0 +de 07_gas 2 307 2030 1.0 0.0 +de 08_non-res 2 307 2030 0.0 0.0 +de 09_hydro_pump 2 307 2030 0.0 0.0 +de 01_solar 2 308 2030 1.0 0.0 +de 02_wind_on 2 308 2030 1.0 0.0 +de 03_wind_off 2 308 2030 1.0 0.0 +de 04_res 2 308 2030 1.0 0.0 +de 05_nuclear 2 308 2030 1.0 0.0 +de 06_coal 2 308 2030 1.0 0.0 +de 07_gas 2 308 2030 1.0 0.0 +de 08_non-res 2 308 2030 0.0 0.0 +de 09_hydro_pump 2 308 2030 0.0 0.0 +de 01_solar 2 309 2030 1.0 0.0 +de 02_wind_on 2 309 2030 1.0 0.0 +de 03_wind_off 2 309 2030 1.0 0.0 +de 04_res 2 309 2030 1.0 0.0 +de 05_nuclear 2 309 2030 1.0 0.0 +de 06_coal 2 309 2030 1.0 0.0 +de 07_gas 2 309 2030 1.0 0.0 +de 08_non-res 2 309 2030 0.0 0.0 +de 09_hydro_pump 2 309 2030 0.0 0.0 +de 01_solar 2 310 2030 1.0 0.0 +de 02_wind_on 2 310 2030 1.0 0.0 +de 03_wind_off 2 310 2030 1.0 0.0 +de 04_res 2 310 2030 1.0 0.0 +de 05_nuclear 2 310 2030 1.0 0.0 +de 06_coal 2 310 2030 1.0 0.0 +de 07_gas 2 310 2030 1.0 0.0 +de 08_non-res 2 310 2030 1.0 0.0 +de 09_hydro_pump 2 310 2030 0.0 0.0 +de 01_solar 2 311 2030 1.0 0.0 +de 02_wind_on 2 311 2030 1.0 0.0 +de 03_wind_off 2 311 2030 1.0 0.0 +de 04_res 2 311 2030 1.0 0.0 +de 05_nuclear 2 311 2030 1.0 0.0 +de 06_coal 2 311 2030 1.0 0.0 +de 07_gas 2 311 2030 1.0 0.0 +de 08_non-res 2 311 2030 1.0 0.0 +de 09_hydro_pump 2 311 2030 0.0 0.0 +de 01_solar 2 312 2030 1.0 0.0 +de 02_wind_on 2 312 2030 1.0 0.0 +de 03_wind_off 2 312 2030 1.0 0.0 +de 04_res 2 312 2030 1.0 0.0 +de 05_nuclear 2 312 2030 1.0 0.0 +de 06_coal 2 312 2030 1.0 0.0 +de 07_gas 2 312 2030 1.0 0.0 +de 08_non-res 2 312 2030 1.0 0.0 +de 09_hydro_pump 2 312 2030 0.0 0.0 +de 01_solar 2 313 2030 1.0 0.0 +de 02_wind_on 2 313 2030 1.0 0.0 +de 03_wind_off 2 313 2030 1.0 0.0 +de 04_res 2 313 2030 1.0 0.0 +de 05_nuclear 2 313 2030 1.0 0.0 +de 06_coal 2 313 2030 1.0 0.0 +de 07_gas 2 313 2030 1.0 0.0 +de 08_non-res 2 313 2030 1.0 0.0 +de 09_hydro_pump 2 313 2030 0.0 0.0 +de 01_solar 2 314 2030 1.0 0.0 +de 02_wind_on 2 314 2030 1.0 0.0 +de 03_wind_off 2 314 2030 1.0 0.0 +de 04_res 2 314 2030 1.0 0.0 +de 05_nuclear 2 314 2030 1.0 0.0 +de 06_coal 2 314 2030 1.0 0.0 +de 07_gas 2 314 2030 1.0 0.0 +de 08_non-res 2 314 2030 1.0 0.0 +de 09_hydro_pump 2 314 2030 0.0 0.0 +de 01_solar 2 315 2030 1.0 0.0 +de 02_wind_on 2 315 2030 1.0 0.0 +de 03_wind_off 2 315 2030 1.0 0.0 +de 04_res 2 315 2030 1.0 0.0 +de 05_nuclear 2 315 2030 1.0 0.0 +de 06_coal 2 315 2030 1.0 0.0 +de 07_gas 2 315 2030 1.0 0.0 +de 08_non-res 2 315 2030 1.0 0.0 +de 09_hydro_pump 2 315 2030 0.0 0.0 +de 01_solar 2 316 2030 1.0 0.0 +de 02_wind_on 2 316 2030 1.0 0.0 +de 03_wind_off 2 316 2030 1.0 0.0 +de 04_res 2 316 2030 1.0 0.0 +de 05_nuclear 2 316 2030 1.0 0.0 +de 06_coal 2 316 2030 1.0 0.0 +de 07_gas 2 316 2030 1.0 0.0 +de 08_non-res 2 316 2030 1.0 0.0 +de 09_hydro_pump 2 316 2030 0.0 0.0 +de 01_solar 2 317 2030 1.0 0.0 +de 02_wind_on 2 317 2030 1.0 0.0 +de 03_wind_off 2 317 2030 1.0 0.0 +de 04_res 2 317 2030 1.0 0.0 +de 05_nuclear 2 317 2030 1.0 0.0 +de 06_coal 2 317 2030 1.0 0.0 +de 07_gas 2 317 2030 1.0 0.0 +de 08_non-res 2 317 2030 1.0 0.0 +de 09_hydro_pump 2 317 2030 0.0 0.0 +de 01_solar 2 318 2030 1.0 0.0 +de 02_wind_on 2 318 2030 1.0 0.0 +de 03_wind_off 2 318 2030 1.0 0.0 +de 04_res 2 318 2030 1.0 0.0 +de 05_nuclear 2 318 2030 1.0 0.0 +de 06_coal 2 318 2030 1.0 0.0 +de 07_gas 2 318 2030 1.0 0.0 +de 08_non-res 2 318 2030 1.0 0.0 +de 09_hydro_pump 2 318 2030 0.0 0.0 +de 01_solar 2 319 2030 1.0 0.0 +de 02_wind_on 2 319 2030 1.0 0.0 +de 03_wind_off 2 319 2030 1.0 0.0 +de 04_res 2 319 2030 1.0 0.0 +de 05_nuclear 2 319 2030 1.0 0.0 +de 06_coal 2 319 2030 1.0 0.0 +de 07_gas 2 319 2030 1.0 0.0 +de 08_non-res 2 319 2030 1.0 0.0 +de 09_hydro_pump 2 319 2030 0.0 0.0 +de 01_solar 2 320 2030 1.0 0.0 +de 02_wind_on 2 320 2030 1.0 0.0 +de 03_wind_off 2 320 2030 1.0 0.0 +de 04_res 2 320 2030 1.0 0.0 +de 05_nuclear 2 320 2030 1.0 0.0 +de 06_coal 2 320 2030 1.0 0.0 +de 07_gas 2 320 2030 1.0 0.0 +de 08_non-res 2 320 2030 1.0 0.0 +de 09_hydro_pump 2 320 2030 0.0 0.0 +de 01_solar 2 321 2030 1.0 0.0 +de 02_wind_on 2 321 2030 1.0 0.0 +de 03_wind_off 2 321 2030 1.0 0.0 +de 04_res 2 321 2030 1.0 0.0 +de 05_nuclear 2 321 2030 1.0 0.0 +de 06_coal 2 321 2030 1.0 0.0 +de 07_gas 2 321 2030 1.0 0.0 +de 08_non-res 2 321 2030 1.0 0.0 +de 09_hydro_pump 2 321 2030 0.0 0.0 +de 01_solar 2 322 2030 1.0 0.0 +de 02_wind_on 2 322 2030 1.0 0.0 +de 03_wind_off 2 322 2030 1.0 0.0 +de 04_res 2 322 2030 1.0 0.0 +de 05_nuclear 2 322 2030 1.0 0.0 +de 06_coal 2 322 2030 1.0 0.0 +de 07_gas 2 322 2030 1.0 0.0 +de 08_non-res 2 322 2030 1.0 0.0 +de 09_hydro_pump 2 322 2030 0.0 0.0 +de 01_solar 2 323 2030 1.0 0.0 +de 02_wind_on 2 323 2030 1.0 0.0 +de 03_wind_off 2 323 2030 1.0 0.0 +de 04_res 2 323 2030 1.0 0.0 +de 05_nuclear 2 323 2030 1.0 0.0 +de 06_coal 2 323 2030 1.0 0.0 +de 07_gas 2 323 2030 1.0 0.0 +de 08_non-res 2 323 2030 1.0 0.0 +de 09_hydro_pump 2 323 2030 0.0 0.0 +de 01_solar 2 324 2030 1.0 0.0 +de 02_wind_on 2 324 2030 1.0 0.0 +de 03_wind_off 2 324 2030 1.0 0.0 +de 04_res 2 324 2030 1.0 0.0 +de 05_nuclear 2 324 2030 1.0 0.0 +de 06_coal 2 324 2030 1.0 0.0 +de 07_gas 2 324 2030 1.0 0.0 +de 08_non-res 2 324 2030 1.0 0.0 +de 09_hydro_pump 2 324 2030 0.0 0.0 +de 01_solar 2 325 2030 1.0 0.0 +de 02_wind_on 2 325 2030 1.0 0.0 +de 03_wind_off 2 325 2030 1.0 0.0 +de 04_res 2 325 2030 1.0 0.0 +de 05_nuclear 2 325 2030 1.0 0.0 +de 06_coal 2 325 2030 1.0 0.0 +de 07_gas 2 325 2030 1.0 0.0 +de 08_non-res 2 325 2030 1.0 0.0 +de 09_hydro_pump 2 325 2030 0.0 0.0 +de 01_solar 2 326 2030 1.0 0.0 +de 02_wind_on 2 326 2030 1.0 0.0 +de 03_wind_off 2 326 2030 1.0 0.0 +de 04_res 2 326 2030 1.0 0.0 +de 05_nuclear 2 326 2030 1.0 0.0 +de 06_coal 2 326 2030 1.0 0.0 +de 07_gas 2 326 2030 1.0 0.0 +de 08_non-res 2 326 2030 1.0 0.0 +de 09_hydro_pump 2 326 2030 0.0 0.0 +de 01_solar 2 327 2030 1.0 0.0 +de 02_wind_on 2 327 2030 1.0 0.0 +de 03_wind_off 2 327 2030 1.0 0.0 +de 04_res 2 327 2030 1.0 0.0 +de 05_nuclear 2 327 2030 1.0 0.0 +de 06_coal 2 327 2030 1.0 0.0 +de 07_gas 2 327 2030 1.0 0.0 +de 08_non-res 2 327 2030 1.0 0.0 +de 09_hydro_pump 2 327 2030 0.0 0.0 +de 01_solar 2 328 2030 1.0 0.0 +de 02_wind_on 2 328 2030 1.0 0.0 +de 03_wind_off 2 328 2030 1.0 0.0 +de 04_res 2 328 2030 1.0 0.0 +de 05_nuclear 2 328 2030 1.0 0.0 +de 06_coal 2 328 2030 1.0 0.0 +de 07_gas 2 328 2030 1.0 0.0 +de 08_non-res 2 328 2030 1.0 0.0 +de 09_hydro_pump 2 328 2030 0.0 0.0 +de 01_solar 2 329 2030 1.0 0.0 +de 02_wind_on 2 329 2030 1.0 0.0 +de 03_wind_off 2 329 2030 1.0 0.0 +de 04_res 2 329 2030 1.0 0.0 +de 05_nuclear 2 329 2030 1.0 0.0 +de 06_coal 2 329 2030 1.0 0.0 +de 07_gas 2 329 2030 1.0 0.0 +de 08_non-res 2 329 2030 1.0 0.0 +de 09_hydro_pump 2 329 2030 0.0 0.0 +de 01_solar 2 330 2030 1.0 0.0 +de 02_wind_on 2 330 2030 1.0 0.0 +de 03_wind_off 2 330 2030 1.0 0.0 +de 04_res 2 330 2030 1.0 0.0 +de 05_nuclear 2 330 2030 1.0 0.0 +de 06_coal 2 330 2030 1.0 0.0 +de 07_gas 2 330 2030 1.0 0.0 +de 08_non-res 2 330 2030 1.0 0.0 +de 09_hydro_pump 2 330 2030 1.0 0.0 +de 01_solar 2 331 2030 1.0 0.0 +de 02_wind_on 2 331 2030 1.0 0.0 +de 03_wind_off 2 331 2030 1.0 0.0 +de 04_res 2 331 2030 1.0 0.0 +de 05_nuclear 2 331 2030 1.0 0.0 +de 06_coal 2 331 2030 1.0 0.0 +de 07_gas 2 331 2030 1.0 0.0 +de 08_non-res 2 331 2030 1.0 0.0 +de 09_hydro_pump 2 331 2030 1.0 0.0 +de 01_solar 2 332 2030 1.0 0.0 +de 02_wind_on 2 332 2030 1.0 0.0 +de 03_wind_off 2 332 2030 1.0 0.0 +de 04_res 2 332 2030 1.0 0.0 +de 05_nuclear 2 332 2030 1.0 0.0 +de 06_coal 2 332 2030 1.0 0.0 +de 07_gas 2 332 2030 1.0 0.0 +de 08_non-res 2 332 2030 1.0 0.0 +de 09_hydro_pump 2 332 2030 1.0 0.0 +de 01_solar 2 333 2030 1.0 0.0 +de 02_wind_on 2 333 2030 1.0 0.0 +de 03_wind_off 2 333 2030 1.0 0.0 +de 04_res 2 333 2030 1.0 0.0 +de 05_nuclear 2 333 2030 1.0 0.0 +de 06_coal 2 333 2030 1.0 0.0 +de 07_gas 2 333 2030 1.0 0.0 +de 08_non-res 2 333 2030 1.0 0.0 +de 09_hydro_pump 2 333 2030 1.0 0.0 +de 01_solar 2 334 2030 1.0 0.0 +de 02_wind_on 2 334 2030 1.0 0.0 +de 03_wind_off 2 334 2030 1.0 0.0 +de 04_res 2 334 2030 1.0 0.0 +de 05_nuclear 2 334 2030 1.0 0.0 +de 06_coal 2 334 2030 1.0 0.0 +de 07_gas 2 334 2030 1.0 0.0 +de 08_non-res 2 334 2030 1.0 0.0 +de 09_hydro_pump 2 334 2030 1.0 0.0 +de 01_solar 2 335 2030 1.0 0.0 +de 02_wind_on 2 335 2030 1.0 0.0 +de 03_wind_off 2 335 2030 1.0 0.0 +de 04_res 2 335 2030 1.0 0.0 +de 05_nuclear 2 335 2030 1.0 0.0 +de 06_coal 2 335 2030 1.0 0.0 +de 07_gas 2 335 2030 1.0 0.0 +de 08_non-res 2 335 2030 1.0 0.0 +de 09_hydro_pump 2 335 2030 1.0 0.0 +de 01_solar 2 336 2030 1.0 0.0 +de 02_wind_on 2 336 2030 1.0 0.0 +de 03_wind_off 2 336 2030 1.0 0.0 +de 04_res 2 336 2030 1.0 0.0 +de 05_nuclear 2 336 2030 1.0 0.0 +de 06_coal 2 336 2030 1.0 0.0 +de 07_gas 2 336 2030 1.0 0.0 +de 08_non-res 2 336 2030 1.0 0.0 +de 09_hydro_pump 2 336 2030 1.0 0.0 +es 01_solar 2 1 2030 0.0 0.0 +es 02_wind_on 2 1 2030 0.0 0.0 +es 03_wind_off 2 1 2030 0.0 0.0 +es 04_res 2 1 2030 0.0 0.0 +es 05_nuclear 2 1 2030 0.0 0.0 +es 06_coal 2 1 2030 0.0 0.0 +es 07_gas 2 1 2030 0.0 0.0 +es 08_non-res 2 1 2030 0.0 0.0 +es 09_hydro_pump 2 1 2030 0.0 0.0 +es 01_solar 2 2 2030 1.0 0.0 +es 02_wind_on 2 2 2030 0.0 0.0 +es 03_wind_off 2 2 2030 0.0 0.0 +es 04_res 2 2 2030 0.0 0.0 +es 05_nuclear 2 2 2030 0.0 0.0 +es 06_coal 2 2 2030 0.0 0.0 +es 07_gas 2 2 2030 0.0 0.0 +es 08_non-res 2 2 2030 0.0 0.0 +es 09_hydro_pump 2 2 2030 0.0 0.0 +es 01_solar 2 3 2030 1.0 0.0 +es 02_wind_on 2 3 2030 0.0 0.0 +es 03_wind_off 2 3 2030 0.0 0.0 +es 04_res 2 3 2030 0.0 0.0 +es 05_nuclear 2 3 2030 0.0 0.0 +es 06_coal 2 3 2030 0.0 0.0 +es 07_gas 2 3 2030 0.0 0.0 +es 08_non-res 2 3 2030 0.0 0.0 +es 09_hydro_pump 2 3 2030 0.0 0.0 +es 01_solar 2 4 2030 1.0 0.0 +es 02_wind_on 2 4 2030 0.0 0.0 +es 03_wind_off 2 4 2030 0.0 0.0 +es 04_res 2 4 2030 0.0 0.0 +es 05_nuclear 2 4 2030 0.0 0.0 +es 06_coal 2 4 2030 0.0 0.0 +es 07_gas 2 4 2030 0.0 0.0 +es 08_non-res 2 4 2030 0.0 0.0 +es 09_hydro_pump 2 4 2030 0.0 0.0 +es 01_solar 2 5 2030 1.0 0.0 +es 02_wind_on 2 5 2030 0.0 0.0 +es 03_wind_off 2 5 2030 0.0 0.0 +es 04_res 2 5 2030 0.0 0.0 +es 05_nuclear 2 5 2030 0.0 0.0 +es 06_coal 2 5 2030 0.0 0.0 +es 07_gas 2 5 2030 0.0 0.0 +es 08_non-res 2 5 2030 0.0 0.0 +es 09_hydro_pump 2 5 2030 0.0 0.0 +es 01_solar 2 6 2030 1.0 0.0 +es 02_wind_on 2 6 2030 0.0 0.0 +es 03_wind_off 2 6 2030 0.0 0.0 +es 04_res 2 6 2030 0.0 0.0 +es 05_nuclear 2 6 2030 0.0 0.0 +es 06_coal 2 6 2030 0.0 0.0 +es 07_gas 2 6 2030 0.0 0.0 +es 08_non-res 2 6 2030 0.0 0.0 +es 09_hydro_pump 2 6 2030 0.0 0.0 +es 01_solar 2 7 2030 1.0 0.0 +es 02_wind_on 2 7 2030 0.0 0.0 +es 03_wind_off 2 7 2030 0.0 0.0 +es 04_res 2 7 2030 0.0 0.0 +es 05_nuclear 2 7 2030 0.0 0.0 +es 06_coal 2 7 2030 0.0 0.0 +es 07_gas 2 7 2030 0.0 0.0 +es 08_non-res 2 7 2030 0.0 0.0 +es 09_hydro_pump 2 7 2030 0.0 0.0 +es 01_solar 2 8 2030 1.0 0.0 +es 02_wind_on 2 8 2030 0.0 0.0 +es 03_wind_off 2 8 2030 0.0 0.0 +es 04_res 2 8 2030 0.0 0.0 +es 05_nuclear 2 8 2030 0.0 0.0 +es 06_coal 2 8 2030 0.0 0.0 +es 07_gas 2 8 2030 0.0 0.0 +es 08_non-res 2 8 2030 0.0 0.0 +es 09_hydro_pump 2 8 2030 0.0 0.0 +es 01_solar 2 9 2030 1.0 0.0 +es 02_wind_on 2 9 2030 0.0 0.0 +es 03_wind_off 2 9 2030 0.0 0.0 +es 04_res 2 9 2030 0.0 0.0 +es 05_nuclear 2 9 2030 0.0 0.0 +es 06_coal 2 9 2030 0.0 0.0 +es 07_gas 2 9 2030 0.0 0.0 +es 08_non-res 2 9 2030 0.0 0.0 +es 09_hydro_pump 2 9 2030 0.0 0.0 +es 01_solar 2 10 2030 1.0 0.0 +es 02_wind_on 2 10 2030 0.0 0.0 +es 03_wind_off 2 10 2030 0.0 0.0 +es 04_res 2 10 2030 0.0 0.0 +es 05_nuclear 2 10 2030 0.0 0.0 +es 06_coal 2 10 2030 0.0 0.0 +es 07_gas 2 10 2030 0.0 0.0 +es 08_non-res 2 10 2030 0.0 0.0 +es 09_hydro_pump 2 10 2030 0.0 0.0 +es 01_solar 2 11 2030 1.0 0.0 +es 02_wind_on 2 11 2030 0.0 0.0 +es 03_wind_off 2 11 2030 0.0 0.0 +es 04_res 2 11 2030 0.0 0.0 +es 05_nuclear 2 11 2030 0.0 0.0 +es 06_coal 2 11 2030 0.0 0.0 +es 07_gas 2 11 2030 0.0 0.0 +es 08_non-res 2 11 2030 0.0 0.0 +es 09_hydro_pump 2 11 2030 0.0 0.0 +es 01_solar 2 12 2030 1.0 0.0 +es 02_wind_on 2 12 2030 0.0 0.0 +es 03_wind_off 2 12 2030 0.0 0.0 +es 04_res 2 12 2030 0.0 0.0 +es 05_nuclear 2 12 2030 0.0 0.0 +es 06_coal 2 12 2030 0.0 0.0 +es 07_gas 2 12 2030 0.0 0.0 +es 08_non-res 2 12 2030 0.0 0.0 +es 09_hydro_pump 2 12 2030 0.0 0.0 +es 01_solar 2 13 2030 1.0 0.0 +es 02_wind_on 2 13 2030 0.0 0.0 +es 03_wind_off 2 13 2030 0.0 0.0 +es 04_res 2 13 2030 0.0 0.0 +es 05_nuclear 2 13 2030 0.0 0.0 +es 06_coal 2 13 2030 0.0 0.0 +es 07_gas 2 13 2030 0.0 0.0 +es 08_non-res 2 13 2030 0.0 0.0 +es 09_hydro_pump 2 13 2030 0.0 0.0 +es 01_solar 2 14 2030 1.0 0.0 +es 02_wind_on 2 14 2030 0.0 0.0 +es 03_wind_off 2 14 2030 0.0 0.0 +es 04_res 2 14 2030 0.0 0.0 +es 05_nuclear 2 14 2030 0.0 0.0 +es 06_coal 2 14 2030 0.0 0.0 +es 07_gas 2 14 2030 0.0 0.0 +es 08_non-res 2 14 2030 0.0 0.0 +es 09_hydro_pump 2 14 2030 0.0 0.0 +es 01_solar 2 15 2030 1.0 0.0 +es 02_wind_on 2 15 2030 0.0 0.0 +es 03_wind_off 2 15 2030 0.0 0.0 +es 04_res 2 15 2030 0.0 0.0 +es 05_nuclear 2 15 2030 0.0 0.0 +es 06_coal 2 15 2030 0.0 0.0 +es 07_gas 2 15 2030 0.0 0.0 +es 08_non-res 2 15 2030 0.0 0.0 +es 09_hydro_pump 2 15 2030 0.0 0.0 +es 01_solar 2 16 2030 1.0 0.0 +es 02_wind_on 2 16 2030 0.0 0.0 +es 03_wind_off 2 16 2030 0.0 0.0 +es 04_res 2 16 2030 0.0 0.0 +es 05_nuclear 2 16 2030 0.0 0.0 +es 06_coal 2 16 2030 0.0 0.0 +es 07_gas 2 16 2030 0.0 0.0 +es 08_non-res 2 16 2030 0.0 0.0 +es 09_hydro_pump 2 16 2030 0.0 0.0 +es 01_solar 2 17 2030 1.0 0.0 +es 02_wind_on 2 17 2030 0.0 0.0 +es 03_wind_off 2 17 2030 0.0 0.0 +es 04_res 2 17 2030 0.0 0.0 +es 05_nuclear 2 17 2030 0.0 0.0 +es 06_coal 2 17 2030 0.0 0.0 +es 07_gas 2 17 2030 0.0 0.0 +es 08_non-res 2 17 2030 0.0 0.0 +es 09_hydro_pump 2 17 2030 0.0 0.0 +es 01_solar 2 18 2030 1.0 0.0 +es 02_wind_on 2 18 2030 0.0 0.0 +es 03_wind_off 2 18 2030 0.0 0.0 +es 04_res 2 18 2030 0.0 0.0 +es 05_nuclear 2 18 2030 0.0 0.0 +es 06_coal 2 18 2030 0.0 0.0 +es 07_gas 2 18 2030 0.0 0.0 +es 08_non-res 2 18 2030 0.0 0.0 +es 09_hydro_pump 2 18 2030 0.0 0.0 +es 01_solar 2 19 2030 1.0 0.0 +es 02_wind_on 2 19 2030 0.0 0.0 +es 03_wind_off 2 19 2030 0.0 0.0 +es 04_res 2 19 2030 0.0 0.0 +es 05_nuclear 2 19 2030 0.0 0.0 +es 06_coal 2 19 2030 0.0 0.0 +es 07_gas 2 19 2030 0.0 0.0 +es 08_non-res 2 19 2030 0.0 0.0 +es 09_hydro_pump 2 19 2030 0.0 0.0 +es 01_solar 2 20 2030 1.0 0.0 +es 02_wind_on 2 20 2030 0.0 0.0 +es 03_wind_off 2 20 2030 0.0 0.0 +es 04_res 2 20 2030 0.0 0.0 +es 05_nuclear 2 20 2030 0.0 0.0 +es 06_coal 2 20 2030 0.0 0.0 +es 07_gas 2 20 2030 0.0 0.0 +es 08_non-res 2 20 2030 0.0 0.0 +es 09_hydro_pump 2 20 2030 0.0 0.0 +es 01_solar 2 21 2030 1.0 0.0 +es 02_wind_on 2 21 2030 0.0 0.0 +es 03_wind_off 2 21 2030 0.0 0.0 +es 04_res 2 21 2030 0.0 0.0 +es 05_nuclear 2 21 2030 0.0 0.0 +es 06_coal 2 21 2030 0.0 0.0 +es 07_gas 2 21 2030 0.0 0.0 +es 08_non-res 2 21 2030 0.0 0.0 +es 09_hydro_pump 2 21 2030 0.0 0.0 +es 01_solar 2 22 2030 1.0 0.0 +es 02_wind_on 2 22 2030 1.0 0.0 +es 03_wind_off 2 22 2030 0.0 0.0 +es 04_res 2 22 2030 0.0 0.0 +es 05_nuclear 2 22 2030 0.0 0.0 +es 06_coal 2 22 2030 0.0 0.0 +es 07_gas 2 22 2030 0.0 0.0 +es 08_non-res 2 22 2030 0.0 0.0 +es 09_hydro_pump 2 22 2030 0.0 0.0 +es 01_solar 2 23 2030 1.0 0.0 +es 02_wind_on 2 23 2030 1.0 0.0 +es 03_wind_off 2 23 2030 0.0 0.0 +es 04_res 2 23 2030 0.0 0.0 +es 05_nuclear 2 23 2030 0.0 0.0 +es 06_coal 2 23 2030 0.0 0.0 +es 07_gas 2 23 2030 0.0 0.0 +es 08_non-res 2 23 2030 0.0 0.0 +es 09_hydro_pump 2 23 2030 0.0 0.0 +es 01_solar 2 24 2030 1.0 0.0 +es 02_wind_on 2 24 2030 1.0 0.0 +es 03_wind_off 2 24 2030 0.0 0.0 +es 04_res 2 24 2030 0.0 0.0 +es 05_nuclear 2 24 2030 0.0 0.0 +es 06_coal 2 24 2030 0.0 0.0 +es 07_gas 2 24 2030 0.0 0.0 +es 08_non-res 2 24 2030 0.0 0.0 +es 09_hydro_pump 2 24 2030 0.0 0.0 +es 01_solar 2 25 2030 1.0 0.0 +es 02_wind_on 2 25 2030 1.0 0.0 +es 03_wind_off 2 25 2030 0.0 0.0 +es 04_res 2 25 2030 0.0 0.0 +es 05_nuclear 2 25 2030 0.0 0.0 +es 06_coal 2 25 2030 0.0 0.0 +es 07_gas 2 25 2030 0.0 0.0 +es 08_non-res 2 25 2030 0.0 0.0 +es 09_hydro_pump 2 25 2030 0.0 0.0 +es 01_solar 2 26 2030 1.0 0.0 +es 02_wind_on 2 26 2030 1.0 0.0 +es 03_wind_off 2 26 2030 0.0 0.0 +es 04_res 2 26 2030 0.0 0.0 +es 05_nuclear 2 26 2030 0.0 0.0 +es 06_coal 2 26 2030 0.0 0.0 +es 07_gas 2 26 2030 0.0 0.0 +es 08_non-res 2 26 2030 0.0 0.0 +es 09_hydro_pump 2 26 2030 0.0 0.0 +es 01_solar 2 27 2030 1.0 0.0 +es 02_wind_on 2 27 2030 1.0 0.0 +es 03_wind_off 2 27 2030 0.0 0.0 +es 04_res 2 27 2030 0.0 0.0 +es 05_nuclear 2 27 2030 0.0 0.0 +es 06_coal 2 27 2030 0.0 0.0 +es 07_gas 2 27 2030 0.0 0.0 +es 08_non-res 2 27 2030 0.0 0.0 +es 09_hydro_pump 2 27 2030 0.0 0.0 +es 01_solar 2 28 2030 1.0 0.0 +es 02_wind_on 2 28 2030 1.0 0.0 +es 03_wind_off 2 28 2030 0.0 0.0 +es 04_res 2 28 2030 0.0 0.0 +es 05_nuclear 2 28 2030 0.0 0.0 +es 06_coal 2 28 2030 0.0 0.0 +es 07_gas 2 28 2030 0.0 0.0 +es 08_non-res 2 28 2030 0.0 0.0 +es 09_hydro_pump 2 28 2030 0.0 0.0 +es 01_solar 2 29 2030 1.0 0.0 +es 02_wind_on 2 29 2030 1.0 0.0 +es 03_wind_off 2 29 2030 0.0 0.0 +es 04_res 2 29 2030 0.0 0.0 +es 05_nuclear 2 29 2030 0.0 0.0 +es 06_coal 2 29 2030 0.0 0.0 +es 07_gas 2 29 2030 0.0 0.0 +es 08_non-res 2 29 2030 0.0 0.0 +es 09_hydro_pump 2 29 2030 0.0 0.0 +es 01_solar 2 30 2030 1.0 0.0 +es 02_wind_on 2 30 2030 1.0 0.0 +es 03_wind_off 2 30 2030 0.0 0.0 +es 04_res 2 30 2030 0.0 0.0 +es 05_nuclear 2 30 2030 0.0 0.0 +es 06_coal 2 30 2030 0.0 0.0 +es 07_gas 2 30 2030 0.0 0.0 +es 08_non-res 2 30 2030 0.0 0.0 +es 09_hydro_pump 2 30 2030 0.0 0.0 +es 01_solar 2 31 2030 1.0 0.0 +es 02_wind_on 2 31 2030 1.0 0.0 +es 03_wind_off 2 31 2030 0.0 0.0 +es 04_res 2 31 2030 0.0 0.0 +es 05_nuclear 2 31 2030 0.0 0.0 +es 06_coal 2 31 2030 0.0 0.0 +es 07_gas 2 31 2030 0.0 0.0 +es 08_non-res 2 31 2030 0.0 0.0 +es 09_hydro_pump 2 31 2030 0.0 0.0 +es 01_solar 2 32 2030 1.0 0.0 +es 02_wind_on 2 32 2030 1.0 0.0 +es 03_wind_off 2 32 2030 0.0 0.0 +es 04_res 2 32 2030 0.0 0.0 +es 05_nuclear 2 32 2030 0.0 0.0 +es 06_coal 2 32 2030 0.0 0.0 +es 07_gas 2 32 2030 0.0 0.0 +es 08_non-res 2 32 2030 0.0 0.0 +es 09_hydro_pump 2 32 2030 0.0 0.0 +es 01_solar 2 33 2030 1.0 0.0 +es 02_wind_on 2 33 2030 1.0 0.0 +es 03_wind_off 2 33 2030 0.0 0.0 +es 04_res 2 33 2030 0.0 0.0 +es 05_nuclear 2 33 2030 0.0 0.0 +es 06_coal 2 33 2030 0.0 0.0 +es 07_gas 2 33 2030 0.0 0.0 +es 08_non-res 2 33 2030 0.0 0.0 +es 09_hydro_pump 2 33 2030 0.0 0.0 +es 01_solar 2 34 2030 1.0 0.0 +es 02_wind_on 2 34 2030 1.0 0.0 +es 03_wind_off 2 34 2030 0.0 0.0 +es 04_res 2 34 2030 0.0 0.0 +es 05_nuclear 2 34 2030 0.0 0.0 +es 06_coal 2 34 2030 0.0 0.0 +es 07_gas 2 34 2030 0.0 0.0 +es 08_non-res 2 34 2030 0.0 0.0 +es 09_hydro_pump 2 34 2030 0.0 0.0 +es 01_solar 2 35 2030 1.0 0.0 +es 02_wind_on 2 35 2030 1.0 0.0 +es 03_wind_off 2 35 2030 0.0 0.0 +es 04_res 2 35 2030 0.0 0.0 +es 05_nuclear 2 35 2030 0.0 0.0 +es 06_coal 2 35 2030 0.0 0.0 +es 07_gas 2 35 2030 0.0 0.0 +es 08_non-res 2 35 2030 0.0 0.0 +es 09_hydro_pump 2 35 2030 0.0 0.0 +es 01_solar 2 36 2030 1.0 0.0 +es 02_wind_on 2 36 2030 1.0 0.0 +es 03_wind_off 2 36 2030 0.0 0.0 +es 04_res 2 36 2030 0.0 0.0 +es 05_nuclear 2 36 2030 0.0 0.0 +es 06_coal 2 36 2030 0.0 0.0 +es 07_gas 2 36 2030 0.0 0.0 +es 08_non-res 2 36 2030 0.0 0.0 +es 09_hydro_pump 2 36 2030 0.0 0.0 +es 01_solar 2 37 2030 1.0 0.0 +es 02_wind_on 2 37 2030 1.0 0.0 +es 03_wind_off 2 37 2030 0.0 0.0 +es 04_res 2 37 2030 0.0 0.0 +es 05_nuclear 2 37 2030 0.0 0.0 +es 06_coal 2 37 2030 0.0 0.0 +es 07_gas 2 37 2030 0.0 0.0 +es 08_non-res 2 37 2030 0.0 0.0 +es 09_hydro_pump 2 37 2030 0.0 0.0 +es 01_solar 2 38 2030 1.0 0.0 +es 02_wind_on 2 38 2030 1.0 0.0 +es 03_wind_off 2 38 2030 0.0 0.0 +es 04_res 2 38 2030 0.0 0.0 +es 05_nuclear 2 38 2030 0.0 0.0 +es 06_coal 2 38 2030 0.0 0.0 +es 07_gas 2 38 2030 0.0 0.0 +es 08_non-res 2 38 2030 0.0 0.0 +es 09_hydro_pump 2 38 2030 0.0 0.0 +es 01_solar 2 39 2030 1.0 0.0 +es 02_wind_on 2 39 2030 1.0 0.0 +es 03_wind_off 2 39 2030 0.0 0.0 +es 04_res 2 39 2030 0.0 0.0 +es 05_nuclear 2 39 2030 0.0 0.0 +es 06_coal 2 39 2030 0.0 0.0 +es 07_gas 2 39 2030 0.0 0.0 +es 08_non-res 2 39 2030 0.0 0.0 +es 09_hydro_pump 2 39 2030 0.0 0.0 +es 01_solar 2 40 2030 1.0 0.0 +es 02_wind_on 2 40 2030 1.0 0.0 +es 03_wind_off 2 40 2030 0.0 0.0 +es 04_res 2 40 2030 0.0 0.0 +es 05_nuclear 2 40 2030 0.0 0.0 +es 06_coal 2 40 2030 0.0 0.0 +es 07_gas 2 40 2030 0.0 0.0 +es 08_non-res 2 40 2030 0.0 0.0 +es 09_hydro_pump 2 40 2030 0.0 0.0 +es 01_solar 2 41 2030 1.0 0.0 +es 02_wind_on 2 41 2030 1.0 0.0 +es 03_wind_off 2 41 2030 0.0 0.0 +es 04_res 2 41 2030 0.0 0.0 +es 05_nuclear 2 41 2030 0.0 0.0 +es 06_coal 2 41 2030 0.0 0.0 +es 07_gas 2 41 2030 0.0 0.0 +es 08_non-res 2 41 2030 0.0 0.0 +es 09_hydro_pump 2 41 2030 0.0 0.0 +es 01_solar 2 42 2030 1.0 0.0 +es 02_wind_on 2 42 2030 1.0 0.0 +es 03_wind_off 2 42 2030 1.0 0.0 +es 04_res 2 42 2030 0.0 0.0 +es 05_nuclear 2 42 2030 0.0 0.0 +es 06_coal 2 42 2030 0.0 0.0 +es 07_gas 2 42 2030 0.0 0.0 +es 08_non-res 2 42 2030 0.0 0.0 +es 09_hydro_pump 2 42 2030 0.0 0.0 +es 01_solar 2 43 2030 1.0 0.0 +es 02_wind_on 2 43 2030 1.0 0.0 +es 03_wind_off 2 43 2030 1.0 0.0 +es 04_res 2 43 2030 0.0 0.0 +es 05_nuclear 2 43 2030 0.0 0.0 +es 06_coal 2 43 2030 0.0 0.0 +es 07_gas 2 43 2030 0.0 0.0 +es 08_non-res 2 43 2030 0.0 0.0 +es 09_hydro_pump 2 43 2030 0.0 0.0 +es 01_solar 2 44 2030 1.0 0.0 +es 02_wind_on 2 44 2030 1.0 0.0 +es 03_wind_off 2 44 2030 1.0 0.0 +es 04_res 2 44 2030 0.0 0.0 +es 05_nuclear 2 44 2030 0.0 0.0 +es 06_coal 2 44 2030 0.0 0.0 +es 07_gas 2 44 2030 0.0 0.0 +es 08_non-res 2 44 2030 0.0 0.0 +es 09_hydro_pump 2 44 2030 0.0 0.0 +es 01_solar 2 45 2030 1.0 0.0 +es 02_wind_on 2 45 2030 1.0 0.0 +es 03_wind_off 2 45 2030 1.0 0.0 +es 04_res 2 45 2030 0.0 0.0 +es 05_nuclear 2 45 2030 0.0 0.0 +es 06_coal 2 45 2030 0.0 0.0 +es 07_gas 2 45 2030 0.0 0.0 +es 08_non-res 2 45 2030 0.0 0.0 +es 09_hydro_pump 2 45 2030 0.0 0.0 +es 01_solar 2 46 2030 1.0 0.0 +es 02_wind_on 2 46 2030 1.0 0.0 +es 03_wind_off 2 46 2030 1.0 0.0 +es 04_res 2 46 2030 0.0 0.0 +es 05_nuclear 2 46 2030 0.0 0.0 +es 06_coal 2 46 2030 0.0 0.0 +es 07_gas 2 46 2030 0.0 0.0 +es 08_non-res 2 46 2030 0.0 0.0 +es 09_hydro_pump 2 46 2030 0.0 0.0 +es 01_solar 2 47 2030 1.0 0.0 +es 02_wind_on 2 47 2030 1.0 0.0 +es 03_wind_off 2 47 2030 1.0 0.0 +es 04_res 2 47 2030 0.0 0.0 +es 05_nuclear 2 47 2030 0.0 0.0 +es 06_coal 2 47 2030 0.0 0.0 +es 07_gas 2 47 2030 0.0 0.0 +es 08_non-res 2 47 2030 0.0 0.0 +es 09_hydro_pump 2 47 2030 0.0 0.0 +es 01_solar 2 48 2030 1.0 0.0 +es 02_wind_on 2 48 2030 1.0 0.0 +es 03_wind_off 2 48 2030 1.0 0.0 +es 04_res 2 48 2030 0.0 0.0 +es 05_nuclear 2 48 2030 0.0 0.0 +es 06_coal 2 48 2030 0.0 0.0 +es 07_gas 2 48 2030 0.0 0.0 +es 08_non-res 2 48 2030 0.0 0.0 +es 09_hydro_pump 2 48 2030 0.0 0.0 +es 01_solar 2 49 2030 1.0 0.0 +es 02_wind_on 2 49 2030 1.0 0.0 +es 03_wind_off 2 49 2030 1.0 0.0 +es 04_res 2 49 2030 0.0 0.0 +es 05_nuclear 2 49 2030 0.0 0.0 +es 06_coal 2 49 2030 0.0 0.0 +es 07_gas 2 49 2030 0.0 0.0 +es 08_non-res 2 49 2030 0.0 0.0 +es 09_hydro_pump 2 49 2030 0.0 0.0 +es 01_solar 2 50 2030 1.0 0.0 +es 02_wind_on 2 50 2030 1.0 0.0 +es 03_wind_off 2 50 2030 1.0 0.0 +es 04_res 2 50 2030 0.0 0.0 +es 05_nuclear 2 50 2030 0.0 0.0 +es 06_coal 2 50 2030 0.0 0.0 +es 07_gas 2 50 2030 0.0 0.0 +es 08_non-res 2 50 2030 0.0 0.0 +es 09_hydro_pump 2 50 2030 0.0 0.0 +es 01_solar 2 51 2030 1.0 0.0 +es 02_wind_on 2 51 2030 1.0 0.0 +es 03_wind_off 2 51 2030 1.0 0.0 +es 04_res 2 51 2030 0.0 0.0 +es 05_nuclear 2 51 2030 0.0 0.0 +es 06_coal 2 51 2030 0.0 0.0 +es 07_gas 2 51 2030 0.0 0.0 +es 08_non-res 2 51 2030 0.0 0.0 +es 09_hydro_pump 2 51 2030 0.0 0.0 +es 01_solar 2 52 2030 1.0 0.0 +es 02_wind_on 2 52 2030 1.0 0.0 +es 03_wind_off 2 52 2030 1.0 0.0 +es 04_res 2 52 2030 0.0 0.0 +es 05_nuclear 2 52 2030 0.0 0.0 +es 06_coal 2 52 2030 0.0 0.0 +es 07_gas 2 52 2030 0.0 0.0 +es 08_non-res 2 52 2030 0.0 0.0 +es 09_hydro_pump 2 52 2030 0.0 0.0 +es 01_solar 2 53 2030 1.0 0.0 +es 02_wind_on 2 53 2030 1.0 0.0 +es 03_wind_off 2 53 2030 1.0 0.0 +es 04_res 2 53 2030 0.0 0.0 +es 05_nuclear 2 53 2030 0.0 0.0 +es 06_coal 2 53 2030 0.0 0.0 +es 07_gas 2 53 2030 0.0 0.0 +es 08_non-res 2 53 2030 0.0 0.0 +es 09_hydro_pump 2 53 2030 0.0 0.0 +es 01_solar 2 54 2030 1.0 0.0 +es 02_wind_on 2 54 2030 1.0 0.0 +es 03_wind_off 2 54 2030 1.0 0.0 +es 04_res 2 54 2030 0.0 0.0 +es 05_nuclear 2 54 2030 0.0 0.0 +es 06_coal 2 54 2030 0.0 0.0 +es 07_gas 2 54 2030 0.0 0.0 +es 08_non-res 2 54 2030 0.0 0.0 +es 09_hydro_pump 2 54 2030 0.0 0.0 +es 01_solar 2 55 2030 1.0 0.0 +es 02_wind_on 2 55 2030 1.0 0.0 +es 03_wind_off 2 55 2030 1.0 0.0 +es 04_res 2 55 2030 0.0 0.0 +es 05_nuclear 2 55 2030 0.0 0.0 +es 06_coal 2 55 2030 0.0 0.0 +es 07_gas 2 55 2030 0.0 0.0 +es 08_non-res 2 55 2030 0.0 0.0 +es 09_hydro_pump 2 55 2030 0.0 0.0 +es 01_solar 2 56 2030 1.0 0.0 +es 02_wind_on 2 56 2030 1.0 0.0 +es 03_wind_off 2 56 2030 1.0 0.0 +es 04_res 2 56 2030 0.0 0.0 +es 05_nuclear 2 56 2030 0.0 0.0 +es 06_coal 2 56 2030 0.0 0.0 +es 07_gas 2 56 2030 0.0 0.0 +es 08_non-res 2 56 2030 0.0 0.0 +es 09_hydro_pump 2 56 2030 0.0 0.0 +es 01_solar 2 57 2030 1.0 0.0 +es 02_wind_on 2 57 2030 1.0 0.0 +es 03_wind_off 2 57 2030 1.0 0.0 +es 04_res 2 57 2030 0.0 0.0 +es 05_nuclear 2 57 2030 0.0 0.0 +es 06_coal 2 57 2030 0.0 0.0 +es 07_gas 2 57 2030 0.0 0.0 +es 08_non-res 2 57 2030 0.0 0.0 +es 09_hydro_pump 2 57 2030 0.0 0.0 +es 01_solar 2 58 2030 1.0 0.0 +es 02_wind_on 2 58 2030 1.0 0.0 +es 03_wind_off 2 58 2030 1.0 0.0 +es 04_res 2 58 2030 0.0 0.0 +es 05_nuclear 2 58 2030 0.0 0.0 +es 06_coal 2 58 2030 0.0 0.0 +es 07_gas 2 58 2030 0.0 0.0 +es 08_non-res 2 58 2030 0.0 0.0 +es 09_hydro_pump 2 58 2030 0.0 0.0 +es 01_solar 2 59 2030 1.0 0.0 +es 02_wind_on 2 59 2030 1.0 0.0 +es 03_wind_off 2 59 2030 1.0 0.0 +es 04_res 2 59 2030 0.0 0.0 +es 05_nuclear 2 59 2030 0.0 0.0 +es 06_coal 2 59 2030 0.0 0.0 +es 07_gas 2 59 2030 0.0 0.0 +es 08_non-res 2 59 2030 0.0 0.0 +es 09_hydro_pump 2 59 2030 0.0 0.0 +es 01_solar 2 60 2030 1.0 0.0 +es 02_wind_on 2 60 2030 1.0 0.0 +es 03_wind_off 2 60 2030 1.0 0.0 +es 04_res 2 60 2030 0.0 0.0 +es 05_nuclear 2 60 2030 0.0 0.0 +es 06_coal 2 60 2030 0.0 0.0 +es 07_gas 2 60 2030 0.0 0.0 +es 08_non-res 2 60 2030 0.0 0.0 +es 09_hydro_pump 2 60 2030 0.0 0.0 +es 01_solar 2 61 2030 1.0 0.0 +es 02_wind_on 2 61 2030 1.0 0.0 +es 03_wind_off 2 61 2030 1.0 0.0 +es 04_res 2 61 2030 0.0 0.0 +es 05_nuclear 2 61 2030 0.0 0.0 +es 06_coal 2 61 2030 0.0 0.0 +es 07_gas 2 61 2030 0.0 0.0 +es 08_non-res 2 61 2030 0.0 0.0 +es 09_hydro_pump 2 61 2030 0.0 0.0 +es 01_solar 2 62 2030 1.0 0.0 +es 02_wind_on 2 62 2030 1.0 0.0 +es 03_wind_off 2 62 2030 1.0 0.0 +es 04_res 2 62 2030 1.0 0.0 +es 05_nuclear 2 62 2030 0.0 0.0 +es 06_coal 2 62 2030 0.0 0.0 +es 07_gas 2 62 2030 0.0 0.0 +es 08_non-res 2 62 2030 0.0 0.0 +es 09_hydro_pump 2 62 2030 0.0 0.0 +es 01_solar 2 63 2030 1.0 0.0 +es 02_wind_on 2 63 2030 1.0 0.0 +es 03_wind_off 2 63 2030 1.0 0.0 +es 04_res 2 63 2030 1.0 0.0 +es 05_nuclear 2 63 2030 0.0 0.0 +es 06_coal 2 63 2030 0.0 0.0 +es 07_gas 2 63 2030 0.0 0.0 +es 08_non-res 2 63 2030 0.0 0.0 +es 09_hydro_pump 2 63 2030 0.0 0.0 +es 01_solar 2 64 2030 1.0 0.0 +es 02_wind_on 2 64 2030 1.0 0.0 +es 03_wind_off 2 64 2030 1.0 0.0 +es 04_res 2 64 2030 1.0 0.0 +es 05_nuclear 2 64 2030 0.0 0.0 +es 06_coal 2 64 2030 0.0 0.0 +es 07_gas 2 64 2030 0.0 0.0 +es 08_non-res 2 64 2030 0.0 0.0 +es 09_hydro_pump 2 64 2030 0.0 0.0 +es 01_solar 2 65 2030 1.0 0.0 +es 02_wind_on 2 65 2030 1.0 0.0 +es 03_wind_off 2 65 2030 1.0 0.0 +es 04_res 2 65 2030 1.0 0.0 +es 05_nuclear 2 65 2030 0.0 0.0 +es 06_coal 2 65 2030 0.0 0.0 +es 07_gas 2 65 2030 0.0 0.0 +es 08_non-res 2 65 2030 0.0 0.0 +es 09_hydro_pump 2 65 2030 0.0 0.0 +es 01_solar 2 66 2030 1.0 0.0 +es 02_wind_on 2 66 2030 1.0 0.0 +es 03_wind_off 2 66 2030 1.0 0.0 +es 04_res 2 66 2030 1.0 0.0 +es 05_nuclear 2 66 2030 0.0 0.0 +es 06_coal 2 66 2030 0.0 0.0 +es 07_gas 2 66 2030 0.0 0.0 +es 08_non-res 2 66 2030 0.0 0.0 +es 09_hydro_pump 2 66 2030 0.0 0.0 +es 01_solar 2 67 2030 1.0 0.0 +es 02_wind_on 2 67 2030 1.0 0.0 +es 03_wind_off 2 67 2030 1.0 0.0 +es 04_res 2 67 2030 1.0 0.0 +es 05_nuclear 2 67 2030 0.0 0.0 +es 06_coal 2 67 2030 0.0 0.0 +es 07_gas 2 67 2030 0.0 0.0 +es 08_non-res 2 67 2030 0.0 0.0 +es 09_hydro_pump 2 67 2030 0.0 0.0 +es 01_solar 2 68 2030 1.0 0.0 +es 02_wind_on 2 68 2030 1.0 0.0 +es 03_wind_off 2 68 2030 1.0 0.0 +es 04_res 2 68 2030 1.0 0.0 +es 05_nuclear 2 68 2030 0.0 0.0 +es 06_coal 2 68 2030 0.0 0.0 +es 07_gas 2 68 2030 0.0 0.0 +es 08_non-res 2 68 2030 0.0 0.0 +es 09_hydro_pump 2 68 2030 0.0 0.0 +es 01_solar 2 69 2030 1.0 0.0 +es 02_wind_on 2 69 2030 1.0 0.0 +es 03_wind_off 2 69 2030 1.0 0.0 +es 04_res 2 69 2030 1.0 0.0 +es 05_nuclear 2 69 2030 0.0 0.0 +es 06_coal 2 69 2030 0.0 0.0 +es 07_gas 2 69 2030 0.0 0.0 +es 08_non-res 2 69 2030 0.0 0.0 +es 09_hydro_pump 2 69 2030 0.0 0.0 +es 01_solar 2 70 2030 1.0 0.0 +es 02_wind_on 2 70 2030 1.0 0.0 +es 03_wind_off 2 70 2030 1.0 0.0 +es 04_res 2 70 2030 1.0 0.0 +es 05_nuclear 2 70 2030 0.0 0.0 +es 06_coal 2 70 2030 0.0 0.0 +es 07_gas 2 70 2030 0.0 0.0 +es 08_non-res 2 70 2030 0.0 0.0 +es 09_hydro_pump 2 70 2030 0.0 0.0 +es 01_solar 2 71 2030 1.0 0.0 +es 02_wind_on 2 71 2030 1.0 0.0 +es 03_wind_off 2 71 2030 1.0 0.0 +es 04_res 2 71 2030 1.0 0.0 +es 05_nuclear 2 71 2030 0.0 0.0 +es 06_coal 2 71 2030 0.0 0.0 +es 07_gas 2 71 2030 0.0 0.0 +es 08_non-res 2 71 2030 0.0 0.0 +es 09_hydro_pump 2 71 2030 0.0 0.0 +es 01_solar 2 72 2030 1.0 0.0 +es 02_wind_on 2 72 2030 1.0 0.0 +es 03_wind_off 2 72 2030 1.0 0.0 +es 04_res 2 72 2030 1.0 0.0 +es 05_nuclear 2 72 2030 0.0 0.0 +es 06_coal 2 72 2030 0.0 0.0 +es 07_gas 2 72 2030 0.0 0.0 +es 08_non-res 2 72 2030 0.0 0.0 +es 09_hydro_pump 2 72 2030 0.0 0.0 +es 01_solar 2 73 2030 1.0 0.0 +es 02_wind_on 2 73 2030 1.0 0.0 +es 03_wind_off 2 73 2030 1.0 0.0 +es 04_res 2 73 2030 1.0 0.0 +es 05_nuclear 2 73 2030 0.0 0.0 +es 06_coal 2 73 2030 0.0 0.0 +es 07_gas 2 73 2030 0.0 0.0 +es 08_non-res 2 73 2030 0.0 0.0 +es 09_hydro_pump 2 73 2030 0.0 0.0 +es 01_solar 2 74 2030 1.0 0.0 +es 02_wind_on 2 74 2030 1.0 0.0 +es 03_wind_off 2 74 2030 1.0 0.0 +es 04_res 2 74 2030 1.0 0.0 +es 05_nuclear 2 74 2030 0.0 0.0 +es 06_coal 2 74 2030 0.0 0.0 +es 07_gas 2 74 2030 0.0 0.0 +es 08_non-res 2 74 2030 0.0 0.0 +es 09_hydro_pump 2 74 2030 0.0 0.0 +es 01_solar 2 75 2030 1.0 0.0 +es 02_wind_on 2 75 2030 1.0 0.0 +es 03_wind_off 2 75 2030 1.0 0.0 +es 04_res 2 75 2030 1.0 0.0 +es 05_nuclear 2 75 2030 0.0 0.0 +es 06_coal 2 75 2030 0.0 0.0 +es 07_gas 2 75 2030 0.0 0.0 +es 08_non-res 2 75 2030 0.0 0.0 +es 09_hydro_pump 2 75 2030 0.0 0.0 +es 01_solar 2 76 2030 1.0 0.0 +es 02_wind_on 2 76 2030 1.0 0.0 +es 03_wind_off 2 76 2030 1.0 0.0 +es 04_res 2 76 2030 1.0 0.0 +es 05_nuclear 2 76 2030 0.0 0.0 +es 06_coal 2 76 2030 0.0 0.0 +es 07_gas 2 76 2030 0.0 0.0 +es 08_non-res 2 76 2030 0.0 0.0 +es 09_hydro_pump 2 76 2030 0.0 0.0 +es 01_solar 2 77 2030 1.0 0.0 +es 02_wind_on 2 77 2030 1.0 0.0 +es 03_wind_off 2 77 2030 1.0 0.0 +es 04_res 2 77 2030 1.0 0.0 +es 05_nuclear 2 77 2030 0.0 0.0 +es 06_coal 2 77 2030 0.0 0.0 +es 07_gas 2 77 2030 0.0 0.0 +es 08_non-res 2 77 2030 0.0 0.0 +es 09_hydro_pump 2 77 2030 0.0 0.0 +es 01_solar 2 78 2030 1.0 0.0 +es 02_wind_on 2 78 2030 1.0 0.0 +es 03_wind_off 2 78 2030 1.0 0.0 +es 04_res 2 78 2030 1.0 0.0 +es 05_nuclear 2 78 2030 0.0 0.0 +es 06_coal 2 78 2030 0.0 0.0 +es 07_gas 2 78 2030 0.0 0.0 +es 08_non-res 2 78 2030 0.0 0.0 +es 09_hydro_pump 2 78 2030 0.0 0.0 +es 01_solar 2 79 2030 1.0 0.0 +es 02_wind_on 2 79 2030 1.0 0.0 +es 03_wind_off 2 79 2030 1.0 0.0 +es 04_res 2 79 2030 1.0 0.0 +es 05_nuclear 2 79 2030 0.0 0.0 +es 06_coal 2 79 2030 0.0 0.0 +es 07_gas 2 79 2030 0.0 0.0 +es 08_non-res 2 79 2030 0.0 0.0 +es 09_hydro_pump 2 79 2030 0.0 0.0 +es 01_solar 2 80 2030 1.0 0.0 +es 02_wind_on 2 80 2030 1.0 0.0 +es 03_wind_off 2 80 2030 1.0 0.0 +es 04_res 2 80 2030 1.0 0.0 +es 05_nuclear 2 80 2030 0.0 0.0 +es 06_coal 2 80 2030 0.0 0.0 +es 07_gas 2 80 2030 0.0 0.0 +es 08_non-res 2 80 2030 0.0 0.0 +es 09_hydro_pump 2 80 2030 0.0 0.0 +es 01_solar 2 81 2030 1.0 0.0 +es 02_wind_on 2 81 2030 1.0 0.0 +es 03_wind_off 2 81 2030 1.0 0.0 +es 04_res 2 81 2030 1.0 0.0 +es 05_nuclear 2 81 2030 0.0 0.0 +es 06_coal 2 81 2030 0.0 0.0 +es 07_gas 2 81 2030 0.0 0.0 +es 08_non-res 2 81 2030 0.0 0.0 +es 09_hydro_pump 2 81 2030 0.0 0.0 +es 01_solar 2 82 2030 1.0 0.0 +es 02_wind_on 2 82 2030 1.0 0.0 +es 03_wind_off 2 82 2030 1.0 0.0 +es 04_res 2 82 2030 1.0 0.0 +es 05_nuclear 2 82 2030 1.0 0.0 +es 06_coal 2 82 2030 0.0 0.0 +es 07_gas 2 82 2030 0.0 0.0 +es 08_non-res 2 82 2030 0.0 0.0 +es 09_hydro_pump 2 82 2030 0.0 0.0 +es 01_solar 2 83 2030 1.0 0.0 +es 02_wind_on 2 83 2030 1.0 0.0 +es 03_wind_off 2 83 2030 1.0 0.0 +es 04_res 2 83 2030 1.0 0.0 +es 05_nuclear 2 83 2030 1.0 0.0 +es 06_coal 2 83 2030 0.0 0.0 +es 07_gas 2 83 2030 0.0 0.0 +es 08_non-res 2 83 2030 0.0 0.0 +es 09_hydro_pump 2 83 2030 0.0 0.0 +es 01_solar 2 84 2030 1.0 0.0 +es 02_wind_on 2 84 2030 1.0 0.0 +es 03_wind_off 2 84 2030 1.0 0.0 +es 04_res 2 84 2030 1.0 0.0 +es 05_nuclear 2 84 2030 1.0 0.0 +es 06_coal 2 84 2030 0.0 0.0 +es 07_gas 2 84 2030 0.0 0.0 +es 08_non-res 2 84 2030 0.0 0.0 +es 09_hydro_pump 2 84 2030 0.0 0.0 +es 01_solar 2 85 2030 1.0 0.0 +es 02_wind_on 2 85 2030 1.0 0.0 +es 03_wind_off 2 85 2030 1.0 0.0 +es 04_res 2 85 2030 1.0 0.0 +es 05_nuclear 2 85 2030 1.0 0.0 +es 06_coal 2 85 2030 0.0 0.0 +es 07_gas 2 85 2030 0.0 0.0 +es 08_non-res 2 85 2030 0.0 0.0 +es 09_hydro_pump 2 85 2030 0.0 0.0 +es 01_solar 2 86 2030 1.0 0.0 +es 02_wind_on 2 86 2030 1.0 0.0 +es 03_wind_off 2 86 2030 1.0 0.0 +es 04_res 2 86 2030 1.0 0.0 +es 05_nuclear 2 86 2030 1.0 0.0 +es 06_coal 2 86 2030 0.0 0.0 +es 07_gas 2 86 2030 0.0 0.0 +es 08_non-res 2 86 2030 0.0 0.0 +es 09_hydro_pump 2 86 2030 0.0 0.0 +es 01_solar 2 87 2030 1.0 0.0 +es 02_wind_on 2 87 2030 1.0 0.0 +es 03_wind_off 2 87 2030 1.0 0.0 +es 04_res 2 87 2030 1.0 0.0 +es 05_nuclear 2 87 2030 1.0 0.0 +es 06_coal 2 87 2030 0.0 0.0 +es 07_gas 2 87 2030 0.0 0.0 +es 08_non-res 2 87 2030 0.0 0.0 +es 09_hydro_pump 2 87 2030 0.0 0.0 +es 01_solar 2 88 2030 1.0 0.0 +es 02_wind_on 2 88 2030 1.0 0.0 +es 03_wind_off 2 88 2030 1.0 0.0 +es 04_res 2 88 2030 1.0 0.0 +es 05_nuclear 2 88 2030 1.0 0.0 +es 06_coal 2 88 2030 0.0 0.0 +es 07_gas 2 88 2030 0.0 0.0 +es 08_non-res 2 88 2030 0.0 0.0 +es 09_hydro_pump 2 88 2030 0.0 0.0 +es 01_solar 2 89 2030 1.0 0.0 +es 02_wind_on 2 89 2030 1.0 0.0 +es 03_wind_off 2 89 2030 1.0 0.0 +es 04_res 2 89 2030 1.0 0.0 +es 05_nuclear 2 89 2030 1.0 0.0 +es 06_coal 2 89 2030 0.0 0.0 +es 07_gas 2 89 2030 0.0 0.0 +es 08_non-res 2 89 2030 0.0 0.0 +es 09_hydro_pump 2 89 2030 0.0 0.0 +es 01_solar 2 90 2030 1.0 0.0 +es 02_wind_on 2 90 2030 1.0 0.0 +es 03_wind_off 2 90 2030 1.0 0.0 +es 04_res 2 90 2030 1.0 0.0 +es 05_nuclear 2 90 2030 1.0 0.0 +es 06_coal 2 90 2030 0.0 0.0 +es 07_gas 2 90 2030 0.0 0.0 +es 08_non-res 2 90 2030 0.0 0.0 +es 09_hydro_pump 2 90 2030 0.0 0.0 +es 01_solar 2 91 2030 1.0 0.0 +es 02_wind_on 2 91 2030 1.0 0.0 +es 03_wind_off 2 91 2030 1.0 0.0 +es 04_res 2 91 2030 1.0 0.0 +es 05_nuclear 2 91 2030 1.0 0.0 +es 06_coal 2 91 2030 0.0 0.0 +es 07_gas 2 91 2030 0.0 0.0 +es 08_non-res 2 91 2030 0.0 0.0 +es 09_hydro_pump 2 91 2030 0.0 0.0 +es 01_solar 2 92 2030 1.0 0.0 +es 02_wind_on 2 92 2030 1.0 0.0 +es 03_wind_off 2 92 2030 1.0 0.0 +es 04_res 2 92 2030 1.0 0.0 +es 05_nuclear 2 92 2030 1.0 0.0 +es 06_coal 2 92 2030 0.0 0.0 +es 07_gas 2 92 2030 0.0 0.0 +es 08_non-res 2 92 2030 0.0 0.0 +es 09_hydro_pump 2 92 2030 0.0 0.0 +es 01_solar 2 93 2030 1.0 0.0 +es 02_wind_on 2 93 2030 1.0 0.0 +es 03_wind_off 2 93 2030 1.0 0.0 +es 04_res 2 93 2030 1.0 0.0 +es 05_nuclear 2 93 2030 1.0 0.0 +es 06_coal 2 93 2030 0.0 0.0 +es 07_gas 2 93 2030 0.0 0.0 +es 08_non-res 2 93 2030 0.0 0.0 +es 09_hydro_pump 2 93 2030 0.0 0.0 +es 01_solar 2 94 2030 1.0 0.0 +es 02_wind_on 2 94 2030 1.0 0.0 +es 03_wind_off 2 94 2030 1.0 0.0 +es 04_res 2 94 2030 1.0 0.0 +es 05_nuclear 2 94 2030 1.0 0.0 +es 06_coal 2 94 2030 0.0 0.0 +es 07_gas 2 94 2030 0.0 0.0 +es 08_non-res 2 94 2030 0.0 0.0 +es 09_hydro_pump 2 94 2030 0.0 0.0 +es 01_solar 2 95 2030 1.0 0.0 +es 02_wind_on 2 95 2030 1.0 0.0 +es 03_wind_off 2 95 2030 1.0 0.0 +es 04_res 2 95 2030 1.0 0.0 +es 05_nuclear 2 95 2030 1.0 0.0 +es 06_coal 2 95 2030 0.0 0.0 +es 07_gas 2 95 2030 0.0 0.0 +es 08_non-res 2 95 2030 0.0 0.0 +es 09_hydro_pump 2 95 2030 0.0 0.0 +es 01_solar 2 96 2030 1.0 0.0 +es 02_wind_on 2 96 2030 1.0 0.0 +es 03_wind_off 2 96 2030 1.0 0.0 +es 04_res 2 96 2030 1.0 0.0 +es 05_nuclear 2 96 2030 1.0 0.0 +es 06_coal 2 96 2030 0.0 0.0 +es 07_gas 2 96 2030 0.0 0.0 +es 08_non-res 2 96 2030 0.0 0.0 +es 09_hydro_pump 2 96 2030 0.0 0.0 +es 01_solar 2 97 2030 1.0 0.0 +es 02_wind_on 2 97 2030 1.0 0.0 +es 03_wind_off 2 97 2030 1.0 0.0 +es 04_res 2 97 2030 1.0 0.0 +es 05_nuclear 2 97 2030 1.0 0.0 +es 06_coal 2 97 2030 0.0 0.0 +es 07_gas 2 97 2030 0.0 0.0 +es 08_non-res 2 97 2030 0.0 0.0 +es 09_hydro_pump 2 97 2030 0.0 0.0 +es 01_solar 2 98 2030 1.0 0.0 +es 02_wind_on 2 98 2030 1.0 0.0 +es 03_wind_off 2 98 2030 1.0 0.0 +es 04_res 2 98 2030 1.0 0.0 +es 05_nuclear 2 98 2030 1.0 0.0 +es 06_coal 2 98 2030 0.0 0.0 +es 07_gas 2 98 2030 0.0 0.0 +es 08_non-res 2 98 2030 0.0 0.0 +es 09_hydro_pump 2 98 2030 0.0 0.0 +es 01_solar 2 99 2030 1.0 0.0 +es 02_wind_on 2 99 2030 1.0 0.0 +es 03_wind_off 2 99 2030 1.0 0.0 +es 04_res 2 99 2030 1.0 0.0 +es 05_nuclear 2 99 2030 1.0 0.0 +es 06_coal 2 99 2030 0.0 0.0 +es 07_gas 2 99 2030 0.0 0.0 +es 08_non-res 2 99 2030 0.0 0.0 +es 09_hydro_pump 2 99 2030 0.0 0.0 +es 01_solar 2 100 2030 1.0 0.0 +es 02_wind_on 2 100 2030 1.0 0.0 +es 03_wind_off 2 100 2030 1.0 0.0 +es 04_res 2 100 2030 1.0 0.0 +es 05_nuclear 2 100 2030 1.0 0.0 +es 06_coal 2 100 2030 0.0 0.0 +es 07_gas 2 100 2030 0.0 0.0 +es 08_non-res 2 100 2030 0.0 0.0 +es 09_hydro_pump 2 100 2030 0.0 0.0 +es 01_solar 2 101 2030 1.0 0.0 +es 02_wind_on 2 101 2030 1.0 0.0 +es 03_wind_off 2 101 2030 1.0 0.0 +es 04_res 2 101 2030 1.0 0.0 +es 05_nuclear 2 101 2030 1.0 0.0 +es 06_coal 2 101 2030 0.0 0.0 +es 07_gas 2 101 2030 0.0 0.0 +es 08_non-res 2 101 2030 0.0 0.0 +es 09_hydro_pump 2 101 2030 0.0 0.0 +es 01_solar 2 102 2030 1.0 0.0 +es 02_wind_on 2 102 2030 1.0 0.0 +es 03_wind_off 2 102 2030 1.0 0.0 +es 04_res 2 102 2030 1.0 0.0 +es 05_nuclear 2 102 2030 1.0 0.0 +es 06_coal 2 102 2030 1.0 0.0 +es 07_gas 2 102 2030 0.0 0.0 +es 08_non-res 2 102 2030 0.0 0.0 +es 09_hydro_pump 2 102 2030 0.0 0.0 +es 01_solar 2 103 2030 1.0 0.0 +es 02_wind_on 2 103 2030 1.0 0.0 +es 03_wind_off 2 103 2030 1.0 0.0 +es 04_res 2 103 2030 1.0 0.0 +es 05_nuclear 2 103 2030 1.0 0.0 +es 06_coal 2 103 2030 1.0 0.0 +es 07_gas 2 103 2030 0.0 0.0 +es 08_non-res 2 103 2030 0.0 0.0 +es 09_hydro_pump 2 103 2030 0.0 0.0 +es 01_solar 2 104 2030 1.0 0.0 +es 02_wind_on 2 104 2030 1.0 0.0 +es 03_wind_off 2 104 2030 1.0 0.0 +es 04_res 2 104 2030 1.0 0.0 +es 05_nuclear 2 104 2030 1.0 0.0 +es 06_coal 2 104 2030 1.0 0.0 +es 07_gas 2 104 2030 0.0 0.0 +es 08_non-res 2 104 2030 0.0 0.0 +es 09_hydro_pump 2 104 2030 0.0 0.0 +es 01_solar 2 105 2030 1.0 0.0 +es 02_wind_on 2 105 2030 1.0 0.0 +es 03_wind_off 2 105 2030 1.0 0.0 +es 04_res 2 105 2030 1.0 0.0 +es 05_nuclear 2 105 2030 1.0 0.0 +es 06_coal 2 105 2030 1.0 0.0 +es 07_gas 2 105 2030 0.0 0.0 +es 08_non-res 2 105 2030 0.0 0.0 +es 09_hydro_pump 2 105 2030 0.0 0.0 +es 01_solar 2 106 2030 1.0 0.0 +es 02_wind_on 2 106 2030 1.0 0.0 +es 03_wind_off 2 106 2030 1.0 0.0 +es 04_res 2 106 2030 1.0 0.0 +es 05_nuclear 2 106 2030 1.0 0.0 +es 06_coal 2 106 2030 1.0 0.0 +es 07_gas 2 106 2030 0.0 0.0 +es 08_non-res 2 106 2030 0.0 0.0 +es 09_hydro_pump 2 106 2030 0.0 0.0 +es 01_solar 2 107 2030 1.0 0.0 +es 02_wind_on 2 107 2030 1.0 0.0 +es 03_wind_off 2 107 2030 1.0 0.0 +es 04_res 2 107 2030 1.0 0.0 +es 05_nuclear 2 107 2030 1.0 0.0 +es 06_coal 2 107 2030 1.0 0.0 +es 07_gas 2 107 2030 0.0 0.0 +es 08_non-res 2 107 2030 0.0 0.0 +es 09_hydro_pump 2 107 2030 0.0 0.0 +es 01_solar 2 108 2030 1.0 0.0 +es 02_wind_on 2 108 2030 1.0 0.0 +es 03_wind_off 2 108 2030 1.0 0.0 +es 04_res 2 108 2030 1.0 0.0 +es 05_nuclear 2 108 2030 1.0 0.0 +es 06_coal 2 108 2030 1.0 0.0 +es 07_gas 2 108 2030 0.0 0.0 +es 08_non-res 2 108 2030 0.0 0.0 +es 09_hydro_pump 2 108 2030 0.0 0.0 +es 01_solar 2 109 2030 1.0 0.0 +es 02_wind_on 2 109 2030 1.0 0.0 +es 03_wind_off 2 109 2030 1.0 0.0 +es 04_res 2 109 2030 1.0 0.0 +es 05_nuclear 2 109 2030 1.0 0.0 +es 06_coal 2 109 2030 1.0 0.0 +es 07_gas 2 109 2030 0.0 0.0 +es 08_non-res 2 109 2030 0.0 0.0 +es 09_hydro_pump 2 109 2030 0.0 0.0 +es 01_solar 2 110 2030 1.0 0.0 +es 02_wind_on 2 110 2030 1.0 0.0 +es 03_wind_off 2 110 2030 1.0 0.0 +es 04_res 2 110 2030 1.0 0.0 +es 05_nuclear 2 110 2030 1.0 0.0 +es 06_coal 2 110 2030 1.0 0.0 +es 07_gas 2 110 2030 0.0 0.0 +es 08_non-res 2 110 2030 0.0 0.0 +es 09_hydro_pump 2 110 2030 0.0 0.0 +es 01_solar 2 111 2030 1.0 0.0 +es 02_wind_on 2 111 2030 1.0 0.0 +es 03_wind_off 2 111 2030 1.0 0.0 +es 04_res 2 111 2030 1.0 0.0 +es 05_nuclear 2 111 2030 1.0 0.0 +es 06_coal 2 111 2030 1.0 0.0 +es 07_gas 2 111 2030 0.0 0.0 +es 08_non-res 2 111 2030 0.0 0.0 +es 09_hydro_pump 2 111 2030 0.0 0.0 +es 01_solar 2 112 2030 1.0 0.0 +es 02_wind_on 2 112 2030 1.0 0.0 +es 03_wind_off 2 112 2030 1.0 0.0 +es 04_res 2 112 2030 1.0 0.0 +es 05_nuclear 2 112 2030 1.0 0.0 +es 06_coal 2 112 2030 1.0 0.0 +es 07_gas 2 112 2030 0.0 0.0 +es 08_non-res 2 112 2030 0.0 0.0 +es 09_hydro_pump 2 112 2030 0.0 0.0 +es 01_solar 2 113 2030 1.0 0.0 +es 02_wind_on 2 113 2030 1.0 0.0 +es 03_wind_off 2 113 2030 1.0 0.0 +es 04_res 2 113 2030 1.0 0.0 +es 05_nuclear 2 113 2030 1.0 0.0 +es 06_coal 2 113 2030 1.0 0.0 +es 07_gas 2 113 2030 0.0 0.0 +es 08_non-res 2 113 2030 0.0 0.0 +es 09_hydro_pump 2 113 2030 0.0 0.0 +es 01_solar 2 114 2030 1.0 0.0 +es 02_wind_on 2 114 2030 1.0 0.0 +es 03_wind_off 2 114 2030 1.0 0.0 +es 04_res 2 114 2030 1.0 0.0 +es 05_nuclear 2 114 2030 1.0 0.0 +es 06_coal 2 114 2030 1.0 0.0 +es 07_gas 2 114 2030 0.0 0.0 +es 08_non-res 2 114 2030 0.0 0.0 +es 09_hydro_pump 2 114 2030 0.0 0.0 +es 01_solar 2 115 2030 1.0 0.0 +es 02_wind_on 2 115 2030 1.0 0.0 +es 03_wind_off 2 115 2030 1.0 0.0 +es 04_res 2 115 2030 1.0 0.0 +es 05_nuclear 2 115 2030 1.0 0.0 +es 06_coal 2 115 2030 1.0 0.0 +es 07_gas 2 115 2030 0.0 0.0 +es 08_non-res 2 115 2030 0.0 0.0 +es 09_hydro_pump 2 115 2030 0.0 0.0 +es 01_solar 2 116 2030 1.0 0.0 +es 02_wind_on 2 116 2030 1.0 0.0 +es 03_wind_off 2 116 2030 1.0 0.0 +es 04_res 2 116 2030 1.0 0.0 +es 05_nuclear 2 116 2030 1.0 0.0 +es 06_coal 2 116 2030 1.0 0.0 +es 07_gas 2 116 2030 0.0 0.0 +es 08_non-res 2 116 2030 0.0 0.0 +es 09_hydro_pump 2 116 2030 0.0 0.0 +es 01_solar 2 117 2030 1.0 0.0 +es 02_wind_on 2 117 2030 1.0 0.0 +es 03_wind_off 2 117 2030 1.0 0.0 +es 04_res 2 117 2030 1.0 0.0 +es 05_nuclear 2 117 2030 1.0 0.0 +es 06_coal 2 117 2030 1.0 0.0 +es 07_gas 2 117 2030 0.0 0.0 +es 08_non-res 2 117 2030 0.0 0.0 +es 09_hydro_pump 2 117 2030 0.0 0.0 +es 01_solar 2 118 2030 1.0 0.0 +es 02_wind_on 2 118 2030 1.0 0.0 +es 03_wind_off 2 118 2030 1.0 0.0 +es 04_res 2 118 2030 1.0 0.0 +es 05_nuclear 2 118 2030 1.0 0.0 +es 06_coal 2 118 2030 1.0 0.0 +es 07_gas 2 118 2030 0.0 0.0 +es 08_non-res 2 118 2030 0.0 0.0 +es 09_hydro_pump 2 118 2030 0.0 0.0 +es 01_solar 2 119 2030 1.0 0.0 +es 02_wind_on 2 119 2030 1.0 0.0 +es 03_wind_off 2 119 2030 1.0 0.0 +es 04_res 2 119 2030 1.0 0.0 +es 05_nuclear 2 119 2030 1.0 0.0 +es 06_coal 2 119 2030 1.0 0.0 +es 07_gas 2 119 2030 0.0 0.0 +es 08_non-res 2 119 2030 0.0 0.0 +es 09_hydro_pump 2 119 2030 0.0 0.0 +es 01_solar 2 120 2030 1.0 0.0 +es 02_wind_on 2 120 2030 1.0 0.0 +es 03_wind_off 2 120 2030 1.0 0.0 +es 04_res 2 120 2030 1.0 0.0 +es 05_nuclear 2 120 2030 1.0 0.0 +es 06_coal 2 120 2030 1.0 0.0 +es 07_gas 2 120 2030 0.0 0.0 +es 08_non-res 2 120 2030 0.0 0.0 +es 09_hydro_pump 2 120 2030 0.0 0.0 +es 01_solar 2 121 2030 1.0 0.0 +es 02_wind_on 2 121 2030 1.0 0.0 +es 03_wind_off 2 121 2030 1.0 0.0 +es 04_res 2 121 2030 1.0 0.0 +es 05_nuclear 2 121 2030 1.0 0.0 +es 06_coal 2 121 2030 1.0 0.0 +es 07_gas 2 121 2030 0.0 0.0 +es 08_non-res 2 121 2030 0.0 0.0 +es 09_hydro_pump 2 121 2030 0.0 0.0 +es 01_solar 2 122 2030 1.0 0.0 +es 02_wind_on 2 122 2030 1.0 0.0 +es 03_wind_off 2 122 2030 1.0 0.0 +es 04_res 2 122 2030 1.0 0.0 +es 05_nuclear 2 122 2030 1.0 0.0 +es 06_coal 2 122 2030 1.0 0.0 +es 07_gas 2 122 2030 1.0 0.0 +es 08_non-res 2 122 2030 0.0 0.0 +es 09_hydro_pump 2 122 2030 0.0 0.0 +es 01_solar 2 123 2030 1.0 0.0 +es 02_wind_on 2 123 2030 1.0 0.0 +es 03_wind_off 2 123 2030 1.0 0.0 +es 04_res 2 123 2030 1.0 0.0 +es 05_nuclear 2 123 2030 1.0 0.0 +es 06_coal 2 123 2030 1.0 0.0 +es 07_gas 2 123 2030 1.0 0.0 +es 08_non-res 2 123 2030 0.0 0.0 +es 09_hydro_pump 2 123 2030 0.0 0.0 +es 01_solar 2 124 2030 1.0 0.0 +es 02_wind_on 2 124 2030 1.0 0.0 +es 03_wind_off 2 124 2030 1.0 0.0 +es 04_res 2 124 2030 1.0 0.0 +es 05_nuclear 2 124 2030 1.0 0.0 +es 06_coal 2 124 2030 1.0 0.0 +es 07_gas 2 124 2030 1.0 0.0 +es 08_non-res 2 124 2030 0.0 0.0 +es 09_hydro_pump 2 124 2030 0.0 0.0 +es 01_solar 2 125 2030 1.0 0.0 +es 02_wind_on 2 125 2030 1.0 0.0 +es 03_wind_off 2 125 2030 1.0 0.0 +es 04_res 2 125 2030 1.0 0.0 +es 05_nuclear 2 125 2030 1.0 0.0 +es 06_coal 2 125 2030 1.0 0.0 +es 07_gas 2 125 2030 1.0 0.0 +es 08_non-res 2 125 2030 0.0 0.0 +es 09_hydro_pump 2 125 2030 0.0 0.0 +es 01_solar 2 126 2030 1.0 0.0 +es 02_wind_on 2 126 2030 1.0 0.0 +es 03_wind_off 2 126 2030 1.0 0.0 +es 04_res 2 126 2030 1.0 0.0 +es 05_nuclear 2 126 2030 1.0 0.0 +es 06_coal 2 126 2030 1.0 0.0 +es 07_gas 2 126 2030 1.0 0.0 +es 08_non-res 2 126 2030 0.0 0.0 +es 09_hydro_pump 2 126 2030 0.0 0.0 +es 01_solar 2 127 2030 1.0 0.0 +es 02_wind_on 2 127 2030 1.0 0.0 +es 03_wind_off 2 127 2030 1.0 0.0 +es 04_res 2 127 2030 1.0 0.0 +es 05_nuclear 2 127 2030 1.0 0.0 +es 06_coal 2 127 2030 1.0 0.0 +es 07_gas 2 127 2030 1.0 0.0 +es 08_non-res 2 127 2030 0.0 0.0 +es 09_hydro_pump 2 127 2030 0.0 0.0 +es 01_solar 2 128 2030 1.0 0.0 +es 02_wind_on 2 128 2030 1.0 0.0 +es 03_wind_off 2 128 2030 1.0 0.0 +es 04_res 2 128 2030 1.0 0.0 +es 05_nuclear 2 128 2030 1.0 0.0 +es 06_coal 2 128 2030 1.0 0.0 +es 07_gas 2 128 2030 1.0 0.0 +es 08_non-res 2 128 2030 0.0 0.0 +es 09_hydro_pump 2 128 2030 0.0 0.0 +es 01_solar 2 129 2030 1.0 0.0 +es 02_wind_on 2 129 2030 1.0 0.0 +es 03_wind_off 2 129 2030 1.0 0.0 +es 04_res 2 129 2030 1.0 0.0 +es 05_nuclear 2 129 2030 1.0 0.0 +es 06_coal 2 129 2030 1.0 0.0 +es 07_gas 2 129 2030 1.0 0.0 +es 08_non-res 2 129 2030 0.0 0.0 +es 09_hydro_pump 2 129 2030 0.0 0.0 +es 01_solar 2 130 2030 1.0 0.0 +es 02_wind_on 2 130 2030 1.0 0.0 +es 03_wind_off 2 130 2030 1.0 0.0 +es 04_res 2 130 2030 1.0 0.0 +es 05_nuclear 2 130 2030 1.0 0.0 +es 06_coal 2 130 2030 1.0 0.0 +es 07_gas 2 130 2030 1.0 0.0 +es 08_non-res 2 130 2030 0.0 0.0 +es 09_hydro_pump 2 130 2030 0.0 0.0 +es 01_solar 2 131 2030 1.0 0.0 +es 02_wind_on 2 131 2030 1.0 0.0 +es 03_wind_off 2 131 2030 1.0 0.0 +es 04_res 2 131 2030 1.0 0.0 +es 05_nuclear 2 131 2030 1.0 0.0 +es 06_coal 2 131 2030 1.0 0.0 +es 07_gas 2 131 2030 1.0 0.0 +es 08_non-res 2 131 2030 0.0 0.0 +es 09_hydro_pump 2 131 2030 0.0 0.0 +es 01_solar 2 132 2030 1.0 0.0 +es 02_wind_on 2 132 2030 1.0 0.0 +es 03_wind_off 2 132 2030 1.0 0.0 +es 04_res 2 132 2030 1.0 0.0 +es 05_nuclear 2 132 2030 1.0 0.0 +es 06_coal 2 132 2030 1.0 0.0 +es 07_gas 2 132 2030 1.0 0.0 +es 08_non-res 2 132 2030 0.0 0.0 +es 09_hydro_pump 2 132 2030 0.0 0.0 +es 01_solar 2 133 2030 1.0 0.0 +es 02_wind_on 2 133 2030 1.0 0.0 +es 03_wind_off 2 133 2030 1.0 0.0 +es 04_res 2 133 2030 1.0 0.0 +es 05_nuclear 2 133 2030 1.0 0.0 +es 06_coal 2 133 2030 1.0 0.0 +es 07_gas 2 133 2030 1.0 0.0 +es 08_non-res 2 133 2030 0.0 0.0 +es 09_hydro_pump 2 133 2030 0.0 0.0 +es 01_solar 2 134 2030 1.0 0.0 +es 02_wind_on 2 134 2030 1.0 0.0 +es 03_wind_off 2 134 2030 1.0 0.0 +es 04_res 2 134 2030 1.0 0.0 +es 05_nuclear 2 134 2030 1.0 0.0 +es 06_coal 2 134 2030 1.0 0.0 +es 07_gas 2 134 2030 1.0 0.0 +es 08_non-res 2 134 2030 0.0 0.0 +es 09_hydro_pump 2 134 2030 0.0 0.0 +es 01_solar 2 135 2030 1.0 0.0 +es 02_wind_on 2 135 2030 1.0 0.0 +es 03_wind_off 2 135 2030 1.0 0.0 +es 04_res 2 135 2030 1.0 0.0 +es 05_nuclear 2 135 2030 1.0 0.0 +es 06_coal 2 135 2030 1.0 0.0 +es 07_gas 2 135 2030 1.0 0.0 +es 08_non-res 2 135 2030 0.0 0.0 +es 09_hydro_pump 2 135 2030 0.0 0.0 +es 01_solar 2 136 2030 1.0 0.0 +es 02_wind_on 2 136 2030 1.0 0.0 +es 03_wind_off 2 136 2030 1.0 0.0 +es 04_res 2 136 2030 1.0 0.0 +es 05_nuclear 2 136 2030 1.0 0.0 +es 06_coal 2 136 2030 1.0 0.0 +es 07_gas 2 136 2030 1.0 0.0 +es 08_non-res 2 136 2030 0.0 0.0 +es 09_hydro_pump 2 136 2030 0.0 0.0 +es 01_solar 2 137 2030 1.0 0.0 +es 02_wind_on 2 137 2030 1.0 0.0 +es 03_wind_off 2 137 2030 1.0 0.0 +es 04_res 2 137 2030 1.0 0.0 +es 05_nuclear 2 137 2030 1.0 0.0 +es 06_coal 2 137 2030 1.0 0.0 +es 07_gas 2 137 2030 1.0 0.0 +es 08_non-res 2 137 2030 0.0 0.0 +es 09_hydro_pump 2 137 2030 0.0 0.0 +es 01_solar 2 138 2030 1.0 0.0 +es 02_wind_on 2 138 2030 1.0 0.0 +es 03_wind_off 2 138 2030 1.0 0.0 +es 04_res 2 138 2030 1.0 0.0 +es 05_nuclear 2 138 2030 1.0 0.0 +es 06_coal 2 138 2030 1.0 0.0 +es 07_gas 2 138 2030 1.0 0.0 +es 08_non-res 2 138 2030 0.0 0.0 +es 09_hydro_pump 2 138 2030 0.0 0.0 +es 01_solar 2 139 2030 1.0 0.0 +es 02_wind_on 2 139 2030 1.0 0.0 +es 03_wind_off 2 139 2030 1.0 0.0 +es 04_res 2 139 2030 1.0 0.0 +es 05_nuclear 2 139 2030 1.0 0.0 +es 06_coal 2 139 2030 1.0 0.0 +es 07_gas 2 139 2030 1.0 0.0 +es 08_non-res 2 139 2030 0.0 0.0 +es 09_hydro_pump 2 139 2030 0.0 0.0 +es 01_solar 2 140 2030 1.0 0.0 +es 02_wind_on 2 140 2030 1.0 0.0 +es 03_wind_off 2 140 2030 1.0 0.0 +es 04_res 2 140 2030 1.0 0.0 +es 05_nuclear 2 140 2030 1.0 0.0 +es 06_coal 2 140 2030 1.0 0.0 +es 07_gas 2 140 2030 1.0 0.0 +es 08_non-res 2 140 2030 0.0 0.0 +es 09_hydro_pump 2 140 2030 0.0 0.0 +es 01_solar 2 141 2030 1.0 0.0 +es 02_wind_on 2 141 2030 1.0 0.0 +es 03_wind_off 2 141 2030 1.0 0.0 +es 04_res 2 141 2030 1.0 0.0 +es 05_nuclear 2 141 2030 1.0 0.0 +es 06_coal 2 141 2030 1.0 0.0 +es 07_gas 2 141 2030 1.0 0.0 +es 08_non-res 2 141 2030 0.0 0.0 +es 09_hydro_pump 2 141 2030 0.0 0.0 +es 01_solar 2 142 2030 1.0 0.0 +es 02_wind_on 2 142 2030 1.0 0.0 +es 03_wind_off 2 142 2030 1.0 0.0 +es 04_res 2 142 2030 1.0 0.0 +es 05_nuclear 2 142 2030 1.0 0.0 +es 06_coal 2 142 2030 1.0 0.0 +es 07_gas 2 142 2030 1.0 0.0 +es 08_non-res 2 142 2030 1.0 0.0 +es 09_hydro_pump 2 142 2030 0.0 0.0 +es 01_solar 2 143 2030 1.0 0.0 +es 02_wind_on 2 143 2030 1.0 0.0 +es 03_wind_off 2 143 2030 1.0 0.0 +es 04_res 2 143 2030 1.0 0.0 +es 05_nuclear 2 143 2030 1.0 0.0 +es 06_coal 2 143 2030 1.0 0.0 +es 07_gas 2 143 2030 1.0 0.0 +es 08_non-res 2 143 2030 1.0 0.0 +es 09_hydro_pump 2 143 2030 0.0 0.0 +es 01_solar 2 144 2030 1.0 0.0 +es 02_wind_on 2 144 2030 1.0 0.0 +es 03_wind_off 2 144 2030 1.0 0.0 +es 04_res 2 144 2030 1.0 0.0 +es 05_nuclear 2 144 2030 1.0 0.0 +es 06_coal 2 144 2030 1.0 0.0 +es 07_gas 2 144 2030 1.0 0.0 +es 08_non-res 2 144 2030 1.0 0.0 +es 09_hydro_pump 2 144 2030 0.0 0.0 +es 01_solar 2 145 2030 1.0 0.0 +es 02_wind_on 2 145 2030 1.0 0.0 +es 03_wind_off 2 145 2030 1.0 0.0 +es 04_res 2 145 2030 1.0 0.0 +es 05_nuclear 2 145 2030 1.0 0.0 +es 06_coal 2 145 2030 1.0 0.0 +es 07_gas 2 145 2030 1.0 0.0 +es 08_non-res 2 145 2030 1.0 0.0 +es 09_hydro_pump 2 145 2030 0.0 0.0 +es 01_solar 2 146 2030 1.0 0.0 +es 02_wind_on 2 146 2030 1.0 0.0 +es 03_wind_off 2 146 2030 1.0 0.0 +es 04_res 2 146 2030 1.0 0.0 +es 05_nuclear 2 146 2030 1.0 0.0 +es 06_coal 2 146 2030 1.0 0.0 +es 07_gas 2 146 2030 1.0 0.0 +es 08_non-res 2 146 2030 1.0 0.0 +es 09_hydro_pump 2 146 2030 0.0 0.0 +es 01_solar 2 147 2030 1.0 0.0 +es 02_wind_on 2 147 2030 1.0 0.0 +es 03_wind_off 2 147 2030 1.0 0.0 +es 04_res 2 147 2030 1.0 0.0 +es 05_nuclear 2 147 2030 1.0 0.0 +es 06_coal 2 147 2030 1.0 0.0 +es 07_gas 2 147 2030 1.0 0.0 +es 08_non-res 2 147 2030 1.0 0.0 +es 09_hydro_pump 2 147 2030 0.0 0.0 +es 01_solar 2 148 2030 1.0 0.0 +es 02_wind_on 2 148 2030 1.0 0.0 +es 03_wind_off 2 148 2030 1.0 0.0 +es 04_res 2 148 2030 1.0 0.0 +es 05_nuclear 2 148 2030 1.0 0.0 +es 06_coal 2 148 2030 1.0 0.0 +es 07_gas 2 148 2030 1.0 0.0 +es 08_non-res 2 148 2030 1.0 0.0 +es 09_hydro_pump 2 148 2030 0.0 0.0 +es 01_solar 2 149 2030 1.0 0.0 +es 02_wind_on 2 149 2030 1.0 0.0 +es 03_wind_off 2 149 2030 1.0 0.0 +es 04_res 2 149 2030 1.0 0.0 +es 05_nuclear 2 149 2030 1.0 0.0 +es 06_coal 2 149 2030 1.0 0.0 +es 07_gas 2 149 2030 1.0 0.0 +es 08_non-res 2 149 2030 1.0 0.0 +es 09_hydro_pump 2 149 2030 0.0 0.0 +es 01_solar 2 150 2030 1.0 0.0 +es 02_wind_on 2 150 2030 1.0 0.0 +es 03_wind_off 2 150 2030 1.0 0.0 +es 04_res 2 150 2030 1.0 0.0 +es 05_nuclear 2 150 2030 1.0 0.0 +es 06_coal 2 150 2030 1.0 0.0 +es 07_gas 2 150 2030 1.0 0.0 +es 08_non-res 2 150 2030 1.0 0.0 +es 09_hydro_pump 2 150 2030 0.0 0.0 +es 01_solar 2 151 2030 1.0 0.0 +es 02_wind_on 2 151 2030 1.0 0.0 +es 03_wind_off 2 151 2030 1.0 0.0 +es 04_res 2 151 2030 1.0 0.0 +es 05_nuclear 2 151 2030 1.0 0.0 +es 06_coal 2 151 2030 1.0 0.0 +es 07_gas 2 151 2030 1.0 0.0 +es 08_non-res 2 151 2030 1.0 0.0 +es 09_hydro_pump 2 151 2030 0.0 0.0 +es 01_solar 2 152 2030 1.0 0.0 +es 02_wind_on 2 152 2030 1.0 0.0 +es 03_wind_off 2 152 2030 1.0 0.0 +es 04_res 2 152 2030 1.0 0.0 +es 05_nuclear 2 152 2030 1.0 0.0 +es 06_coal 2 152 2030 1.0 0.0 +es 07_gas 2 152 2030 1.0 0.0 +es 08_non-res 2 152 2030 1.0 0.0 +es 09_hydro_pump 2 152 2030 0.0 0.0 +es 01_solar 2 153 2030 1.0 0.0 +es 02_wind_on 2 153 2030 1.0 0.0 +es 03_wind_off 2 153 2030 1.0 0.0 +es 04_res 2 153 2030 1.0 0.0 +es 05_nuclear 2 153 2030 1.0 0.0 +es 06_coal 2 153 2030 1.0 0.0 +es 07_gas 2 153 2030 1.0 0.0 +es 08_non-res 2 153 2030 1.0 0.0 +es 09_hydro_pump 2 153 2030 0.0 0.0 +es 01_solar 2 154 2030 1.0 0.0 +es 02_wind_on 2 154 2030 1.0 0.0 +es 03_wind_off 2 154 2030 1.0 0.0 +es 04_res 2 154 2030 1.0 0.0 +es 05_nuclear 2 154 2030 1.0 0.0 +es 06_coal 2 154 2030 1.0 0.0 +es 07_gas 2 154 2030 1.0 0.0 +es 08_non-res 2 154 2030 1.0 0.0 +es 09_hydro_pump 2 154 2030 0.0 0.0 +es 01_solar 2 155 2030 1.0 0.0 +es 02_wind_on 2 155 2030 1.0 0.0 +es 03_wind_off 2 155 2030 1.0 0.0 +es 04_res 2 155 2030 1.0 0.0 +es 05_nuclear 2 155 2030 1.0 0.0 +es 06_coal 2 155 2030 1.0 0.0 +es 07_gas 2 155 2030 1.0 0.0 +es 08_non-res 2 155 2030 1.0 0.0 +es 09_hydro_pump 2 155 2030 0.0 0.0 +es 01_solar 2 156 2030 1.0 0.0 +es 02_wind_on 2 156 2030 1.0 0.0 +es 03_wind_off 2 156 2030 1.0 0.0 +es 04_res 2 156 2030 1.0 0.0 +es 05_nuclear 2 156 2030 1.0 0.0 +es 06_coal 2 156 2030 1.0 0.0 +es 07_gas 2 156 2030 1.0 0.0 +es 08_non-res 2 156 2030 1.0 0.0 +es 09_hydro_pump 2 156 2030 0.0 0.0 +es 01_solar 2 157 2030 1.0 0.0 +es 02_wind_on 2 157 2030 1.0 0.0 +es 03_wind_off 2 157 2030 1.0 0.0 +es 04_res 2 157 2030 1.0 0.0 +es 05_nuclear 2 157 2030 1.0 0.0 +es 06_coal 2 157 2030 1.0 0.0 +es 07_gas 2 157 2030 1.0 0.0 +es 08_non-res 2 157 2030 1.0 0.0 +es 09_hydro_pump 2 157 2030 0.0 0.0 +es 01_solar 2 158 2030 1.0 0.0 +es 02_wind_on 2 158 2030 1.0 0.0 +es 03_wind_off 2 158 2030 1.0 0.0 +es 04_res 2 158 2030 1.0 0.0 +es 05_nuclear 2 158 2030 1.0 0.0 +es 06_coal 2 158 2030 1.0 0.0 +es 07_gas 2 158 2030 1.0 0.0 +es 08_non-res 2 158 2030 1.0 0.0 +es 09_hydro_pump 2 158 2030 0.0 0.0 +es 01_solar 2 159 2030 1.0 0.0 +es 02_wind_on 2 159 2030 1.0 0.0 +es 03_wind_off 2 159 2030 1.0 0.0 +es 04_res 2 159 2030 1.0 0.0 +es 05_nuclear 2 159 2030 1.0 0.0 +es 06_coal 2 159 2030 1.0 0.0 +es 07_gas 2 159 2030 1.0 0.0 +es 08_non-res 2 159 2030 1.0 0.0 +es 09_hydro_pump 2 159 2030 0.0 0.0 +es 01_solar 2 160 2030 1.0 0.0 +es 02_wind_on 2 160 2030 1.0 0.0 +es 03_wind_off 2 160 2030 1.0 0.0 +es 04_res 2 160 2030 1.0 0.0 +es 05_nuclear 2 160 2030 1.0 0.0 +es 06_coal 2 160 2030 1.0 0.0 +es 07_gas 2 160 2030 1.0 0.0 +es 08_non-res 2 160 2030 1.0 0.0 +es 09_hydro_pump 2 160 2030 0.0 0.0 +es 01_solar 2 161 2030 1.0 0.0 +es 02_wind_on 2 161 2030 1.0 0.0 +es 03_wind_off 2 161 2030 1.0 0.0 +es 04_res 2 161 2030 1.0 0.0 +es 05_nuclear 2 161 2030 1.0 0.0 +es 06_coal 2 161 2030 1.0 0.0 +es 07_gas 2 161 2030 1.0 0.0 +es 08_non-res 2 161 2030 1.0 0.0 +es 09_hydro_pump 2 161 2030 0.0 0.0 +es 01_solar 2 162 2030 1.0 0.0 +es 02_wind_on 2 162 2030 1.0 0.0 +es 03_wind_off 2 162 2030 1.0 0.0 +es 04_res 2 162 2030 1.0 0.0 +es 05_nuclear 2 162 2030 1.0 0.0 +es 06_coal 2 162 2030 1.0 0.0 +es 07_gas 2 162 2030 1.0 0.0 +es 08_non-res 2 162 2030 1.0 0.0 +es 09_hydro_pump 2 162 2030 1.0 0.0 +es 01_solar 2 163 2030 1.0 0.0 +es 02_wind_on 2 163 2030 1.0 0.0 +es 03_wind_off 2 163 2030 1.0 0.0 +es 04_res 2 163 2030 1.0 0.0 +es 05_nuclear 2 163 2030 1.0 0.0 +es 06_coal 2 163 2030 1.0 0.0 +es 07_gas 2 163 2030 1.0 0.0 +es 08_non-res 2 163 2030 1.0 0.0 +es 09_hydro_pump 2 163 2030 1.0 0.0 +es 01_solar 2 164 2030 1.0 0.0 +es 02_wind_on 2 164 2030 1.0 0.0 +es 03_wind_off 2 164 2030 1.0 0.0 +es 04_res 2 164 2030 1.0 0.0 +es 05_nuclear 2 164 2030 1.0 0.0 +es 06_coal 2 164 2030 1.0 0.0 +es 07_gas 2 164 2030 1.0 0.0 +es 08_non-res 2 164 2030 1.0 0.0 +es 09_hydro_pump 2 164 2030 1.0 0.0 +es 01_solar 2 165 2030 1.0 0.0 +es 02_wind_on 2 165 2030 1.0 0.0 +es 03_wind_off 2 165 2030 1.0 0.0 +es 04_res 2 165 2030 1.0 0.0 +es 05_nuclear 2 165 2030 1.0 0.0 +es 06_coal 2 165 2030 1.0 0.0 +es 07_gas 2 165 2030 1.0 0.0 +es 08_non-res 2 165 2030 1.0 0.0 +es 09_hydro_pump 2 165 2030 1.0 0.0 +es 01_solar 2 166 2030 1.0 0.0 +es 02_wind_on 2 166 2030 1.0 0.0 +es 03_wind_off 2 166 2030 1.0 0.0 +es 04_res 2 166 2030 1.0 0.0 +es 05_nuclear 2 166 2030 1.0 0.0 +es 06_coal 2 166 2030 1.0 0.0 +es 07_gas 2 166 2030 1.0 0.0 +es 08_non-res 2 166 2030 1.0 0.0 +es 09_hydro_pump 2 166 2030 1.0 0.0 +es 01_solar 2 167 2030 1.0 0.0 +es 02_wind_on 2 167 2030 1.0 0.0 +es 03_wind_off 2 167 2030 1.0 0.0 +es 04_res 2 167 2030 1.0 0.0 +es 05_nuclear 2 167 2030 1.0 0.0 +es 06_coal 2 167 2030 1.0 0.0 +es 07_gas 2 167 2030 1.0 0.0 +es 08_non-res 2 167 2030 1.0 0.0 +es 09_hydro_pump 2 167 2030 1.0 0.0 +es 01_solar 2 168 2030 1.0 0.0 +es 02_wind_on 2 168 2030 1.0 0.0 +es 03_wind_off 2 168 2030 1.0 0.0 +es 04_res 2 168 2030 1.0 0.0 +es 05_nuclear 2 168 2030 1.0 0.0 +es 06_coal 2 168 2030 1.0 0.0 +es 07_gas 2 168 2030 1.0 0.0 +es 08_non-res 2 168 2030 1.0 0.0 +es 09_hydro_pump 2 168 2030 1.0 0.0 +es 01_solar 2 169 2030 0.0 0.0 +es 02_wind_on 2 169 2030 0.0 0.0 +es 03_wind_off 2 169 2030 0.0 0.0 +es 04_res 2 169 2030 0.0 0.0 +es 05_nuclear 2 169 2030 0.0 0.0 +es 06_coal 2 169 2030 0.0 0.0 +es 07_gas 2 169 2030 0.0 0.0 +es 08_non-res 2 169 2030 0.0 0.0 +es 09_hydro_pump 2 169 2030 0.0 0.0 +es 01_solar 2 170 2030 1.0 0.0 +es 02_wind_on 2 170 2030 0.0 0.0 +es 03_wind_off 2 170 2030 0.0 0.0 +es 04_res 2 170 2030 0.0 0.0 +es 05_nuclear 2 170 2030 0.0 0.0 +es 06_coal 2 170 2030 0.0 0.0 +es 07_gas 2 170 2030 0.0 0.0 +es 08_non-res 2 170 2030 0.0 0.0 +es 09_hydro_pump 2 170 2030 0.0 0.0 +es 01_solar 2 171 2030 1.0 0.0 +es 02_wind_on 2 171 2030 0.0 0.0 +es 03_wind_off 2 171 2030 0.0 0.0 +es 04_res 2 171 2030 0.0 0.0 +es 05_nuclear 2 171 2030 0.0 0.0 +es 06_coal 2 171 2030 0.0 0.0 +es 07_gas 2 171 2030 0.0 0.0 +es 08_non-res 2 171 2030 0.0 0.0 +es 09_hydro_pump 2 171 2030 0.0 0.0 +es 01_solar 2 172 2030 1.0 0.0 +es 02_wind_on 2 172 2030 0.0 0.0 +es 03_wind_off 2 172 2030 0.0 0.0 +es 04_res 2 172 2030 0.0 0.0 +es 05_nuclear 2 172 2030 0.0 0.0 +es 06_coal 2 172 2030 0.0 0.0 +es 07_gas 2 172 2030 0.0 0.0 +es 08_non-res 2 172 2030 0.0 0.0 +es 09_hydro_pump 2 172 2030 0.0 0.0 +es 01_solar 2 173 2030 1.0 0.0 +es 02_wind_on 2 173 2030 0.0 0.0 +es 03_wind_off 2 173 2030 0.0 0.0 +es 04_res 2 173 2030 0.0 0.0 +es 05_nuclear 2 173 2030 0.0 0.0 +es 06_coal 2 173 2030 0.0 0.0 +es 07_gas 2 173 2030 0.0 0.0 +es 08_non-res 2 173 2030 0.0 0.0 +es 09_hydro_pump 2 173 2030 0.0 0.0 +es 01_solar 2 174 2030 1.0 0.0 +es 02_wind_on 2 174 2030 0.0 0.0 +es 03_wind_off 2 174 2030 0.0 0.0 +es 04_res 2 174 2030 0.0 0.0 +es 05_nuclear 2 174 2030 0.0 0.0 +es 06_coal 2 174 2030 0.0 0.0 +es 07_gas 2 174 2030 0.0 0.0 +es 08_non-res 2 174 2030 0.0 0.0 +es 09_hydro_pump 2 174 2030 0.0 0.0 +es 01_solar 2 175 2030 1.0 0.0 +es 02_wind_on 2 175 2030 0.0 0.0 +es 03_wind_off 2 175 2030 0.0 0.0 +es 04_res 2 175 2030 0.0 0.0 +es 05_nuclear 2 175 2030 0.0 0.0 +es 06_coal 2 175 2030 0.0 0.0 +es 07_gas 2 175 2030 0.0 0.0 +es 08_non-res 2 175 2030 0.0 0.0 +es 09_hydro_pump 2 175 2030 0.0 0.0 +es 01_solar 2 176 2030 1.0 0.0 +es 02_wind_on 2 176 2030 0.0 0.0 +es 03_wind_off 2 176 2030 0.0 0.0 +es 04_res 2 176 2030 0.0 0.0 +es 05_nuclear 2 176 2030 0.0 0.0 +es 06_coal 2 176 2030 0.0 0.0 +es 07_gas 2 176 2030 0.0 0.0 +es 08_non-res 2 176 2030 0.0 0.0 +es 09_hydro_pump 2 176 2030 0.0 0.0 +es 01_solar 2 177 2030 1.0 0.0 +es 02_wind_on 2 177 2030 0.0 0.0 +es 03_wind_off 2 177 2030 0.0 0.0 +es 04_res 2 177 2030 0.0 0.0 +es 05_nuclear 2 177 2030 0.0 0.0 +es 06_coal 2 177 2030 0.0 0.0 +es 07_gas 2 177 2030 0.0 0.0 +es 08_non-res 2 177 2030 0.0 0.0 +es 09_hydro_pump 2 177 2030 0.0 0.0 +es 01_solar 2 178 2030 1.0 0.0 +es 02_wind_on 2 178 2030 0.0 0.0 +es 03_wind_off 2 178 2030 0.0 0.0 +es 04_res 2 178 2030 0.0 0.0 +es 05_nuclear 2 178 2030 0.0 0.0 +es 06_coal 2 178 2030 0.0 0.0 +es 07_gas 2 178 2030 0.0 0.0 +es 08_non-res 2 178 2030 0.0 0.0 +es 09_hydro_pump 2 178 2030 0.0 0.0 +es 01_solar 2 179 2030 1.0 0.0 +es 02_wind_on 2 179 2030 0.0 0.0 +es 03_wind_off 2 179 2030 0.0 0.0 +es 04_res 2 179 2030 0.0 0.0 +es 05_nuclear 2 179 2030 0.0 0.0 +es 06_coal 2 179 2030 0.0 0.0 +es 07_gas 2 179 2030 0.0 0.0 +es 08_non-res 2 179 2030 0.0 0.0 +es 09_hydro_pump 2 179 2030 0.0 0.0 +es 01_solar 2 180 2030 1.0 0.0 +es 02_wind_on 2 180 2030 0.0 0.0 +es 03_wind_off 2 180 2030 0.0 0.0 +es 04_res 2 180 2030 0.0 0.0 +es 05_nuclear 2 180 2030 0.0 0.0 +es 06_coal 2 180 2030 0.0 0.0 +es 07_gas 2 180 2030 0.0 0.0 +es 08_non-res 2 180 2030 0.0 0.0 +es 09_hydro_pump 2 180 2030 0.0 0.0 +es 01_solar 2 181 2030 1.0 0.0 +es 02_wind_on 2 181 2030 0.0 0.0 +es 03_wind_off 2 181 2030 0.0 0.0 +es 04_res 2 181 2030 0.0 0.0 +es 05_nuclear 2 181 2030 0.0 0.0 +es 06_coal 2 181 2030 0.0 0.0 +es 07_gas 2 181 2030 0.0 0.0 +es 08_non-res 2 181 2030 0.0 0.0 +es 09_hydro_pump 2 181 2030 0.0 0.0 +es 01_solar 2 182 2030 1.0 0.0 +es 02_wind_on 2 182 2030 0.0 0.0 +es 03_wind_off 2 182 2030 0.0 0.0 +es 04_res 2 182 2030 0.0 0.0 +es 05_nuclear 2 182 2030 0.0 0.0 +es 06_coal 2 182 2030 0.0 0.0 +es 07_gas 2 182 2030 0.0 0.0 +es 08_non-res 2 182 2030 0.0 0.0 +es 09_hydro_pump 2 182 2030 0.0 0.0 +es 01_solar 2 183 2030 1.0 0.0 +es 02_wind_on 2 183 2030 0.0 0.0 +es 03_wind_off 2 183 2030 0.0 0.0 +es 04_res 2 183 2030 0.0 0.0 +es 05_nuclear 2 183 2030 0.0 0.0 +es 06_coal 2 183 2030 0.0 0.0 +es 07_gas 2 183 2030 0.0 0.0 +es 08_non-res 2 183 2030 0.0 0.0 +es 09_hydro_pump 2 183 2030 0.0 0.0 +es 01_solar 2 184 2030 1.0 0.0 +es 02_wind_on 2 184 2030 0.0 0.0 +es 03_wind_off 2 184 2030 0.0 0.0 +es 04_res 2 184 2030 0.0 0.0 +es 05_nuclear 2 184 2030 0.0 0.0 +es 06_coal 2 184 2030 0.0 0.0 +es 07_gas 2 184 2030 0.0 0.0 +es 08_non-res 2 184 2030 0.0 0.0 +es 09_hydro_pump 2 184 2030 0.0 0.0 +es 01_solar 2 185 2030 1.0 0.0 +es 02_wind_on 2 185 2030 0.0 0.0 +es 03_wind_off 2 185 2030 0.0 0.0 +es 04_res 2 185 2030 0.0 0.0 +es 05_nuclear 2 185 2030 0.0 0.0 +es 06_coal 2 185 2030 0.0 0.0 +es 07_gas 2 185 2030 0.0 0.0 +es 08_non-res 2 185 2030 0.0 0.0 +es 09_hydro_pump 2 185 2030 0.0 0.0 +es 01_solar 2 186 2030 1.0 0.0 +es 02_wind_on 2 186 2030 0.0 0.0 +es 03_wind_off 2 186 2030 0.0 0.0 +es 04_res 2 186 2030 0.0 0.0 +es 05_nuclear 2 186 2030 0.0 0.0 +es 06_coal 2 186 2030 0.0 0.0 +es 07_gas 2 186 2030 0.0 0.0 +es 08_non-res 2 186 2030 0.0 0.0 +es 09_hydro_pump 2 186 2030 0.0 0.0 +es 01_solar 2 187 2030 1.0 0.0 +es 02_wind_on 2 187 2030 0.0 0.0 +es 03_wind_off 2 187 2030 0.0 0.0 +es 04_res 2 187 2030 0.0 0.0 +es 05_nuclear 2 187 2030 0.0 0.0 +es 06_coal 2 187 2030 0.0 0.0 +es 07_gas 2 187 2030 0.0 0.0 +es 08_non-res 2 187 2030 0.0 0.0 +es 09_hydro_pump 2 187 2030 0.0 0.0 +es 01_solar 2 188 2030 1.0 0.0 +es 02_wind_on 2 188 2030 0.0 0.0 +es 03_wind_off 2 188 2030 0.0 0.0 +es 04_res 2 188 2030 0.0 0.0 +es 05_nuclear 2 188 2030 0.0 0.0 +es 06_coal 2 188 2030 0.0 0.0 +es 07_gas 2 188 2030 0.0 0.0 +es 08_non-res 2 188 2030 0.0 0.0 +es 09_hydro_pump 2 188 2030 0.0 0.0 +es 01_solar 2 189 2030 1.0 0.0 +es 02_wind_on 2 189 2030 0.0 0.0 +es 03_wind_off 2 189 2030 0.0 0.0 +es 04_res 2 189 2030 0.0 0.0 +es 05_nuclear 2 189 2030 0.0 0.0 +es 06_coal 2 189 2030 0.0 0.0 +es 07_gas 2 189 2030 0.0 0.0 +es 08_non-res 2 189 2030 0.0 0.0 +es 09_hydro_pump 2 189 2030 0.0 0.0 +es 01_solar 2 190 2030 1.0 0.0 +es 02_wind_on 2 190 2030 1.0 0.0 +es 03_wind_off 2 190 2030 0.0 0.0 +es 04_res 2 190 2030 0.0 0.0 +es 05_nuclear 2 190 2030 0.0 0.0 +es 06_coal 2 190 2030 0.0 0.0 +es 07_gas 2 190 2030 0.0 0.0 +es 08_non-res 2 190 2030 0.0 0.0 +es 09_hydro_pump 2 190 2030 0.0 0.0 +es 01_solar 2 191 2030 1.0 0.0 +es 02_wind_on 2 191 2030 1.0 0.0 +es 03_wind_off 2 191 2030 0.0 0.0 +es 04_res 2 191 2030 0.0 0.0 +es 05_nuclear 2 191 2030 0.0 0.0 +es 06_coal 2 191 2030 0.0 0.0 +es 07_gas 2 191 2030 0.0 0.0 +es 08_non-res 2 191 2030 0.0 0.0 +es 09_hydro_pump 2 191 2030 0.0 0.0 +es 01_solar 2 192 2030 1.0 0.0 +es 02_wind_on 2 192 2030 1.0 0.0 +es 03_wind_off 2 192 2030 0.0 0.0 +es 04_res 2 192 2030 0.0 0.0 +es 05_nuclear 2 192 2030 0.0 0.0 +es 06_coal 2 192 2030 0.0 0.0 +es 07_gas 2 192 2030 0.0 0.0 +es 08_non-res 2 192 2030 0.0 0.0 +es 09_hydro_pump 2 192 2030 0.0 0.0 +es 01_solar 2 193 2030 1.0 0.0 +es 02_wind_on 2 193 2030 1.0 0.0 +es 03_wind_off 2 193 2030 0.0 0.0 +es 04_res 2 193 2030 0.0 0.0 +es 05_nuclear 2 193 2030 0.0 0.0 +es 06_coal 2 193 2030 0.0 0.0 +es 07_gas 2 193 2030 0.0 0.0 +es 08_non-res 2 193 2030 0.0 0.0 +es 09_hydro_pump 2 193 2030 0.0 0.0 +es 01_solar 2 194 2030 1.0 0.0 +es 02_wind_on 2 194 2030 1.0 0.0 +es 03_wind_off 2 194 2030 0.0 0.0 +es 04_res 2 194 2030 0.0 0.0 +es 05_nuclear 2 194 2030 0.0 0.0 +es 06_coal 2 194 2030 0.0 0.0 +es 07_gas 2 194 2030 0.0 0.0 +es 08_non-res 2 194 2030 0.0 0.0 +es 09_hydro_pump 2 194 2030 0.0 0.0 +es 01_solar 2 195 2030 1.0 0.0 +es 02_wind_on 2 195 2030 1.0 0.0 +es 03_wind_off 2 195 2030 0.0 0.0 +es 04_res 2 195 2030 0.0 0.0 +es 05_nuclear 2 195 2030 0.0 0.0 +es 06_coal 2 195 2030 0.0 0.0 +es 07_gas 2 195 2030 0.0 0.0 +es 08_non-res 2 195 2030 0.0 0.0 +es 09_hydro_pump 2 195 2030 0.0 0.0 +es 01_solar 2 196 2030 1.0 0.0 +es 02_wind_on 2 196 2030 1.0 0.0 +es 03_wind_off 2 196 2030 0.0 0.0 +es 04_res 2 196 2030 0.0 0.0 +es 05_nuclear 2 196 2030 0.0 0.0 +es 06_coal 2 196 2030 0.0 0.0 +es 07_gas 2 196 2030 0.0 0.0 +es 08_non-res 2 196 2030 0.0 0.0 +es 09_hydro_pump 2 196 2030 0.0 0.0 +es 01_solar 2 197 2030 1.0 0.0 +es 02_wind_on 2 197 2030 1.0 0.0 +es 03_wind_off 2 197 2030 0.0 0.0 +es 04_res 2 197 2030 0.0 0.0 +es 05_nuclear 2 197 2030 0.0 0.0 +es 06_coal 2 197 2030 0.0 0.0 +es 07_gas 2 197 2030 0.0 0.0 +es 08_non-res 2 197 2030 0.0 0.0 +es 09_hydro_pump 2 197 2030 0.0 0.0 +es 01_solar 2 198 2030 1.0 0.0 +es 02_wind_on 2 198 2030 1.0 0.0 +es 03_wind_off 2 198 2030 0.0 0.0 +es 04_res 2 198 2030 0.0 0.0 +es 05_nuclear 2 198 2030 0.0 0.0 +es 06_coal 2 198 2030 0.0 0.0 +es 07_gas 2 198 2030 0.0 0.0 +es 08_non-res 2 198 2030 0.0 0.0 +es 09_hydro_pump 2 198 2030 0.0 0.0 +es 01_solar 2 199 2030 1.0 0.0 +es 02_wind_on 2 199 2030 1.0 0.0 +es 03_wind_off 2 199 2030 0.0 0.0 +es 04_res 2 199 2030 0.0 0.0 +es 05_nuclear 2 199 2030 0.0 0.0 +es 06_coal 2 199 2030 0.0 0.0 +es 07_gas 2 199 2030 0.0 0.0 +es 08_non-res 2 199 2030 0.0 0.0 +es 09_hydro_pump 2 199 2030 0.0 0.0 +es 01_solar 2 200 2030 1.0 0.0 +es 02_wind_on 2 200 2030 1.0 0.0 +es 03_wind_off 2 200 2030 0.0 0.0 +es 04_res 2 200 2030 0.0 0.0 +es 05_nuclear 2 200 2030 0.0 0.0 +es 06_coal 2 200 2030 0.0 0.0 +es 07_gas 2 200 2030 0.0 0.0 +es 08_non-res 2 200 2030 0.0 0.0 +es 09_hydro_pump 2 200 2030 0.0 0.0 +es 01_solar 2 201 2030 1.0 0.0 +es 02_wind_on 2 201 2030 1.0 0.0 +es 03_wind_off 2 201 2030 0.0 0.0 +es 04_res 2 201 2030 0.0 0.0 +es 05_nuclear 2 201 2030 0.0 0.0 +es 06_coal 2 201 2030 0.0 0.0 +es 07_gas 2 201 2030 0.0 0.0 +es 08_non-res 2 201 2030 0.0 0.0 +es 09_hydro_pump 2 201 2030 0.0 0.0 +es 01_solar 2 202 2030 1.0 0.0 +es 02_wind_on 2 202 2030 1.0 0.0 +es 03_wind_off 2 202 2030 0.0 0.0 +es 04_res 2 202 2030 0.0 0.0 +es 05_nuclear 2 202 2030 0.0 0.0 +es 06_coal 2 202 2030 0.0 0.0 +es 07_gas 2 202 2030 0.0 0.0 +es 08_non-res 2 202 2030 0.0 0.0 +es 09_hydro_pump 2 202 2030 0.0 0.0 +es 01_solar 2 203 2030 1.0 0.0 +es 02_wind_on 2 203 2030 1.0 0.0 +es 03_wind_off 2 203 2030 0.0 0.0 +es 04_res 2 203 2030 0.0 0.0 +es 05_nuclear 2 203 2030 0.0 0.0 +es 06_coal 2 203 2030 0.0 0.0 +es 07_gas 2 203 2030 0.0 0.0 +es 08_non-res 2 203 2030 0.0 0.0 +es 09_hydro_pump 2 203 2030 0.0 0.0 +es 01_solar 2 204 2030 1.0 0.0 +es 02_wind_on 2 204 2030 1.0 0.0 +es 03_wind_off 2 204 2030 0.0 0.0 +es 04_res 2 204 2030 0.0 0.0 +es 05_nuclear 2 204 2030 0.0 0.0 +es 06_coal 2 204 2030 0.0 0.0 +es 07_gas 2 204 2030 0.0 0.0 +es 08_non-res 2 204 2030 0.0 0.0 +es 09_hydro_pump 2 204 2030 0.0 0.0 +es 01_solar 2 205 2030 1.0 0.0 +es 02_wind_on 2 205 2030 1.0 0.0 +es 03_wind_off 2 205 2030 0.0 0.0 +es 04_res 2 205 2030 0.0 0.0 +es 05_nuclear 2 205 2030 0.0 0.0 +es 06_coal 2 205 2030 0.0 0.0 +es 07_gas 2 205 2030 0.0 0.0 +es 08_non-res 2 205 2030 0.0 0.0 +es 09_hydro_pump 2 205 2030 0.0 0.0 +es 01_solar 2 206 2030 1.0 0.0 +es 02_wind_on 2 206 2030 1.0 0.0 +es 03_wind_off 2 206 2030 0.0 0.0 +es 04_res 2 206 2030 0.0 0.0 +es 05_nuclear 2 206 2030 0.0 0.0 +es 06_coal 2 206 2030 0.0 0.0 +es 07_gas 2 206 2030 0.0 0.0 +es 08_non-res 2 206 2030 0.0 0.0 +es 09_hydro_pump 2 206 2030 0.0 0.0 +es 01_solar 2 207 2030 1.0 0.0 +es 02_wind_on 2 207 2030 1.0 0.0 +es 03_wind_off 2 207 2030 0.0 0.0 +es 04_res 2 207 2030 0.0 0.0 +es 05_nuclear 2 207 2030 0.0 0.0 +es 06_coal 2 207 2030 0.0 0.0 +es 07_gas 2 207 2030 0.0 0.0 +es 08_non-res 2 207 2030 0.0 0.0 +es 09_hydro_pump 2 207 2030 0.0 0.0 +es 01_solar 2 208 2030 1.0 0.0 +es 02_wind_on 2 208 2030 1.0 0.0 +es 03_wind_off 2 208 2030 0.0 0.0 +es 04_res 2 208 2030 0.0 0.0 +es 05_nuclear 2 208 2030 0.0 0.0 +es 06_coal 2 208 2030 0.0 0.0 +es 07_gas 2 208 2030 0.0 0.0 +es 08_non-res 2 208 2030 0.0 0.0 +es 09_hydro_pump 2 208 2030 0.0 0.0 +es 01_solar 2 209 2030 1.0 0.0 +es 02_wind_on 2 209 2030 1.0 0.0 +es 03_wind_off 2 209 2030 0.0 0.0 +es 04_res 2 209 2030 0.0 0.0 +es 05_nuclear 2 209 2030 0.0 0.0 +es 06_coal 2 209 2030 0.0 0.0 +es 07_gas 2 209 2030 0.0 0.0 +es 08_non-res 2 209 2030 0.0 0.0 +es 09_hydro_pump 2 209 2030 0.0 0.0 +es 01_solar 2 210 2030 1.0 0.0 +es 02_wind_on 2 210 2030 1.0 0.0 +es 03_wind_off 2 210 2030 1.0 0.0 +es 04_res 2 210 2030 0.0 0.0 +es 05_nuclear 2 210 2030 0.0 0.0 +es 06_coal 2 210 2030 0.0 0.0 +es 07_gas 2 210 2030 0.0 0.0 +es 08_non-res 2 210 2030 0.0 0.0 +es 09_hydro_pump 2 210 2030 0.0 0.0 +es 01_solar 2 211 2030 1.0 0.0 +es 02_wind_on 2 211 2030 1.0 0.0 +es 03_wind_off 2 211 2030 1.0 0.0 +es 04_res 2 211 2030 0.0 0.0 +es 05_nuclear 2 211 2030 0.0 0.0 +es 06_coal 2 211 2030 0.0 0.0 +es 07_gas 2 211 2030 0.0 0.0 +es 08_non-res 2 211 2030 0.0 0.0 +es 09_hydro_pump 2 211 2030 0.0 0.0 +es 01_solar 2 212 2030 1.0 0.0 +es 02_wind_on 2 212 2030 1.0 0.0 +es 03_wind_off 2 212 2030 1.0 0.0 +es 04_res 2 212 2030 0.0 0.0 +es 05_nuclear 2 212 2030 0.0 0.0 +es 06_coal 2 212 2030 0.0 0.0 +es 07_gas 2 212 2030 0.0 0.0 +es 08_non-res 2 212 2030 0.0 0.0 +es 09_hydro_pump 2 212 2030 0.0 0.0 +es 01_solar 2 213 2030 1.0 0.0 +es 02_wind_on 2 213 2030 1.0 0.0 +es 03_wind_off 2 213 2030 1.0 0.0 +es 04_res 2 213 2030 0.0 0.0 +es 05_nuclear 2 213 2030 0.0 0.0 +es 06_coal 2 213 2030 0.0 0.0 +es 07_gas 2 213 2030 0.0 0.0 +es 08_non-res 2 213 2030 0.0 0.0 +es 09_hydro_pump 2 213 2030 0.0 0.0 +es 01_solar 2 214 2030 1.0 0.0 +es 02_wind_on 2 214 2030 1.0 0.0 +es 03_wind_off 2 214 2030 1.0 0.0 +es 04_res 2 214 2030 0.0 0.0 +es 05_nuclear 2 214 2030 0.0 0.0 +es 06_coal 2 214 2030 0.0 0.0 +es 07_gas 2 214 2030 0.0 0.0 +es 08_non-res 2 214 2030 0.0 0.0 +es 09_hydro_pump 2 214 2030 0.0 0.0 +es 01_solar 2 215 2030 1.0 0.0 +es 02_wind_on 2 215 2030 1.0 0.0 +es 03_wind_off 2 215 2030 1.0 0.0 +es 04_res 2 215 2030 0.0 0.0 +es 05_nuclear 2 215 2030 0.0 0.0 +es 06_coal 2 215 2030 0.0 0.0 +es 07_gas 2 215 2030 0.0 0.0 +es 08_non-res 2 215 2030 0.0 0.0 +es 09_hydro_pump 2 215 2030 0.0 0.0 +es 01_solar 2 216 2030 1.0 0.0 +es 02_wind_on 2 216 2030 1.0 0.0 +es 03_wind_off 2 216 2030 1.0 0.0 +es 04_res 2 216 2030 0.0 0.0 +es 05_nuclear 2 216 2030 0.0 0.0 +es 06_coal 2 216 2030 0.0 0.0 +es 07_gas 2 216 2030 0.0 0.0 +es 08_non-res 2 216 2030 0.0 0.0 +es 09_hydro_pump 2 216 2030 0.0 0.0 +es 01_solar 2 217 2030 1.0 0.0 +es 02_wind_on 2 217 2030 1.0 0.0 +es 03_wind_off 2 217 2030 1.0 0.0 +es 04_res 2 217 2030 0.0 0.0 +es 05_nuclear 2 217 2030 0.0 0.0 +es 06_coal 2 217 2030 0.0 0.0 +es 07_gas 2 217 2030 0.0 0.0 +es 08_non-res 2 217 2030 0.0 0.0 +es 09_hydro_pump 2 217 2030 0.0 0.0 +es 01_solar 2 218 2030 1.0 0.0 +es 02_wind_on 2 218 2030 1.0 0.0 +es 03_wind_off 2 218 2030 1.0 0.0 +es 04_res 2 218 2030 0.0 0.0 +es 05_nuclear 2 218 2030 0.0 0.0 +es 06_coal 2 218 2030 0.0 0.0 +es 07_gas 2 218 2030 0.0 0.0 +es 08_non-res 2 218 2030 0.0 0.0 +es 09_hydro_pump 2 218 2030 0.0 0.0 +es 01_solar 2 219 2030 1.0 0.0 +es 02_wind_on 2 219 2030 1.0 0.0 +es 03_wind_off 2 219 2030 1.0 0.0 +es 04_res 2 219 2030 0.0 0.0 +es 05_nuclear 2 219 2030 0.0 0.0 +es 06_coal 2 219 2030 0.0 0.0 +es 07_gas 2 219 2030 0.0 0.0 +es 08_non-res 2 219 2030 0.0 0.0 +es 09_hydro_pump 2 219 2030 0.0 0.0 +es 01_solar 2 220 2030 1.0 0.0 +es 02_wind_on 2 220 2030 1.0 0.0 +es 03_wind_off 2 220 2030 1.0 0.0 +es 04_res 2 220 2030 0.0 0.0 +es 05_nuclear 2 220 2030 0.0 0.0 +es 06_coal 2 220 2030 0.0 0.0 +es 07_gas 2 220 2030 0.0 0.0 +es 08_non-res 2 220 2030 0.0 0.0 +es 09_hydro_pump 2 220 2030 0.0 0.0 +es 01_solar 2 221 2030 1.0 0.0 +es 02_wind_on 2 221 2030 1.0 0.0 +es 03_wind_off 2 221 2030 1.0 0.0 +es 04_res 2 221 2030 0.0 0.0 +es 05_nuclear 2 221 2030 0.0 0.0 +es 06_coal 2 221 2030 0.0 0.0 +es 07_gas 2 221 2030 0.0 0.0 +es 08_non-res 2 221 2030 0.0 0.0 +es 09_hydro_pump 2 221 2030 0.0 0.0 +es 01_solar 2 222 2030 1.0 0.0 +es 02_wind_on 2 222 2030 1.0 0.0 +es 03_wind_off 2 222 2030 1.0 0.0 +es 04_res 2 222 2030 0.0 0.0 +es 05_nuclear 2 222 2030 0.0 0.0 +es 06_coal 2 222 2030 0.0 0.0 +es 07_gas 2 222 2030 0.0 0.0 +es 08_non-res 2 222 2030 0.0 0.0 +es 09_hydro_pump 2 222 2030 0.0 0.0 +es 01_solar 2 223 2030 1.0 0.0 +es 02_wind_on 2 223 2030 1.0 0.0 +es 03_wind_off 2 223 2030 1.0 0.0 +es 04_res 2 223 2030 0.0 0.0 +es 05_nuclear 2 223 2030 0.0 0.0 +es 06_coal 2 223 2030 0.0 0.0 +es 07_gas 2 223 2030 0.0 0.0 +es 08_non-res 2 223 2030 0.0 0.0 +es 09_hydro_pump 2 223 2030 0.0 0.0 +es 01_solar 2 224 2030 1.0 0.0 +es 02_wind_on 2 224 2030 1.0 0.0 +es 03_wind_off 2 224 2030 1.0 0.0 +es 04_res 2 224 2030 0.0 0.0 +es 05_nuclear 2 224 2030 0.0 0.0 +es 06_coal 2 224 2030 0.0 0.0 +es 07_gas 2 224 2030 0.0 0.0 +es 08_non-res 2 224 2030 0.0 0.0 +es 09_hydro_pump 2 224 2030 0.0 0.0 +es 01_solar 2 225 2030 1.0 0.0 +es 02_wind_on 2 225 2030 1.0 0.0 +es 03_wind_off 2 225 2030 1.0 0.0 +es 04_res 2 225 2030 0.0 0.0 +es 05_nuclear 2 225 2030 0.0 0.0 +es 06_coal 2 225 2030 0.0 0.0 +es 07_gas 2 225 2030 0.0 0.0 +es 08_non-res 2 225 2030 0.0 0.0 +es 09_hydro_pump 2 225 2030 0.0 0.0 +es 01_solar 2 226 2030 1.0 0.0 +es 02_wind_on 2 226 2030 1.0 0.0 +es 03_wind_off 2 226 2030 1.0 0.0 +es 04_res 2 226 2030 0.0 0.0 +es 05_nuclear 2 226 2030 0.0 0.0 +es 06_coal 2 226 2030 0.0 0.0 +es 07_gas 2 226 2030 0.0 0.0 +es 08_non-res 2 226 2030 0.0 0.0 +es 09_hydro_pump 2 226 2030 0.0 0.0 +es 01_solar 2 227 2030 1.0 0.0 +es 02_wind_on 2 227 2030 1.0 0.0 +es 03_wind_off 2 227 2030 1.0 0.0 +es 04_res 2 227 2030 0.0 0.0 +es 05_nuclear 2 227 2030 0.0 0.0 +es 06_coal 2 227 2030 0.0 0.0 +es 07_gas 2 227 2030 0.0 0.0 +es 08_non-res 2 227 2030 0.0 0.0 +es 09_hydro_pump 2 227 2030 0.0 0.0 +es 01_solar 2 228 2030 1.0 0.0 +es 02_wind_on 2 228 2030 1.0 0.0 +es 03_wind_off 2 228 2030 1.0 0.0 +es 04_res 2 228 2030 0.0 0.0 +es 05_nuclear 2 228 2030 0.0 0.0 +es 06_coal 2 228 2030 0.0 0.0 +es 07_gas 2 228 2030 0.0 0.0 +es 08_non-res 2 228 2030 0.0 0.0 +es 09_hydro_pump 2 228 2030 0.0 0.0 +es 01_solar 2 229 2030 1.0 0.0 +es 02_wind_on 2 229 2030 1.0 0.0 +es 03_wind_off 2 229 2030 1.0 0.0 +es 04_res 2 229 2030 0.0 0.0 +es 05_nuclear 2 229 2030 0.0 0.0 +es 06_coal 2 229 2030 0.0 0.0 +es 07_gas 2 229 2030 0.0 0.0 +es 08_non-res 2 229 2030 0.0 0.0 +es 09_hydro_pump 2 229 2030 0.0 0.0 +es 01_solar 2 230 2030 1.0 0.0 +es 02_wind_on 2 230 2030 1.0 0.0 +es 03_wind_off 2 230 2030 1.0 0.0 +es 04_res 2 230 2030 1.0 0.0 +es 05_nuclear 2 230 2030 0.0 0.0 +es 06_coal 2 230 2030 0.0 0.0 +es 07_gas 2 230 2030 0.0 0.0 +es 08_non-res 2 230 2030 0.0 0.0 +es 09_hydro_pump 2 230 2030 0.0 0.0 +es 01_solar 2 231 2030 1.0 0.0 +es 02_wind_on 2 231 2030 1.0 0.0 +es 03_wind_off 2 231 2030 1.0 0.0 +es 04_res 2 231 2030 1.0 0.0 +es 05_nuclear 2 231 2030 0.0 0.0 +es 06_coal 2 231 2030 0.0 0.0 +es 07_gas 2 231 2030 0.0 0.0 +es 08_non-res 2 231 2030 0.0 0.0 +es 09_hydro_pump 2 231 2030 0.0 0.0 +es 01_solar 2 232 2030 1.0 0.0 +es 02_wind_on 2 232 2030 1.0 0.0 +es 03_wind_off 2 232 2030 1.0 0.0 +es 04_res 2 232 2030 1.0 0.0 +es 05_nuclear 2 232 2030 0.0 0.0 +es 06_coal 2 232 2030 0.0 0.0 +es 07_gas 2 232 2030 0.0 0.0 +es 08_non-res 2 232 2030 0.0 0.0 +es 09_hydro_pump 2 232 2030 0.0 0.0 +es 01_solar 2 233 2030 1.0 0.0 +es 02_wind_on 2 233 2030 1.0 0.0 +es 03_wind_off 2 233 2030 1.0 0.0 +es 04_res 2 233 2030 1.0 0.0 +es 05_nuclear 2 233 2030 0.0 0.0 +es 06_coal 2 233 2030 0.0 0.0 +es 07_gas 2 233 2030 0.0 0.0 +es 08_non-res 2 233 2030 0.0 0.0 +es 09_hydro_pump 2 233 2030 0.0 0.0 +es 01_solar 2 234 2030 1.0 0.0 +es 02_wind_on 2 234 2030 1.0 0.0 +es 03_wind_off 2 234 2030 1.0 0.0 +es 04_res 2 234 2030 1.0 0.0 +es 05_nuclear 2 234 2030 0.0 0.0 +es 06_coal 2 234 2030 0.0 0.0 +es 07_gas 2 234 2030 0.0 0.0 +es 08_non-res 2 234 2030 0.0 0.0 +es 09_hydro_pump 2 234 2030 0.0 0.0 +es 01_solar 2 235 2030 1.0 0.0 +es 02_wind_on 2 235 2030 1.0 0.0 +es 03_wind_off 2 235 2030 1.0 0.0 +es 04_res 2 235 2030 1.0 0.0 +es 05_nuclear 2 235 2030 0.0 0.0 +es 06_coal 2 235 2030 0.0 0.0 +es 07_gas 2 235 2030 0.0 0.0 +es 08_non-res 2 235 2030 0.0 0.0 +es 09_hydro_pump 2 235 2030 0.0 0.0 +es 01_solar 2 236 2030 1.0 0.0 +es 02_wind_on 2 236 2030 1.0 0.0 +es 03_wind_off 2 236 2030 1.0 0.0 +es 04_res 2 236 2030 1.0 0.0 +es 05_nuclear 2 236 2030 0.0 0.0 +es 06_coal 2 236 2030 0.0 0.0 +es 07_gas 2 236 2030 0.0 0.0 +es 08_non-res 2 236 2030 0.0 0.0 +es 09_hydro_pump 2 236 2030 0.0 0.0 +es 01_solar 2 237 2030 1.0 0.0 +es 02_wind_on 2 237 2030 1.0 0.0 +es 03_wind_off 2 237 2030 1.0 0.0 +es 04_res 2 237 2030 1.0 0.0 +es 05_nuclear 2 237 2030 0.0 0.0 +es 06_coal 2 237 2030 0.0 0.0 +es 07_gas 2 237 2030 0.0 0.0 +es 08_non-res 2 237 2030 0.0 0.0 +es 09_hydro_pump 2 237 2030 0.0 0.0 +es 01_solar 2 238 2030 1.0 0.0 +es 02_wind_on 2 238 2030 1.0 0.0 +es 03_wind_off 2 238 2030 1.0 0.0 +es 04_res 2 238 2030 1.0 0.0 +es 05_nuclear 2 238 2030 0.0 0.0 +es 06_coal 2 238 2030 0.0 0.0 +es 07_gas 2 238 2030 0.0 0.0 +es 08_non-res 2 238 2030 0.0 0.0 +es 09_hydro_pump 2 238 2030 0.0 0.0 +es 01_solar 2 239 2030 1.0 0.0 +es 02_wind_on 2 239 2030 1.0 0.0 +es 03_wind_off 2 239 2030 1.0 0.0 +es 04_res 2 239 2030 1.0 0.0 +es 05_nuclear 2 239 2030 0.0 0.0 +es 06_coal 2 239 2030 0.0 0.0 +es 07_gas 2 239 2030 0.0 0.0 +es 08_non-res 2 239 2030 0.0 0.0 +es 09_hydro_pump 2 239 2030 0.0 0.0 +es 01_solar 2 240 2030 1.0 0.0 +es 02_wind_on 2 240 2030 1.0 0.0 +es 03_wind_off 2 240 2030 1.0 0.0 +es 04_res 2 240 2030 1.0 0.0 +es 05_nuclear 2 240 2030 0.0 0.0 +es 06_coal 2 240 2030 0.0 0.0 +es 07_gas 2 240 2030 0.0 0.0 +es 08_non-res 2 240 2030 0.0 0.0 +es 09_hydro_pump 2 240 2030 0.0 0.0 +es 01_solar 2 241 2030 1.0 0.0 +es 02_wind_on 2 241 2030 1.0 0.0 +es 03_wind_off 2 241 2030 1.0 0.0 +es 04_res 2 241 2030 1.0 0.0 +es 05_nuclear 2 241 2030 0.0 0.0 +es 06_coal 2 241 2030 0.0 0.0 +es 07_gas 2 241 2030 0.0 0.0 +es 08_non-res 2 241 2030 0.0 0.0 +es 09_hydro_pump 2 241 2030 0.0 0.0 +es 01_solar 2 242 2030 1.0 0.0 +es 02_wind_on 2 242 2030 1.0 0.0 +es 03_wind_off 2 242 2030 1.0 0.0 +es 04_res 2 242 2030 1.0 0.0 +es 05_nuclear 2 242 2030 0.0 0.0 +es 06_coal 2 242 2030 0.0 0.0 +es 07_gas 2 242 2030 0.0 0.0 +es 08_non-res 2 242 2030 0.0 0.0 +es 09_hydro_pump 2 242 2030 0.0 0.0 +es 01_solar 2 243 2030 1.0 0.0 +es 02_wind_on 2 243 2030 1.0 0.0 +es 03_wind_off 2 243 2030 1.0 0.0 +es 04_res 2 243 2030 1.0 0.0 +es 05_nuclear 2 243 2030 0.0 0.0 +es 06_coal 2 243 2030 0.0 0.0 +es 07_gas 2 243 2030 0.0 0.0 +es 08_non-res 2 243 2030 0.0 0.0 +es 09_hydro_pump 2 243 2030 0.0 0.0 +es 01_solar 2 244 2030 1.0 0.0 +es 02_wind_on 2 244 2030 1.0 0.0 +es 03_wind_off 2 244 2030 1.0 0.0 +es 04_res 2 244 2030 1.0 0.0 +es 05_nuclear 2 244 2030 0.0 0.0 +es 06_coal 2 244 2030 0.0 0.0 +es 07_gas 2 244 2030 0.0 0.0 +es 08_non-res 2 244 2030 0.0 0.0 +es 09_hydro_pump 2 244 2030 0.0 0.0 +es 01_solar 2 245 2030 1.0 0.0 +es 02_wind_on 2 245 2030 1.0 0.0 +es 03_wind_off 2 245 2030 1.0 0.0 +es 04_res 2 245 2030 1.0 0.0 +es 05_nuclear 2 245 2030 0.0 0.0 +es 06_coal 2 245 2030 0.0 0.0 +es 07_gas 2 245 2030 0.0 0.0 +es 08_non-res 2 245 2030 0.0 0.0 +es 09_hydro_pump 2 245 2030 0.0 0.0 +es 01_solar 2 246 2030 1.0 0.0 +es 02_wind_on 2 246 2030 1.0 0.0 +es 03_wind_off 2 246 2030 1.0 0.0 +es 04_res 2 246 2030 1.0 0.0 +es 05_nuclear 2 246 2030 0.0 0.0 +es 06_coal 2 246 2030 0.0 0.0 +es 07_gas 2 246 2030 0.0 0.0 +es 08_non-res 2 246 2030 0.0 0.0 +es 09_hydro_pump 2 246 2030 0.0 0.0 +es 01_solar 2 247 2030 1.0 0.0 +es 02_wind_on 2 247 2030 1.0 0.0 +es 03_wind_off 2 247 2030 1.0 0.0 +es 04_res 2 247 2030 1.0 0.0 +es 05_nuclear 2 247 2030 0.0 0.0 +es 06_coal 2 247 2030 0.0 0.0 +es 07_gas 2 247 2030 0.0 0.0 +es 08_non-res 2 247 2030 0.0 0.0 +es 09_hydro_pump 2 247 2030 0.0 0.0 +es 01_solar 2 248 2030 1.0 0.0 +es 02_wind_on 2 248 2030 1.0 0.0 +es 03_wind_off 2 248 2030 1.0 0.0 +es 04_res 2 248 2030 1.0 0.0 +es 05_nuclear 2 248 2030 0.0 0.0 +es 06_coal 2 248 2030 0.0 0.0 +es 07_gas 2 248 2030 0.0 0.0 +es 08_non-res 2 248 2030 0.0 0.0 +es 09_hydro_pump 2 248 2030 0.0 0.0 +es 01_solar 2 249 2030 1.0 0.0 +es 02_wind_on 2 249 2030 1.0 0.0 +es 03_wind_off 2 249 2030 1.0 0.0 +es 04_res 2 249 2030 1.0 0.0 +es 05_nuclear 2 249 2030 0.0 0.0 +es 06_coal 2 249 2030 0.0 0.0 +es 07_gas 2 249 2030 0.0 0.0 +es 08_non-res 2 249 2030 0.0 0.0 +es 09_hydro_pump 2 249 2030 0.0 0.0 +es 01_solar 2 250 2030 1.0 0.0 +es 02_wind_on 2 250 2030 1.0 0.0 +es 03_wind_off 2 250 2030 1.0 0.0 +es 04_res 2 250 2030 1.0 0.0 +es 05_nuclear 2 250 2030 1.0 0.0 +es 06_coal 2 250 2030 0.0 0.0 +es 07_gas 2 250 2030 0.0 0.0 +es 08_non-res 2 250 2030 0.0 0.0 +es 09_hydro_pump 2 250 2030 0.0 0.0 +es 01_solar 2 251 2030 1.0 0.0 +es 02_wind_on 2 251 2030 1.0 0.0 +es 03_wind_off 2 251 2030 1.0 0.0 +es 04_res 2 251 2030 1.0 0.0 +es 05_nuclear 2 251 2030 1.0 0.0 +es 06_coal 2 251 2030 0.0 0.0 +es 07_gas 2 251 2030 0.0 0.0 +es 08_non-res 2 251 2030 0.0 0.0 +es 09_hydro_pump 2 251 2030 0.0 0.0 +es 01_solar 2 252 2030 1.0 0.0 +es 02_wind_on 2 252 2030 1.0 0.0 +es 03_wind_off 2 252 2030 1.0 0.0 +es 04_res 2 252 2030 1.0 0.0 +es 05_nuclear 2 252 2030 1.0 0.0 +es 06_coal 2 252 2030 0.0 0.0 +es 07_gas 2 252 2030 0.0 0.0 +es 08_non-res 2 252 2030 0.0 0.0 +es 09_hydro_pump 2 252 2030 0.0 0.0 +es 01_solar 2 253 2030 1.0 0.0 +es 02_wind_on 2 253 2030 1.0 0.0 +es 03_wind_off 2 253 2030 1.0 0.0 +es 04_res 2 253 2030 1.0 0.0 +es 05_nuclear 2 253 2030 1.0 0.0 +es 06_coal 2 253 2030 0.0 0.0 +es 07_gas 2 253 2030 0.0 0.0 +es 08_non-res 2 253 2030 0.0 0.0 +es 09_hydro_pump 2 253 2030 0.0 0.0 +es 01_solar 2 254 2030 1.0 0.0 +es 02_wind_on 2 254 2030 1.0 0.0 +es 03_wind_off 2 254 2030 1.0 0.0 +es 04_res 2 254 2030 1.0 0.0 +es 05_nuclear 2 254 2030 1.0 0.0 +es 06_coal 2 254 2030 0.0 0.0 +es 07_gas 2 254 2030 0.0 0.0 +es 08_non-res 2 254 2030 0.0 0.0 +es 09_hydro_pump 2 254 2030 0.0 0.0 +es 01_solar 2 255 2030 1.0 0.0 +es 02_wind_on 2 255 2030 1.0 0.0 +es 03_wind_off 2 255 2030 1.0 0.0 +es 04_res 2 255 2030 1.0 0.0 +es 05_nuclear 2 255 2030 1.0 0.0 +es 06_coal 2 255 2030 0.0 0.0 +es 07_gas 2 255 2030 0.0 0.0 +es 08_non-res 2 255 2030 0.0 0.0 +es 09_hydro_pump 2 255 2030 0.0 0.0 +es 01_solar 2 256 2030 1.0 0.0 +es 02_wind_on 2 256 2030 1.0 0.0 +es 03_wind_off 2 256 2030 1.0 0.0 +es 04_res 2 256 2030 1.0 0.0 +es 05_nuclear 2 256 2030 1.0 0.0 +es 06_coal 2 256 2030 0.0 0.0 +es 07_gas 2 256 2030 0.0 0.0 +es 08_non-res 2 256 2030 0.0 0.0 +es 09_hydro_pump 2 256 2030 0.0 0.0 +es 01_solar 2 257 2030 1.0 0.0 +es 02_wind_on 2 257 2030 1.0 0.0 +es 03_wind_off 2 257 2030 1.0 0.0 +es 04_res 2 257 2030 1.0 0.0 +es 05_nuclear 2 257 2030 1.0 0.0 +es 06_coal 2 257 2030 0.0 0.0 +es 07_gas 2 257 2030 0.0 0.0 +es 08_non-res 2 257 2030 0.0 0.0 +es 09_hydro_pump 2 257 2030 0.0 0.0 +es 01_solar 2 258 2030 1.0 0.0 +es 02_wind_on 2 258 2030 1.0 0.0 +es 03_wind_off 2 258 2030 1.0 0.0 +es 04_res 2 258 2030 1.0 0.0 +es 05_nuclear 2 258 2030 1.0 0.0 +es 06_coal 2 258 2030 0.0 0.0 +es 07_gas 2 258 2030 0.0 0.0 +es 08_non-res 2 258 2030 0.0 0.0 +es 09_hydro_pump 2 258 2030 0.0 0.0 +es 01_solar 2 259 2030 1.0 0.0 +es 02_wind_on 2 259 2030 1.0 0.0 +es 03_wind_off 2 259 2030 1.0 0.0 +es 04_res 2 259 2030 1.0 0.0 +es 05_nuclear 2 259 2030 1.0 0.0 +es 06_coal 2 259 2030 0.0 0.0 +es 07_gas 2 259 2030 0.0 0.0 +es 08_non-res 2 259 2030 0.0 0.0 +es 09_hydro_pump 2 259 2030 0.0 0.0 +es 01_solar 2 260 2030 1.0 0.0 +es 02_wind_on 2 260 2030 1.0 0.0 +es 03_wind_off 2 260 2030 1.0 0.0 +es 04_res 2 260 2030 1.0 0.0 +es 05_nuclear 2 260 2030 1.0 0.0 +es 06_coal 2 260 2030 0.0 0.0 +es 07_gas 2 260 2030 0.0 0.0 +es 08_non-res 2 260 2030 0.0 0.0 +es 09_hydro_pump 2 260 2030 0.0 0.0 +es 01_solar 2 261 2030 1.0 0.0 +es 02_wind_on 2 261 2030 1.0 0.0 +es 03_wind_off 2 261 2030 1.0 0.0 +es 04_res 2 261 2030 1.0 0.0 +es 05_nuclear 2 261 2030 1.0 0.0 +es 06_coal 2 261 2030 0.0 0.0 +es 07_gas 2 261 2030 0.0 0.0 +es 08_non-res 2 261 2030 0.0 0.0 +es 09_hydro_pump 2 261 2030 0.0 0.0 +es 01_solar 2 262 2030 1.0 0.0 +es 02_wind_on 2 262 2030 1.0 0.0 +es 03_wind_off 2 262 2030 1.0 0.0 +es 04_res 2 262 2030 1.0 0.0 +es 05_nuclear 2 262 2030 1.0 0.0 +es 06_coal 2 262 2030 0.0 0.0 +es 07_gas 2 262 2030 0.0 0.0 +es 08_non-res 2 262 2030 0.0 0.0 +es 09_hydro_pump 2 262 2030 0.0 0.0 +es 01_solar 2 263 2030 1.0 0.0 +es 02_wind_on 2 263 2030 1.0 0.0 +es 03_wind_off 2 263 2030 1.0 0.0 +es 04_res 2 263 2030 1.0 0.0 +es 05_nuclear 2 263 2030 1.0 0.0 +es 06_coal 2 263 2030 0.0 0.0 +es 07_gas 2 263 2030 0.0 0.0 +es 08_non-res 2 263 2030 0.0 0.0 +es 09_hydro_pump 2 263 2030 0.0 0.0 +es 01_solar 2 264 2030 1.0 0.0 +es 02_wind_on 2 264 2030 1.0 0.0 +es 03_wind_off 2 264 2030 1.0 0.0 +es 04_res 2 264 2030 1.0 0.0 +es 05_nuclear 2 264 2030 1.0 0.0 +es 06_coal 2 264 2030 0.0 0.0 +es 07_gas 2 264 2030 0.0 0.0 +es 08_non-res 2 264 2030 0.0 0.0 +es 09_hydro_pump 2 264 2030 0.0 0.0 +es 01_solar 2 265 2030 1.0 0.0 +es 02_wind_on 2 265 2030 1.0 0.0 +es 03_wind_off 2 265 2030 1.0 0.0 +es 04_res 2 265 2030 1.0 0.0 +es 05_nuclear 2 265 2030 1.0 0.0 +es 06_coal 2 265 2030 0.0 0.0 +es 07_gas 2 265 2030 0.0 0.0 +es 08_non-res 2 265 2030 0.0 0.0 +es 09_hydro_pump 2 265 2030 0.0 0.0 +es 01_solar 2 266 2030 1.0 0.0 +es 02_wind_on 2 266 2030 1.0 0.0 +es 03_wind_off 2 266 2030 1.0 0.0 +es 04_res 2 266 2030 1.0 0.0 +es 05_nuclear 2 266 2030 1.0 0.0 +es 06_coal 2 266 2030 0.0 0.0 +es 07_gas 2 266 2030 0.0 0.0 +es 08_non-res 2 266 2030 0.0 0.0 +es 09_hydro_pump 2 266 2030 0.0 0.0 +es 01_solar 2 267 2030 1.0 0.0 +es 02_wind_on 2 267 2030 1.0 0.0 +es 03_wind_off 2 267 2030 1.0 0.0 +es 04_res 2 267 2030 1.0 0.0 +es 05_nuclear 2 267 2030 1.0 0.0 +es 06_coal 2 267 2030 0.0 0.0 +es 07_gas 2 267 2030 0.0 0.0 +es 08_non-res 2 267 2030 0.0 0.0 +es 09_hydro_pump 2 267 2030 0.0 0.0 +es 01_solar 2 268 2030 1.0 0.0 +es 02_wind_on 2 268 2030 1.0 0.0 +es 03_wind_off 2 268 2030 1.0 0.0 +es 04_res 2 268 2030 1.0 0.0 +es 05_nuclear 2 268 2030 1.0 0.0 +es 06_coal 2 268 2030 0.0 0.0 +es 07_gas 2 268 2030 0.0 0.0 +es 08_non-res 2 268 2030 0.0 0.0 +es 09_hydro_pump 2 268 2030 0.0 0.0 +es 01_solar 2 269 2030 1.0 0.0 +es 02_wind_on 2 269 2030 1.0 0.0 +es 03_wind_off 2 269 2030 1.0 0.0 +es 04_res 2 269 2030 1.0 0.0 +es 05_nuclear 2 269 2030 1.0 0.0 +es 06_coal 2 269 2030 0.0 0.0 +es 07_gas 2 269 2030 0.0 0.0 +es 08_non-res 2 269 2030 0.0 0.0 +es 09_hydro_pump 2 269 2030 0.0 0.0 +es 01_solar 2 270 2030 1.0 0.0 +es 02_wind_on 2 270 2030 1.0 0.0 +es 03_wind_off 2 270 2030 1.0 0.0 +es 04_res 2 270 2030 1.0 0.0 +es 05_nuclear 2 270 2030 1.0 0.0 +es 06_coal 2 270 2030 1.0 0.0 +es 07_gas 2 270 2030 0.0 0.0 +es 08_non-res 2 270 2030 0.0 0.0 +es 09_hydro_pump 2 270 2030 0.0 0.0 +es 01_solar 2 271 2030 1.0 0.0 +es 02_wind_on 2 271 2030 1.0 0.0 +es 03_wind_off 2 271 2030 1.0 0.0 +es 04_res 2 271 2030 1.0 0.0 +es 05_nuclear 2 271 2030 1.0 0.0 +es 06_coal 2 271 2030 1.0 0.0 +es 07_gas 2 271 2030 0.0 0.0 +es 08_non-res 2 271 2030 0.0 0.0 +es 09_hydro_pump 2 271 2030 0.0 0.0 +es 01_solar 2 272 2030 1.0 0.0 +es 02_wind_on 2 272 2030 1.0 0.0 +es 03_wind_off 2 272 2030 1.0 0.0 +es 04_res 2 272 2030 1.0 0.0 +es 05_nuclear 2 272 2030 1.0 0.0 +es 06_coal 2 272 2030 1.0 0.0 +es 07_gas 2 272 2030 0.0 0.0 +es 08_non-res 2 272 2030 0.0 0.0 +es 09_hydro_pump 2 272 2030 0.0 0.0 +es 01_solar 2 273 2030 1.0 0.0 +es 02_wind_on 2 273 2030 1.0 0.0 +es 03_wind_off 2 273 2030 1.0 0.0 +es 04_res 2 273 2030 1.0 0.0 +es 05_nuclear 2 273 2030 1.0 0.0 +es 06_coal 2 273 2030 1.0 0.0 +es 07_gas 2 273 2030 0.0 0.0 +es 08_non-res 2 273 2030 0.0 0.0 +es 09_hydro_pump 2 273 2030 0.0 0.0 +es 01_solar 2 274 2030 1.0 0.0 +es 02_wind_on 2 274 2030 1.0 0.0 +es 03_wind_off 2 274 2030 1.0 0.0 +es 04_res 2 274 2030 1.0 0.0 +es 05_nuclear 2 274 2030 1.0 0.0 +es 06_coal 2 274 2030 1.0 0.0 +es 07_gas 2 274 2030 0.0 0.0 +es 08_non-res 2 274 2030 0.0 0.0 +es 09_hydro_pump 2 274 2030 0.0 0.0 +es 01_solar 2 275 2030 1.0 0.0 +es 02_wind_on 2 275 2030 1.0 0.0 +es 03_wind_off 2 275 2030 1.0 0.0 +es 04_res 2 275 2030 1.0 0.0 +es 05_nuclear 2 275 2030 1.0 0.0 +es 06_coal 2 275 2030 1.0 0.0 +es 07_gas 2 275 2030 0.0 0.0 +es 08_non-res 2 275 2030 0.0 0.0 +es 09_hydro_pump 2 275 2030 0.0 0.0 +es 01_solar 2 276 2030 1.0 0.0 +es 02_wind_on 2 276 2030 1.0 0.0 +es 03_wind_off 2 276 2030 1.0 0.0 +es 04_res 2 276 2030 1.0 0.0 +es 05_nuclear 2 276 2030 1.0 0.0 +es 06_coal 2 276 2030 1.0 0.0 +es 07_gas 2 276 2030 0.0 0.0 +es 08_non-res 2 276 2030 0.0 0.0 +es 09_hydro_pump 2 276 2030 0.0 0.0 +es 01_solar 2 277 2030 1.0 0.0 +es 02_wind_on 2 277 2030 1.0 0.0 +es 03_wind_off 2 277 2030 1.0 0.0 +es 04_res 2 277 2030 1.0 0.0 +es 05_nuclear 2 277 2030 1.0 0.0 +es 06_coal 2 277 2030 1.0 0.0 +es 07_gas 2 277 2030 0.0 0.0 +es 08_non-res 2 277 2030 0.0 0.0 +es 09_hydro_pump 2 277 2030 0.0 0.0 +es 01_solar 2 278 2030 1.0 0.0 +es 02_wind_on 2 278 2030 1.0 0.0 +es 03_wind_off 2 278 2030 1.0 0.0 +es 04_res 2 278 2030 1.0 0.0 +es 05_nuclear 2 278 2030 1.0 0.0 +es 06_coal 2 278 2030 1.0 0.0 +es 07_gas 2 278 2030 0.0 0.0 +es 08_non-res 2 278 2030 0.0 0.0 +es 09_hydro_pump 2 278 2030 0.0 0.0 +es 01_solar 2 279 2030 1.0 0.0 +es 02_wind_on 2 279 2030 1.0 0.0 +es 03_wind_off 2 279 2030 1.0 0.0 +es 04_res 2 279 2030 1.0 0.0 +es 05_nuclear 2 279 2030 1.0 0.0 +es 06_coal 2 279 2030 1.0 0.0 +es 07_gas 2 279 2030 0.0 0.0 +es 08_non-res 2 279 2030 0.0 0.0 +es 09_hydro_pump 2 279 2030 0.0 0.0 +es 01_solar 2 280 2030 1.0 0.0 +es 02_wind_on 2 280 2030 1.0 0.0 +es 03_wind_off 2 280 2030 1.0 0.0 +es 04_res 2 280 2030 1.0 0.0 +es 05_nuclear 2 280 2030 1.0 0.0 +es 06_coal 2 280 2030 1.0 0.0 +es 07_gas 2 280 2030 0.0 0.0 +es 08_non-res 2 280 2030 0.0 0.0 +es 09_hydro_pump 2 280 2030 0.0 0.0 +es 01_solar 2 281 2030 1.0 0.0 +es 02_wind_on 2 281 2030 1.0 0.0 +es 03_wind_off 2 281 2030 1.0 0.0 +es 04_res 2 281 2030 1.0 0.0 +es 05_nuclear 2 281 2030 1.0 0.0 +es 06_coal 2 281 2030 1.0 0.0 +es 07_gas 2 281 2030 0.0 0.0 +es 08_non-res 2 281 2030 0.0 0.0 +es 09_hydro_pump 2 281 2030 0.0 0.0 +es 01_solar 2 282 2030 1.0 0.0 +es 02_wind_on 2 282 2030 1.0 0.0 +es 03_wind_off 2 282 2030 1.0 0.0 +es 04_res 2 282 2030 1.0 0.0 +es 05_nuclear 2 282 2030 1.0 0.0 +es 06_coal 2 282 2030 1.0 0.0 +es 07_gas 2 282 2030 0.0 0.0 +es 08_non-res 2 282 2030 0.0 0.0 +es 09_hydro_pump 2 282 2030 0.0 0.0 +es 01_solar 2 283 2030 1.0 0.0 +es 02_wind_on 2 283 2030 1.0 0.0 +es 03_wind_off 2 283 2030 1.0 0.0 +es 04_res 2 283 2030 1.0 0.0 +es 05_nuclear 2 283 2030 1.0 0.0 +es 06_coal 2 283 2030 1.0 0.0 +es 07_gas 2 283 2030 0.0 0.0 +es 08_non-res 2 283 2030 0.0 0.0 +es 09_hydro_pump 2 283 2030 0.0 0.0 +es 01_solar 2 284 2030 1.0 0.0 +es 02_wind_on 2 284 2030 1.0 0.0 +es 03_wind_off 2 284 2030 1.0 0.0 +es 04_res 2 284 2030 1.0 0.0 +es 05_nuclear 2 284 2030 1.0 0.0 +es 06_coal 2 284 2030 1.0 0.0 +es 07_gas 2 284 2030 0.0 0.0 +es 08_non-res 2 284 2030 0.0 0.0 +es 09_hydro_pump 2 284 2030 0.0 0.0 +es 01_solar 2 285 2030 1.0 0.0 +es 02_wind_on 2 285 2030 1.0 0.0 +es 03_wind_off 2 285 2030 1.0 0.0 +es 04_res 2 285 2030 1.0 0.0 +es 05_nuclear 2 285 2030 1.0 0.0 +es 06_coal 2 285 2030 1.0 0.0 +es 07_gas 2 285 2030 0.0 0.0 +es 08_non-res 2 285 2030 0.0 0.0 +es 09_hydro_pump 2 285 2030 0.0 0.0 +es 01_solar 2 286 2030 1.0 0.0 +es 02_wind_on 2 286 2030 1.0 0.0 +es 03_wind_off 2 286 2030 1.0 0.0 +es 04_res 2 286 2030 1.0 0.0 +es 05_nuclear 2 286 2030 1.0 0.0 +es 06_coal 2 286 2030 1.0 0.0 +es 07_gas 2 286 2030 0.0 0.0 +es 08_non-res 2 286 2030 0.0 0.0 +es 09_hydro_pump 2 286 2030 0.0 0.0 +es 01_solar 2 287 2030 1.0 0.0 +es 02_wind_on 2 287 2030 1.0 0.0 +es 03_wind_off 2 287 2030 1.0 0.0 +es 04_res 2 287 2030 1.0 0.0 +es 05_nuclear 2 287 2030 1.0 0.0 +es 06_coal 2 287 2030 1.0 0.0 +es 07_gas 2 287 2030 0.0 0.0 +es 08_non-res 2 287 2030 0.0 0.0 +es 09_hydro_pump 2 287 2030 0.0 0.0 +es 01_solar 2 288 2030 1.0 0.0 +es 02_wind_on 2 288 2030 1.0 0.0 +es 03_wind_off 2 288 2030 1.0 0.0 +es 04_res 2 288 2030 1.0 0.0 +es 05_nuclear 2 288 2030 1.0 0.0 +es 06_coal 2 288 2030 1.0 0.0 +es 07_gas 2 288 2030 0.0 0.0 +es 08_non-res 2 288 2030 0.0 0.0 +es 09_hydro_pump 2 288 2030 0.0 0.0 +es 01_solar 2 289 2030 1.0 0.0 +es 02_wind_on 2 289 2030 1.0 0.0 +es 03_wind_off 2 289 2030 1.0 0.0 +es 04_res 2 289 2030 1.0 0.0 +es 05_nuclear 2 289 2030 1.0 0.0 +es 06_coal 2 289 2030 1.0 0.0 +es 07_gas 2 289 2030 0.0 0.0 +es 08_non-res 2 289 2030 0.0 0.0 +es 09_hydro_pump 2 289 2030 0.0 0.0 +es 01_solar 2 290 2030 1.0 0.0 +es 02_wind_on 2 290 2030 1.0 0.0 +es 03_wind_off 2 290 2030 1.0 0.0 +es 04_res 2 290 2030 1.0 0.0 +es 05_nuclear 2 290 2030 1.0 0.0 +es 06_coal 2 290 2030 1.0 0.0 +es 07_gas 2 290 2030 1.0 0.0 +es 08_non-res 2 290 2030 0.0 0.0 +es 09_hydro_pump 2 290 2030 0.0 0.0 +es 01_solar 2 291 2030 1.0 0.0 +es 02_wind_on 2 291 2030 1.0 0.0 +es 03_wind_off 2 291 2030 1.0 0.0 +es 04_res 2 291 2030 1.0 0.0 +es 05_nuclear 2 291 2030 1.0 0.0 +es 06_coal 2 291 2030 1.0 0.0 +es 07_gas 2 291 2030 1.0 0.0 +es 08_non-res 2 291 2030 0.0 0.0 +es 09_hydro_pump 2 291 2030 0.0 0.0 +es 01_solar 2 292 2030 1.0 0.0 +es 02_wind_on 2 292 2030 1.0 0.0 +es 03_wind_off 2 292 2030 1.0 0.0 +es 04_res 2 292 2030 1.0 0.0 +es 05_nuclear 2 292 2030 1.0 0.0 +es 06_coal 2 292 2030 1.0 0.0 +es 07_gas 2 292 2030 1.0 0.0 +es 08_non-res 2 292 2030 0.0 0.0 +es 09_hydro_pump 2 292 2030 0.0 0.0 +es 01_solar 2 293 2030 1.0 0.0 +es 02_wind_on 2 293 2030 1.0 0.0 +es 03_wind_off 2 293 2030 1.0 0.0 +es 04_res 2 293 2030 1.0 0.0 +es 05_nuclear 2 293 2030 1.0 0.0 +es 06_coal 2 293 2030 1.0 0.0 +es 07_gas 2 293 2030 1.0 0.0 +es 08_non-res 2 293 2030 0.0 0.0 +es 09_hydro_pump 2 293 2030 0.0 0.0 +es 01_solar 2 294 2030 1.0 0.0 +es 02_wind_on 2 294 2030 1.0 0.0 +es 03_wind_off 2 294 2030 1.0 0.0 +es 04_res 2 294 2030 1.0 0.0 +es 05_nuclear 2 294 2030 1.0 0.0 +es 06_coal 2 294 2030 1.0 0.0 +es 07_gas 2 294 2030 1.0 0.0 +es 08_non-res 2 294 2030 0.0 0.0 +es 09_hydro_pump 2 294 2030 0.0 0.0 +es 01_solar 2 295 2030 1.0 0.0 +es 02_wind_on 2 295 2030 1.0 0.0 +es 03_wind_off 2 295 2030 1.0 0.0 +es 04_res 2 295 2030 1.0 0.0 +es 05_nuclear 2 295 2030 1.0 0.0 +es 06_coal 2 295 2030 1.0 0.0 +es 07_gas 2 295 2030 1.0 0.0 +es 08_non-res 2 295 2030 0.0 0.0 +es 09_hydro_pump 2 295 2030 0.0 0.0 +es 01_solar 2 296 2030 1.0 0.0 +es 02_wind_on 2 296 2030 1.0 0.0 +es 03_wind_off 2 296 2030 1.0 0.0 +es 04_res 2 296 2030 1.0 0.0 +es 05_nuclear 2 296 2030 1.0 0.0 +es 06_coal 2 296 2030 1.0 0.0 +es 07_gas 2 296 2030 1.0 0.0 +es 08_non-res 2 296 2030 0.0 0.0 +es 09_hydro_pump 2 296 2030 0.0 0.0 +es 01_solar 2 297 2030 1.0 0.0 +es 02_wind_on 2 297 2030 1.0 0.0 +es 03_wind_off 2 297 2030 1.0 0.0 +es 04_res 2 297 2030 1.0 0.0 +es 05_nuclear 2 297 2030 1.0 0.0 +es 06_coal 2 297 2030 1.0 0.0 +es 07_gas 2 297 2030 1.0 0.0 +es 08_non-res 2 297 2030 0.0 0.0 +es 09_hydro_pump 2 297 2030 0.0 0.0 +es 01_solar 2 298 2030 1.0 0.0 +es 02_wind_on 2 298 2030 1.0 0.0 +es 03_wind_off 2 298 2030 1.0 0.0 +es 04_res 2 298 2030 1.0 0.0 +es 05_nuclear 2 298 2030 1.0 0.0 +es 06_coal 2 298 2030 1.0 0.0 +es 07_gas 2 298 2030 1.0 0.0 +es 08_non-res 2 298 2030 0.0 0.0 +es 09_hydro_pump 2 298 2030 0.0 0.0 +es 01_solar 2 299 2030 1.0 0.0 +es 02_wind_on 2 299 2030 1.0 0.0 +es 03_wind_off 2 299 2030 1.0 0.0 +es 04_res 2 299 2030 1.0 0.0 +es 05_nuclear 2 299 2030 1.0 0.0 +es 06_coal 2 299 2030 1.0 0.0 +es 07_gas 2 299 2030 1.0 0.0 +es 08_non-res 2 299 2030 0.0 0.0 +es 09_hydro_pump 2 299 2030 0.0 0.0 +es 01_solar 2 300 2030 1.0 0.0 +es 02_wind_on 2 300 2030 1.0 0.0 +es 03_wind_off 2 300 2030 1.0 0.0 +es 04_res 2 300 2030 1.0 0.0 +es 05_nuclear 2 300 2030 1.0 0.0 +es 06_coal 2 300 2030 1.0 0.0 +es 07_gas 2 300 2030 1.0 0.0 +es 08_non-res 2 300 2030 0.0 0.0 +es 09_hydro_pump 2 300 2030 0.0 0.0 +es 01_solar 2 301 2030 1.0 0.0 +es 02_wind_on 2 301 2030 1.0 0.0 +es 03_wind_off 2 301 2030 1.0 0.0 +es 04_res 2 301 2030 1.0 0.0 +es 05_nuclear 2 301 2030 1.0 0.0 +es 06_coal 2 301 2030 1.0 0.0 +es 07_gas 2 301 2030 1.0 0.0 +es 08_non-res 2 301 2030 0.0 0.0 +es 09_hydro_pump 2 301 2030 0.0 0.0 +es 01_solar 2 302 2030 1.0 0.0 +es 02_wind_on 2 302 2030 1.0 0.0 +es 03_wind_off 2 302 2030 1.0 0.0 +es 04_res 2 302 2030 1.0 0.0 +es 05_nuclear 2 302 2030 1.0 0.0 +es 06_coal 2 302 2030 1.0 0.0 +es 07_gas 2 302 2030 1.0 0.0 +es 08_non-res 2 302 2030 0.0 0.0 +es 09_hydro_pump 2 302 2030 0.0 0.0 +es 01_solar 2 303 2030 1.0 0.0 +es 02_wind_on 2 303 2030 1.0 0.0 +es 03_wind_off 2 303 2030 1.0 0.0 +es 04_res 2 303 2030 1.0 0.0 +es 05_nuclear 2 303 2030 1.0 0.0 +es 06_coal 2 303 2030 1.0 0.0 +es 07_gas 2 303 2030 1.0 0.0 +es 08_non-res 2 303 2030 0.0 0.0 +es 09_hydro_pump 2 303 2030 0.0 0.0 +es 01_solar 2 304 2030 1.0 0.0 +es 02_wind_on 2 304 2030 1.0 0.0 +es 03_wind_off 2 304 2030 1.0 0.0 +es 04_res 2 304 2030 1.0 0.0 +es 05_nuclear 2 304 2030 1.0 0.0 +es 06_coal 2 304 2030 1.0 0.0 +es 07_gas 2 304 2030 1.0 0.0 +es 08_non-res 2 304 2030 0.0 0.0 +es 09_hydro_pump 2 304 2030 0.0 0.0 +es 01_solar 2 305 2030 1.0 0.0 +es 02_wind_on 2 305 2030 1.0 0.0 +es 03_wind_off 2 305 2030 1.0 0.0 +es 04_res 2 305 2030 1.0 0.0 +es 05_nuclear 2 305 2030 1.0 0.0 +es 06_coal 2 305 2030 1.0 0.0 +es 07_gas 2 305 2030 1.0 0.0 +es 08_non-res 2 305 2030 0.0 0.0 +es 09_hydro_pump 2 305 2030 0.0 0.0 +es 01_solar 2 306 2030 1.0 0.0 +es 02_wind_on 2 306 2030 1.0 0.0 +es 03_wind_off 2 306 2030 1.0 0.0 +es 04_res 2 306 2030 1.0 0.0 +es 05_nuclear 2 306 2030 1.0 0.0 +es 06_coal 2 306 2030 1.0 0.0 +es 07_gas 2 306 2030 1.0 0.0 +es 08_non-res 2 306 2030 0.0 0.0 +es 09_hydro_pump 2 306 2030 0.0 0.0 +es 01_solar 2 307 2030 1.0 0.0 +es 02_wind_on 2 307 2030 1.0 0.0 +es 03_wind_off 2 307 2030 1.0 0.0 +es 04_res 2 307 2030 1.0 0.0 +es 05_nuclear 2 307 2030 1.0 0.0 +es 06_coal 2 307 2030 1.0 0.0 +es 07_gas 2 307 2030 1.0 0.0 +es 08_non-res 2 307 2030 0.0 0.0 +es 09_hydro_pump 2 307 2030 0.0 0.0 +es 01_solar 2 308 2030 1.0 0.0 +es 02_wind_on 2 308 2030 1.0 0.0 +es 03_wind_off 2 308 2030 1.0 0.0 +es 04_res 2 308 2030 1.0 0.0 +es 05_nuclear 2 308 2030 1.0 0.0 +es 06_coal 2 308 2030 1.0 0.0 +es 07_gas 2 308 2030 1.0 0.0 +es 08_non-res 2 308 2030 0.0 0.0 +es 09_hydro_pump 2 308 2030 0.0 0.0 +es 01_solar 2 309 2030 1.0 0.0 +es 02_wind_on 2 309 2030 1.0 0.0 +es 03_wind_off 2 309 2030 1.0 0.0 +es 04_res 2 309 2030 1.0 0.0 +es 05_nuclear 2 309 2030 1.0 0.0 +es 06_coal 2 309 2030 1.0 0.0 +es 07_gas 2 309 2030 1.0 0.0 +es 08_non-res 2 309 2030 0.0 0.0 +es 09_hydro_pump 2 309 2030 0.0 0.0 +es 01_solar 2 310 2030 1.0 0.0 +es 02_wind_on 2 310 2030 1.0 0.0 +es 03_wind_off 2 310 2030 1.0 0.0 +es 04_res 2 310 2030 1.0 0.0 +es 05_nuclear 2 310 2030 1.0 0.0 +es 06_coal 2 310 2030 1.0 0.0 +es 07_gas 2 310 2030 1.0 0.0 +es 08_non-res 2 310 2030 1.0 0.0 +es 09_hydro_pump 2 310 2030 0.0 0.0 +es 01_solar 2 311 2030 1.0 0.0 +es 02_wind_on 2 311 2030 1.0 0.0 +es 03_wind_off 2 311 2030 1.0 0.0 +es 04_res 2 311 2030 1.0 0.0 +es 05_nuclear 2 311 2030 1.0 0.0 +es 06_coal 2 311 2030 1.0 0.0 +es 07_gas 2 311 2030 1.0 0.0 +es 08_non-res 2 311 2030 1.0 0.0 +es 09_hydro_pump 2 311 2030 0.0 0.0 +es 01_solar 2 312 2030 1.0 0.0 +es 02_wind_on 2 312 2030 1.0 0.0 +es 03_wind_off 2 312 2030 1.0 0.0 +es 04_res 2 312 2030 1.0 0.0 +es 05_nuclear 2 312 2030 1.0 0.0 +es 06_coal 2 312 2030 1.0 0.0 +es 07_gas 2 312 2030 1.0 0.0 +es 08_non-res 2 312 2030 1.0 0.0 +es 09_hydro_pump 2 312 2030 0.0 0.0 +es 01_solar 2 313 2030 1.0 0.0 +es 02_wind_on 2 313 2030 1.0 0.0 +es 03_wind_off 2 313 2030 1.0 0.0 +es 04_res 2 313 2030 1.0 0.0 +es 05_nuclear 2 313 2030 1.0 0.0 +es 06_coal 2 313 2030 1.0 0.0 +es 07_gas 2 313 2030 1.0 0.0 +es 08_non-res 2 313 2030 1.0 0.0 +es 09_hydro_pump 2 313 2030 0.0 0.0 +es 01_solar 2 314 2030 1.0 0.0 +es 02_wind_on 2 314 2030 1.0 0.0 +es 03_wind_off 2 314 2030 1.0 0.0 +es 04_res 2 314 2030 1.0 0.0 +es 05_nuclear 2 314 2030 1.0 0.0 +es 06_coal 2 314 2030 1.0 0.0 +es 07_gas 2 314 2030 1.0 0.0 +es 08_non-res 2 314 2030 1.0 0.0 +es 09_hydro_pump 2 314 2030 0.0 0.0 +es 01_solar 2 315 2030 1.0 0.0 +es 02_wind_on 2 315 2030 1.0 0.0 +es 03_wind_off 2 315 2030 1.0 0.0 +es 04_res 2 315 2030 1.0 0.0 +es 05_nuclear 2 315 2030 1.0 0.0 +es 06_coal 2 315 2030 1.0 0.0 +es 07_gas 2 315 2030 1.0 0.0 +es 08_non-res 2 315 2030 1.0 0.0 +es 09_hydro_pump 2 315 2030 0.0 0.0 +es 01_solar 2 316 2030 1.0 0.0 +es 02_wind_on 2 316 2030 1.0 0.0 +es 03_wind_off 2 316 2030 1.0 0.0 +es 04_res 2 316 2030 1.0 0.0 +es 05_nuclear 2 316 2030 1.0 0.0 +es 06_coal 2 316 2030 1.0 0.0 +es 07_gas 2 316 2030 1.0 0.0 +es 08_non-res 2 316 2030 1.0 0.0 +es 09_hydro_pump 2 316 2030 0.0 0.0 +es 01_solar 2 317 2030 1.0 0.0 +es 02_wind_on 2 317 2030 1.0 0.0 +es 03_wind_off 2 317 2030 1.0 0.0 +es 04_res 2 317 2030 1.0 0.0 +es 05_nuclear 2 317 2030 1.0 0.0 +es 06_coal 2 317 2030 1.0 0.0 +es 07_gas 2 317 2030 1.0 0.0 +es 08_non-res 2 317 2030 1.0 0.0 +es 09_hydro_pump 2 317 2030 0.0 0.0 +es 01_solar 2 318 2030 1.0 0.0 +es 02_wind_on 2 318 2030 1.0 0.0 +es 03_wind_off 2 318 2030 1.0 0.0 +es 04_res 2 318 2030 1.0 0.0 +es 05_nuclear 2 318 2030 1.0 0.0 +es 06_coal 2 318 2030 1.0 0.0 +es 07_gas 2 318 2030 1.0 0.0 +es 08_non-res 2 318 2030 1.0 0.0 +es 09_hydro_pump 2 318 2030 0.0 0.0 +es 01_solar 2 319 2030 1.0 0.0 +es 02_wind_on 2 319 2030 1.0 0.0 +es 03_wind_off 2 319 2030 1.0 0.0 +es 04_res 2 319 2030 1.0 0.0 +es 05_nuclear 2 319 2030 1.0 0.0 +es 06_coal 2 319 2030 1.0 0.0 +es 07_gas 2 319 2030 1.0 0.0 +es 08_non-res 2 319 2030 1.0 0.0 +es 09_hydro_pump 2 319 2030 0.0 0.0 +es 01_solar 2 320 2030 1.0 0.0 +es 02_wind_on 2 320 2030 1.0 0.0 +es 03_wind_off 2 320 2030 1.0 0.0 +es 04_res 2 320 2030 1.0 0.0 +es 05_nuclear 2 320 2030 1.0 0.0 +es 06_coal 2 320 2030 1.0 0.0 +es 07_gas 2 320 2030 1.0 0.0 +es 08_non-res 2 320 2030 1.0 0.0 +es 09_hydro_pump 2 320 2030 0.0 0.0 +es 01_solar 2 321 2030 1.0 0.0 +es 02_wind_on 2 321 2030 1.0 0.0 +es 03_wind_off 2 321 2030 1.0 0.0 +es 04_res 2 321 2030 1.0 0.0 +es 05_nuclear 2 321 2030 1.0 0.0 +es 06_coal 2 321 2030 1.0 0.0 +es 07_gas 2 321 2030 1.0 0.0 +es 08_non-res 2 321 2030 1.0 0.0 +es 09_hydro_pump 2 321 2030 0.0 0.0 +es 01_solar 2 322 2030 1.0 0.0 +es 02_wind_on 2 322 2030 1.0 0.0 +es 03_wind_off 2 322 2030 1.0 0.0 +es 04_res 2 322 2030 1.0 0.0 +es 05_nuclear 2 322 2030 1.0 0.0 +es 06_coal 2 322 2030 1.0 0.0 +es 07_gas 2 322 2030 1.0 0.0 +es 08_non-res 2 322 2030 1.0 0.0 +es 09_hydro_pump 2 322 2030 0.0 0.0 +es 01_solar 2 323 2030 1.0 0.0 +es 02_wind_on 2 323 2030 1.0 0.0 +es 03_wind_off 2 323 2030 1.0 0.0 +es 04_res 2 323 2030 1.0 0.0 +es 05_nuclear 2 323 2030 1.0 0.0 +es 06_coal 2 323 2030 1.0 0.0 +es 07_gas 2 323 2030 1.0 0.0 +es 08_non-res 2 323 2030 1.0 0.0 +es 09_hydro_pump 2 323 2030 0.0 0.0 +es 01_solar 2 324 2030 1.0 0.0 +es 02_wind_on 2 324 2030 1.0 0.0 +es 03_wind_off 2 324 2030 1.0 0.0 +es 04_res 2 324 2030 1.0 0.0 +es 05_nuclear 2 324 2030 1.0 0.0 +es 06_coal 2 324 2030 1.0 0.0 +es 07_gas 2 324 2030 1.0 0.0 +es 08_non-res 2 324 2030 1.0 0.0 +es 09_hydro_pump 2 324 2030 0.0 0.0 +es 01_solar 2 325 2030 1.0 0.0 +es 02_wind_on 2 325 2030 1.0 0.0 +es 03_wind_off 2 325 2030 1.0 0.0 +es 04_res 2 325 2030 1.0 0.0 +es 05_nuclear 2 325 2030 1.0 0.0 +es 06_coal 2 325 2030 1.0 0.0 +es 07_gas 2 325 2030 1.0 0.0 +es 08_non-res 2 325 2030 1.0 0.0 +es 09_hydro_pump 2 325 2030 0.0 0.0 +es 01_solar 2 326 2030 1.0 0.0 +es 02_wind_on 2 326 2030 1.0 0.0 +es 03_wind_off 2 326 2030 1.0 0.0 +es 04_res 2 326 2030 1.0 0.0 +es 05_nuclear 2 326 2030 1.0 0.0 +es 06_coal 2 326 2030 1.0 0.0 +es 07_gas 2 326 2030 1.0 0.0 +es 08_non-res 2 326 2030 1.0 0.0 +es 09_hydro_pump 2 326 2030 0.0 0.0 +es 01_solar 2 327 2030 1.0 0.0 +es 02_wind_on 2 327 2030 1.0 0.0 +es 03_wind_off 2 327 2030 1.0 0.0 +es 04_res 2 327 2030 1.0 0.0 +es 05_nuclear 2 327 2030 1.0 0.0 +es 06_coal 2 327 2030 1.0 0.0 +es 07_gas 2 327 2030 1.0 0.0 +es 08_non-res 2 327 2030 1.0 0.0 +es 09_hydro_pump 2 327 2030 0.0 0.0 +es 01_solar 2 328 2030 1.0 0.0 +es 02_wind_on 2 328 2030 1.0 0.0 +es 03_wind_off 2 328 2030 1.0 0.0 +es 04_res 2 328 2030 1.0 0.0 +es 05_nuclear 2 328 2030 1.0 0.0 +es 06_coal 2 328 2030 1.0 0.0 +es 07_gas 2 328 2030 1.0 0.0 +es 08_non-res 2 328 2030 1.0 0.0 +es 09_hydro_pump 2 328 2030 0.0 0.0 +es 01_solar 2 329 2030 1.0 0.0 +es 02_wind_on 2 329 2030 1.0 0.0 +es 03_wind_off 2 329 2030 1.0 0.0 +es 04_res 2 329 2030 1.0 0.0 +es 05_nuclear 2 329 2030 1.0 0.0 +es 06_coal 2 329 2030 1.0 0.0 +es 07_gas 2 329 2030 1.0 0.0 +es 08_non-res 2 329 2030 1.0 0.0 +es 09_hydro_pump 2 329 2030 0.0 0.0 +es 01_solar 2 330 2030 1.0 0.0 +es 02_wind_on 2 330 2030 1.0 0.0 +es 03_wind_off 2 330 2030 1.0 0.0 +es 04_res 2 330 2030 1.0 0.0 +es 05_nuclear 2 330 2030 1.0 0.0 +es 06_coal 2 330 2030 1.0 0.0 +es 07_gas 2 330 2030 1.0 0.0 +es 08_non-res 2 330 2030 1.0 0.0 +es 09_hydro_pump 2 330 2030 1.0 0.0 +es 01_solar 2 331 2030 1.0 0.0 +es 02_wind_on 2 331 2030 1.0 0.0 +es 03_wind_off 2 331 2030 1.0 0.0 +es 04_res 2 331 2030 1.0 0.0 +es 05_nuclear 2 331 2030 1.0 0.0 +es 06_coal 2 331 2030 1.0 0.0 +es 07_gas 2 331 2030 1.0 0.0 +es 08_non-res 2 331 2030 1.0 0.0 +es 09_hydro_pump 2 331 2030 1.0 0.0 +es 01_solar 2 332 2030 1.0 0.0 +es 02_wind_on 2 332 2030 1.0 0.0 +es 03_wind_off 2 332 2030 1.0 0.0 +es 04_res 2 332 2030 1.0 0.0 +es 05_nuclear 2 332 2030 1.0 0.0 +es 06_coal 2 332 2030 1.0 0.0 +es 07_gas 2 332 2030 1.0 0.0 +es 08_non-res 2 332 2030 1.0 0.0 +es 09_hydro_pump 2 332 2030 1.0 0.0 +es 01_solar 2 333 2030 1.0 0.0 +es 02_wind_on 2 333 2030 1.0 0.0 +es 03_wind_off 2 333 2030 1.0 0.0 +es 04_res 2 333 2030 1.0 0.0 +es 05_nuclear 2 333 2030 1.0 0.0 +es 06_coal 2 333 2030 1.0 0.0 +es 07_gas 2 333 2030 1.0 0.0 +es 08_non-res 2 333 2030 1.0 0.0 +es 09_hydro_pump 2 333 2030 1.0 0.0 +es 01_solar 2 334 2030 1.0 0.0 +es 02_wind_on 2 334 2030 1.0 0.0 +es 03_wind_off 2 334 2030 1.0 0.0 +es 04_res 2 334 2030 1.0 0.0 +es 05_nuclear 2 334 2030 1.0 0.0 +es 06_coal 2 334 2030 1.0 0.0 +es 07_gas 2 334 2030 1.0 0.0 +es 08_non-res 2 334 2030 1.0 0.0 +es 09_hydro_pump 2 334 2030 1.0 0.0 +es 01_solar 2 335 2030 1.0 0.0 +es 02_wind_on 2 335 2030 1.0 0.0 +es 03_wind_off 2 335 2030 1.0 0.0 +es 04_res 2 335 2030 1.0 0.0 +es 05_nuclear 2 335 2030 1.0 0.0 +es 06_coal 2 335 2030 1.0 0.0 +es 07_gas 2 335 2030 1.0 0.0 +es 08_non-res 2 335 2030 1.0 0.0 +es 09_hydro_pump 2 335 2030 1.0 0.0 +es 01_solar 2 336 2030 1.0 0.0 +es 02_wind_on 2 336 2030 1.0 0.0 +es 03_wind_off 2 336 2030 1.0 0.0 +es 04_res 2 336 2030 1.0 0.0 +es 05_nuclear 2 336 2030 1.0 0.0 +es 06_coal 2 336 2030 1.0 0.0 +es 07_gas 2 336 2030 1.0 0.0 +es 08_non-res 2 336 2030 1.0 0.0 +es 09_hydro_pump 2 336 2030 1.0 0.0 +fr 01_solar 2 1 2030 0.0 0.0 +fr 02_wind_on 2 1 2030 0.0 0.0 +fr 03_wind_off 2 1 2030 0.0 0.0 +fr 04_res 2 1 2030 0.0 0.0 +fr 05_nuclear 2 1 2030 0.0 0.0 +fr 06_coal 2 1 2030 0.0 0.0 +fr 07_gas 2 1 2030 0.0 0.0 +fr 08_non-res 2 1 2030 0.0 0.0 +fr 09_hydro_pump 2 1 2030 0.0 0.0 +fr 01_solar 2 2 2030 1.0 0.0 +fr 02_wind_on 2 2 2030 0.0 0.0 +fr 03_wind_off 2 2 2030 0.0 0.0 +fr 04_res 2 2 2030 0.0 0.0 +fr 05_nuclear 2 2 2030 0.0 0.0 +fr 06_coal 2 2 2030 0.0 0.0 +fr 07_gas 2 2 2030 0.0 0.0 +fr 08_non-res 2 2 2030 0.0 0.0 +fr 09_hydro_pump 2 2 2030 0.0 0.0 +fr 01_solar 2 3 2030 1.0 0.0 +fr 02_wind_on 2 3 2030 0.0 0.0 +fr 03_wind_off 2 3 2030 0.0 0.0 +fr 04_res 2 3 2030 0.0 0.0 +fr 05_nuclear 2 3 2030 0.0 0.0 +fr 06_coal 2 3 2030 0.0 0.0 +fr 07_gas 2 3 2030 0.0 0.0 +fr 08_non-res 2 3 2030 0.0 0.0 +fr 09_hydro_pump 2 3 2030 0.0 0.0 +fr 01_solar 2 4 2030 1.0 0.0 +fr 02_wind_on 2 4 2030 0.0 0.0 +fr 03_wind_off 2 4 2030 0.0 0.0 +fr 04_res 2 4 2030 0.0 0.0 +fr 05_nuclear 2 4 2030 0.0 0.0 +fr 06_coal 2 4 2030 0.0 0.0 +fr 07_gas 2 4 2030 0.0 0.0 +fr 08_non-res 2 4 2030 0.0 0.0 +fr 09_hydro_pump 2 4 2030 0.0 0.0 +fr 01_solar 2 5 2030 1.0 0.0 +fr 02_wind_on 2 5 2030 0.0 0.0 +fr 03_wind_off 2 5 2030 0.0 0.0 +fr 04_res 2 5 2030 0.0 0.0 +fr 05_nuclear 2 5 2030 0.0 0.0 +fr 06_coal 2 5 2030 0.0 0.0 +fr 07_gas 2 5 2030 0.0 0.0 +fr 08_non-res 2 5 2030 0.0 0.0 +fr 09_hydro_pump 2 5 2030 0.0 0.0 +fr 01_solar 2 6 2030 1.0 0.0 +fr 02_wind_on 2 6 2030 0.0 0.0 +fr 03_wind_off 2 6 2030 0.0 0.0 +fr 04_res 2 6 2030 0.0 0.0 +fr 05_nuclear 2 6 2030 0.0 0.0 +fr 06_coal 2 6 2030 0.0 0.0 +fr 07_gas 2 6 2030 0.0 0.0 +fr 08_non-res 2 6 2030 0.0 0.0 +fr 09_hydro_pump 2 6 2030 0.0 0.0 +fr 01_solar 2 7 2030 1.0 0.0 +fr 02_wind_on 2 7 2030 0.0 0.0 +fr 03_wind_off 2 7 2030 0.0 0.0 +fr 04_res 2 7 2030 0.0 0.0 +fr 05_nuclear 2 7 2030 0.0 0.0 +fr 06_coal 2 7 2030 0.0 0.0 +fr 07_gas 2 7 2030 0.0 0.0 +fr 08_non-res 2 7 2030 0.0 0.0 +fr 09_hydro_pump 2 7 2030 0.0 0.0 +fr 01_solar 2 8 2030 1.0 0.0 +fr 02_wind_on 2 8 2030 0.0 0.0 +fr 03_wind_off 2 8 2030 0.0 0.0 +fr 04_res 2 8 2030 0.0 0.0 +fr 05_nuclear 2 8 2030 0.0 0.0 +fr 06_coal 2 8 2030 0.0 0.0 +fr 07_gas 2 8 2030 0.0 0.0 +fr 08_non-res 2 8 2030 0.0 0.0 +fr 09_hydro_pump 2 8 2030 0.0 0.0 +fr 01_solar 2 9 2030 1.0 0.0 +fr 02_wind_on 2 9 2030 0.0 0.0 +fr 03_wind_off 2 9 2030 0.0 0.0 +fr 04_res 2 9 2030 0.0 0.0 +fr 05_nuclear 2 9 2030 0.0 0.0 +fr 06_coal 2 9 2030 0.0 0.0 +fr 07_gas 2 9 2030 0.0 0.0 +fr 08_non-res 2 9 2030 0.0 0.0 +fr 09_hydro_pump 2 9 2030 0.0 0.0 +fr 01_solar 2 10 2030 1.0 0.0 +fr 02_wind_on 2 10 2030 0.0 0.0 +fr 03_wind_off 2 10 2030 0.0 0.0 +fr 04_res 2 10 2030 0.0 0.0 +fr 05_nuclear 2 10 2030 0.0 0.0 +fr 06_coal 2 10 2030 0.0 0.0 +fr 07_gas 2 10 2030 0.0 0.0 +fr 08_non-res 2 10 2030 0.0 0.0 +fr 09_hydro_pump 2 10 2030 0.0 0.0 +fr 01_solar 2 11 2030 1.0 0.0 +fr 02_wind_on 2 11 2030 0.0 0.0 +fr 03_wind_off 2 11 2030 0.0 0.0 +fr 04_res 2 11 2030 0.0 0.0 +fr 05_nuclear 2 11 2030 0.0 0.0 +fr 06_coal 2 11 2030 0.0 0.0 +fr 07_gas 2 11 2030 0.0 0.0 +fr 08_non-res 2 11 2030 0.0 0.0 +fr 09_hydro_pump 2 11 2030 0.0 0.0 +fr 01_solar 2 12 2030 1.0 0.0 +fr 02_wind_on 2 12 2030 0.0 0.0 +fr 03_wind_off 2 12 2030 0.0 0.0 +fr 04_res 2 12 2030 0.0 0.0 +fr 05_nuclear 2 12 2030 0.0 0.0 +fr 06_coal 2 12 2030 0.0 0.0 +fr 07_gas 2 12 2030 0.0 0.0 +fr 08_non-res 2 12 2030 0.0 0.0 +fr 09_hydro_pump 2 12 2030 0.0 0.0 +fr 01_solar 2 13 2030 1.0 0.0 +fr 02_wind_on 2 13 2030 0.0 0.0 +fr 03_wind_off 2 13 2030 0.0 0.0 +fr 04_res 2 13 2030 0.0 0.0 +fr 05_nuclear 2 13 2030 0.0 0.0 +fr 06_coal 2 13 2030 0.0 0.0 +fr 07_gas 2 13 2030 0.0 0.0 +fr 08_non-res 2 13 2030 0.0 0.0 +fr 09_hydro_pump 2 13 2030 0.0 0.0 +fr 01_solar 2 14 2030 1.0 0.0 +fr 02_wind_on 2 14 2030 0.0 0.0 +fr 03_wind_off 2 14 2030 0.0 0.0 +fr 04_res 2 14 2030 0.0 0.0 +fr 05_nuclear 2 14 2030 0.0 0.0 +fr 06_coal 2 14 2030 0.0 0.0 +fr 07_gas 2 14 2030 0.0 0.0 +fr 08_non-res 2 14 2030 0.0 0.0 +fr 09_hydro_pump 2 14 2030 0.0 0.0 +fr 01_solar 2 15 2030 1.0 0.0 +fr 02_wind_on 2 15 2030 0.0 0.0 +fr 03_wind_off 2 15 2030 0.0 0.0 +fr 04_res 2 15 2030 0.0 0.0 +fr 05_nuclear 2 15 2030 0.0 0.0 +fr 06_coal 2 15 2030 0.0 0.0 +fr 07_gas 2 15 2030 0.0 0.0 +fr 08_non-res 2 15 2030 0.0 0.0 +fr 09_hydro_pump 2 15 2030 0.0 0.0 +fr 01_solar 2 16 2030 1.0 0.0 +fr 02_wind_on 2 16 2030 0.0 0.0 +fr 03_wind_off 2 16 2030 0.0 0.0 +fr 04_res 2 16 2030 0.0 0.0 +fr 05_nuclear 2 16 2030 0.0 0.0 +fr 06_coal 2 16 2030 0.0 0.0 +fr 07_gas 2 16 2030 0.0 0.0 +fr 08_non-res 2 16 2030 0.0 0.0 +fr 09_hydro_pump 2 16 2030 0.0 0.0 +fr 01_solar 2 17 2030 1.0 0.0 +fr 02_wind_on 2 17 2030 0.0 0.0 +fr 03_wind_off 2 17 2030 0.0 0.0 +fr 04_res 2 17 2030 0.0 0.0 +fr 05_nuclear 2 17 2030 0.0 0.0 +fr 06_coal 2 17 2030 0.0 0.0 +fr 07_gas 2 17 2030 0.0 0.0 +fr 08_non-res 2 17 2030 0.0 0.0 +fr 09_hydro_pump 2 17 2030 0.0 0.0 +fr 01_solar 2 18 2030 1.0 0.0 +fr 02_wind_on 2 18 2030 0.0 0.0 +fr 03_wind_off 2 18 2030 0.0 0.0 +fr 04_res 2 18 2030 0.0 0.0 +fr 05_nuclear 2 18 2030 0.0 0.0 +fr 06_coal 2 18 2030 0.0 0.0 +fr 07_gas 2 18 2030 0.0 0.0 +fr 08_non-res 2 18 2030 0.0 0.0 +fr 09_hydro_pump 2 18 2030 0.0 0.0 +fr 01_solar 2 19 2030 1.0 0.0 +fr 02_wind_on 2 19 2030 0.0 0.0 +fr 03_wind_off 2 19 2030 0.0 0.0 +fr 04_res 2 19 2030 0.0 0.0 +fr 05_nuclear 2 19 2030 0.0 0.0 +fr 06_coal 2 19 2030 0.0 0.0 +fr 07_gas 2 19 2030 0.0 0.0 +fr 08_non-res 2 19 2030 0.0 0.0 +fr 09_hydro_pump 2 19 2030 0.0 0.0 +fr 01_solar 2 20 2030 1.0 0.0 +fr 02_wind_on 2 20 2030 0.0 0.0 +fr 03_wind_off 2 20 2030 0.0 0.0 +fr 04_res 2 20 2030 0.0 0.0 +fr 05_nuclear 2 20 2030 0.0 0.0 +fr 06_coal 2 20 2030 0.0 0.0 +fr 07_gas 2 20 2030 0.0 0.0 +fr 08_non-res 2 20 2030 0.0 0.0 +fr 09_hydro_pump 2 20 2030 0.0 0.0 +fr 01_solar 2 21 2030 1.0 0.0 +fr 02_wind_on 2 21 2030 0.0 0.0 +fr 03_wind_off 2 21 2030 0.0 0.0 +fr 04_res 2 21 2030 0.0 0.0 +fr 05_nuclear 2 21 2030 0.0 0.0 +fr 06_coal 2 21 2030 0.0 0.0 +fr 07_gas 2 21 2030 0.0 0.0 +fr 08_non-res 2 21 2030 0.0 0.0 +fr 09_hydro_pump 2 21 2030 0.0 0.0 +fr 01_solar 2 22 2030 1.0 0.0 +fr 02_wind_on 2 22 2030 1.0 0.0 +fr 03_wind_off 2 22 2030 0.0 0.0 +fr 04_res 2 22 2030 0.0 0.0 +fr 05_nuclear 2 22 2030 0.0 0.0 +fr 06_coal 2 22 2030 0.0 0.0 +fr 07_gas 2 22 2030 0.0 0.0 +fr 08_non-res 2 22 2030 0.0 0.0 +fr 09_hydro_pump 2 22 2030 0.0 0.0 +fr 01_solar 2 23 2030 1.0 0.0 +fr 02_wind_on 2 23 2030 1.0 0.0 +fr 03_wind_off 2 23 2030 0.0 0.0 +fr 04_res 2 23 2030 0.0 0.0 +fr 05_nuclear 2 23 2030 0.0 0.0 +fr 06_coal 2 23 2030 0.0 0.0 +fr 07_gas 2 23 2030 0.0 0.0 +fr 08_non-res 2 23 2030 0.0 0.0 +fr 09_hydro_pump 2 23 2030 0.0 0.0 +fr 01_solar 2 24 2030 1.0 0.0 +fr 02_wind_on 2 24 2030 1.0 0.0 +fr 03_wind_off 2 24 2030 0.0 0.0 +fr 04_res 2 24 2030 0.0 0.0 +fr 05_nuclear 2 24 2030 0.0 0.0 +fr 06_coal 2 24 2030 0.0 0.0 +fr 07_gas 2 24 2030 0.0 0.0 +fr 08_non-res 2 24 2030 0.0 0.0 +fr 09_hydro_pump 2 24 2030 0.0 0.0 +fr 01_solar 2 25 2030 1.0 0.0 +fr 02_wind_on 2 25 2030 1.0 0.0 +fr 03_wind_off 2 25 2030 0.0 0.0 +fr 04_res 2 25 2030 0.0 0.0 +fr 05_nuclear 2 25 2030 0.0 0.0 +fr 06_coal 2 25 2030 0.0 0.0 +fr 07_gas 2 25 2030 0.0 0.0 +fr 08_non-res 2 25 2030 0.0 0.0 +fr 09_hydro_pump 2 25 2030 0.0 0.0 +fr 01_solar 2 26 2030 1.0 0.0 +fr 02_wind_on 2 26 2030 1.0 0.0 +fr 03_wind_off 2 26 2030 0.0 0.0 +fr 04_res 2 26 2030 0.0 0.0 +fr 05_nuclear 2 26 2030 0.0 0.0 +fr 06_coal 2 26 2030 0.0 0.0 +fr 07_gas 2 26 2030 0.0 0.0 +fr 08_non-res 2 26 2030 0.0 0.0 +fr 09_hydro_pump 2 26 2030 0.0 0.0 +fr 01_solar 2 27 2030 1.0 0.0 +fr 02_wind_on 2 27 2030 1.0 0.0 +fr 03_wind_off 2 27 2030 0.0 0.0 +fr 04_res 2 27 2030 0.0 0.0 +fr 05_nuclear 2 27 2030 0.0 0.0 +fr 06_coal 2 27 2030 0.0 0.0 +fr 07_gas 2 27 2030 0.0 0.0 +fr 08_non-res 2 27 2030 0.0 0.0 +fr 09_hydro_pump 2 27 2030 0.0 0.0 +fr 01_solar 2 28 2030 1.0 0.0 +fr 02_wind_on 2 28 2030 1.0 0.0 +fr 03_wind_off 2 28 2030 0.0 0.0 +fr 04_res 2 28 2030 0.0 0.0 +fr 05_nuclear 2 28 2030 0.0 0.0 +fr 06_coal 2 28 2030 0.0 0.0 +fr 07_gas 2 28 2030 0.0 0.0 +fr 08_non-res 2 28 2030 0.0 0.0 +fr 09_hydro_pump 2 28 2030 0.0 0.0 +fr 01_solar 2 29 2030 1.0 0.0 +fr 02_wind_on 2 29 2030 1.0 0.0 +fr 03_wind_off 2 29 2030 0.0 0.0 +fr 04_res 2 29 2030 0.0 0.0 +fr 05_nuclear 2 29 2030 0.0 0.0 +fr 06_coal 2 29 2030 0.0 0.0 +fr 07_gas 2 29 2030 0.0 0.0 +fr 08_non-res 2 29 2030 0.0 0.0 +fr 09_hydro_pump 2 29 2030 0.0 0.0 +fr 01_solar 2 30 2030 1.0 0.0 +fr 02_wind_on 2 30 2030 1.0 0.0 +fr 03_wind_off 2 30 2030 0.0 0.0 +fr 04_res 2 30 2030 0.0 0.0 +fr 05_nuclear 2 30 2030 0.0 0.0 +fr 06_coal 2 30 2030 0.0 0.0 +fr 07_gas 2 30 2030 0.0 0.0 +fr 08_non-res 2 30 2030 0.0 0.0 +fr 09_hydro_pump 2 30 2030 0.0 0.0 +fr 01_solar 2 31 2030 1.0 0.0 +fr 02_wind_on 2 31 2030 1.0 0.0 +fr 03_wind_off 2 31 2030 0.0 0.0 +fr 04_res 2 31 2030 0.0 0.0 +fr 05_nuclear 2 31 2030 0.0 0.0 +fr 06_coal 2 31 2030 0.0 0.0 +fr 07_gas 2 31 2030 0.0 0.0 +fr 08_non-res 2 31 2030 0.0 0.0 +fr 09_hydro_pump 2 31 2030 0.0 0.0 +fr 01_solar 2 32 2030 1.0 0.0 +fr 02_wind_on 2 32 2030 1.0 0.0 +fr 03_wind_off 2 32 2030 0.0 0.0 +fr 04_res 2 32 2030 0.0 0.0 +fr 05_nuclear 2 32 2030 0.0 0.0 +fr 06_coal 2 32 2030 0.0 0.0 +fr 07_gas 2 32 2030 0.0 0.0 +fr 08_non-res 2 32 2030 0.0 0.0 +fr 09_hydro_pump 2 32 2030 0.0 0.0 +fr 01_solar 2 33 2030 1.0 0.0 +fr 02_wind_on 2 33 2030 1.0 0.0 +fr 03_wind_off 2 33 2030 0.0 0.0 +fr 04_res 2 33 2030 0.0 0.0 +fr 05_nuclear 2 33 2030 0.0 0.0 +fr 06_coal 2 33 2030 0.0 0.0 +fr 07_gas 2 33 2030 0.0 0.0 +fr 08_non-res 2 33 2030 0.0 0.0 +fr 09_hydro_pump 2 33 2030 0.0 0.0 +fr 01_solar 2 34 2030 1.0 0.0 +fr 02_wind_on 2 34 2030 1.0 0.0 +fr 03_wind_off 2 34 2030 0.0 0.0 +fr 04_res 2 34 2030 0.0 0.0 +fr 05_nuclear 2 34 2030 0.0 0.0 +fr 06_coal 2 34 2030 0.0 0.0 +fr 07_gas 2 34 2030 0.0 0.0 +fr 08_non-res 2 34 2030 0.0 0.0 +fr 09_hydro_pump 2 34 2030 0.0 0.0 +fr 01_solar 2 35 2030 1.0 0.0 +fr 02_wind_on 2 35 2030 1.0 0.0 +fr 03_wind_off 2 35 2030 0.0 0.0 +fr 04_res 2 35 2030 0.0 0.0 +fr 05_nuclear 2 35 2030 0.0 0.0 +fr 06_coal 2 35 2030 0.0 0.0 +fr 07_gas 2 35 2030 0.0 0.0 +fr 08_non-res 2 35 2030 0.0 0.0 +fr 09_hydro_pump 2 35 2030 0.0 0.0 +fr 01_solar 2 36 2030 1.0 0.0 +fr 02_wind_on 2 36 2030 1.0 0.0 +fr 03_wind_off 2 36 2030 0.0 0.0 +fr 04_res 2 36 2030 0.0 0.0 +fr 05_nuclear 2 36 2030 0.0 0.0 +fr 06_coal 2 36 2030 0.0 0.0 +fr 07_gas 2 36 2030 0.0 0.0 +fr 08_non-res 2 36 2030 0.0 0.0 +fr 09_hydro_pump 2 36 2030 0.0 0.0 +fr 01_solar 2 37 2030 1.0 0.0 +fr 02_wind_on 2 37 2030 1.0 0.0 +fr 03_wind_off 2 37 2030 0.0 0.0 +fr 04_res 2 37 2030 0.0 0.0 +fr 05_nuclear 2 37 2030 0.0 0.0 +fr 06_coal 2 37 2030 0.0 0.0 +fr 07_gas 2 37 2030 0.0 0.0 +fr 08_non-res 2 37 2030 0.0 0.0 +fr 09_hydro_pump 2 37 2030 0.0 0.0 +fr 01_solar 2 38 2030 1.0 0.0 +fr 02_wind_on 2 38 2030 1.0 0.0 +fr 03_wind_off 2 38 2030 0.0 0.0 +fr 04_res 2 38 2030 0.0 0.0 +fr 05_nuclear 2 38 2030 0.0 0.0 +fr 06_coal 2 38 2030 0.0 0.0 +fr 07_gas 2 38 2030 0.0 0.0 +fr 08_non-res 2 38 2030 0.0 0.0 +fr 09_hydro_pump 2 38 2030 0.0 0.0 +fr 01_solar 2 39 2030 1.0 0.0 +fr 02_wind_on 2 39 2030 1.0 0.0 +fr 03_wind_off 2 39 2030 0.0 0.0 +fr 04_res 2 39 2030 0.0 0.0 +fr 05_nuclear 2 39 2030 0.0 0.0 +fr 06_coal 2 39 2030 0.0 0.0 +fr 07_gas 2 39 2030 0.0 0.0 +fr 08_non-res 2 39 2030 0.0 0.0 +fr 09_hydro_pump 2 39 2030 0.0 0.0 +fr 01_solar 2 40 2030 1.0 0.0 +fr 02_wind_on 2 40 2030 1.0 0.0 +fr 03_wind_off 2 40 2030 0.0 0.0 +fr 04_res 2 40 2030 0.0 0.0 +fr 05_nuclear 2 40 2030 0.0 0.0 +fr 06_coal 2 40 2030 0.0 0.0 +fr 07_gas 2 40 2030 0.0 0.0 +fr 08_non-res 2 40 2030 0.0 0.0 +fr 09_hydro_pump 2 40 2030 0.0 0.0 +fr 01_solar 2 41 2030 1.0 0.0 +fr 02_wind_on 2 41 2030 1.0 0.0 +fr 03_wind_off 2 41 2030 0.0 0.0 +fr 04_res 2 41 2030 0.0 0.0 +fr 05_nuclear 2 41 2030 0.0 0.0 +fr 06_coal 2 41 2030 0.0 0.0 +fr 07_gas 2 41 2030 0.0 0.0 +fr 08_non-res 2 41 2030 0.0 0.0 +fr 09_hydro_pump 2 41 2030 0.0 0.0 +fr 01_solar 2 42 2030 1.0 0.0 +fr 02_wind_on 2 42 2030 1.0 0.0 +fr 03_wind_off 2 42 2030 1.0 0.0 +fr 04_res 2 42 2030 0.0 0.0 +fr 05_nuclear 2 42 2030 0.0 0.0 +fr 06_coal 2 42 2030 0.0 0.0 +fr 07_gas 2 42 2030 0.0 0.0 +fr 08_non-res 2 42 2030 0.0 0.0 +fr 09_hydro_pump 2 42 2030 0.0 0.0 +fr 01_solar 2 43 2030 1.0 0.0 +fr 02_wind_on 2 43 2030 1.0 0.0 +fr 03_wind_off 2 43 2030 1.0 0.0 +fr 04_res 2 43 2030 0.0 0.0 +fr 05_nuclear 2 43 2030 0.0 0.0 +fr 06_coal 2 43 2030 0.0 0.0 +fr 07_gas 2 43 2030 0.0 0.0 +fr 08_non-res 2 43 2030 0.0 0.0 +fr 09_hydro_pump 2 43 2030 0.0 0.0 +fr 01_solar 2 44 2030 1.0 0.0 +fr 02_wind_on 2 44 2030 1.0 0.0 +fr 03_wind_off 2 44 2030 1.0 0.0 +fr 04_res 2 44 2030 0.0 0.0 +fr 05_nuclear 2 44 2030 0.0 0.0 +fr 06_coal 2 44 2030 0.0 0.0 +fr 07_gas 2 44 2030 0.0 0.0 +fr 08_non-res 2 44 2030 0.0 0.0 +fr 09_hydro_pump 2 44 2030 0.0 0.0 +fr 01_solar 2 45 2030 1.0 0.0 +fr 02_wind_on 2 45 2030 1.0 0.0 +fr 03_wind_off 2 45 2030 1.0 0.0 +fr 04_res 2 45 2030 0.0 0.0 +fr 05_nuclear 2 45 2030 0.0 0.0 +fr 06_coal 2 45 2030 0.0 0.0 +fr 07_gas 2 45 2030 0.0 0.0 +fr 08_non-res 2 45 2030 0.0 0.0 +fr 09_hydro_pump 2 45 2030 0.0 0.0 +fr 01_solar 2 46 2030 1.0 0.0 +fr 02_wind_on 2 46 2030 1.0 0.0 +fr 03_wind_off 2 46 2030 1.0 0.0 +fr 04_res 2 46 2030 0.0 0.0 +fr 05_nuclear 2 46 2030 0.0 0.0 +fr 06_coal 2 46 2030 0.0 0.0 +fr 07_gas 2 46 2030 0.0 0.0 +fr 08_non-res 2 46 2030 0.0 0.0 +fr 09_hydro_pump 2 46 2030 0.0 0.0 +fr 01_solar 2 47 2030 1.0 0.0 +fr 02_wind_on 2 47 2030 1.0 0.0 +fr 03_wind_off 2 47 2030 1.0 0.0 +fr 04_res 2 47 2030 0.0 0.0 +fr 05_nuclear 2 47 2030 0.0 0.0 +fr 06_coal 2 47 2030 0.0 0.0 +fr 07_gas 2 47 2030 0.0 0.0 +fr 08_non-res 2 47 2030 0.0 0.0 +fr 09_hydro_pump 2 47 2030 0.0 0.0 +fr 01_solar 2 48 2030 1.0 0.0 +fr 02_wind_on 2 48 2030 1.0 0.0 +fr 03_wind_off 2 48 2030 1.0 0.0 +fr 04_res 2 48 2030 0.0 0.0 +fr 05_nuclear 2 48 2030 0.0 0.0 +fr 06_coal 2 48 2030 0.0 0.0 +fr 07_gas 2 48 2030 0.0 0.0 +fr 08_non-res 2 48 2030 0.0 0.0 +fr 09_hydro_pump 2 48 2030 0.0 0.0 +fr 01_solar 2 49 2030 1.0 0.0 +fr 02_wind_on 2 49 2030 1.0 0.0 +fr 03_wind_off 2 49 2030 1.0 0.0 +fr 04_res 2 49 2030 0.0 0.0 +fr 05_nuclear 2 49 2030 0.0 0.0 +fr 06_coal 2 49 2030 0.0 0.0 +fr 07_gas 2 49 2030 0.0 0.0 +fr 08_non-res 2 49 2030 0.0 0.0 +fr 09_hydro_pump 2 49 2030 0.0 0.0 +fr 01_solar 2 50 2030 1.0 0.0 +fr 02_wind_on 2 50 2030 1.0 0.0 +fr 03_wind_off 2 50 2030 1.0 0.0 +fr 04_res 2 50 2030 0.0 0.0 +fr 05_nuclear 2 50 2030 0.0 0.0 +fr 06_coal 2 50 2030 0.0 0.0 +fr 07_gas 2 50 2030 0.0 0.0 +fr 08_non-res 2 50 2030 0.0 0.0 +fr 09_hydro_pump 2 50 2030 0.0 0.0 +fr 01_solar 2 51 2030 1.0 0.0 +fr 02_wind_on 2 51 2030 1.0 0.0 +fr 03_wind_off 2 51 2030 1.0 0.0 +fr 04_res 2 51 2030 0.0 0.0 +fr 05_nuclear 2 51 2030 0.0 0.0 +fr 06_coal 2 51 2030 0.0 0.0 +fr 07_gas 2 51 2030 0.0 0.0 +fr 08_non-res 2 51 2030 0.0 0.0 +fr 09_hydro_pump 2 51 2030 0.0 0.0 +fr 01_solar 2 52 2030 1.0 0.0 +fr 02_wind_on 2 52 2030 1.0 0.0 +fr 03_wind_off 2 52 2030 1.0 0.0 +fr 04_res 2 52 2030 0.0 0.0 +fr 05_nuclear 2 52 2030 0.0 0.0 +fr 06_coal 2 52 2030 0.0 0.0 +fr 07_gas 2 52 2030 0.0 0.0 +fr 08_non-res 2 52 2030 0.0 0.0 +fr 09_hydro_pump 2 52 2030 0.0 0.0 +fr 01_solar 2 53 2030 1.0 0.0 +fr 02_wind_on 2 53 2030 1.0 0.0 +fr 03_wind_off 2 53 2030 1.0 0.0 +fr 04_res 2 53 2030 0.0 0.0 +fr 05_nuclear 2 53 2030 0.0 0.0 +fr 06_coal 2 53 2030 0.0 0.0 +fr 07_gas 2 53 2030 0.0 0.0 +fr 08_non-res 2 53 2030 0.0 0.0 +fr 09_hydro_pump 2 53 2030 0.0 0.0 +fr 01_solar 2 54 2030 1.0 0.0 +fr 02_wind_on 2 54 2030 1.0 0.0 +fr 03_wind_off 2 54 2030 1.0 0.0 +fr 04_res 2 54 2030 0.0 0.0 +fr 05_nuclear 2 54 2030 0.0 0.0 +fr 06_coal 2 54 2030 0.0 0.0 +fr 07_gas 2 54 2030 0.0 0.0 +fr 08_non-res 2 54 2030 0.0 0.0 +fr 09_hydro_pump 2 54 2030 0.0 0.0 +fr 01_solar 2 55 2030 1.0 0.0 +fr 02_wind_on 2 55 2030 1.0 0.0 +fr 03_wind_off 2 55 2030 1.0 0.0 +fr 04_res 2 55 2030 0.0 0.0 +fr 05_nuclear 2 55 2030 0.0 0.0 +fr 06_coal 2 55 2030 0.0 0.0 +fr 07_gas 2 55 2030 0.0 0.0 +fr 08_non-res 2 55 2030 0.0 0.0 +fr 09_hydro_pump 2 55 2030 0.0 0.0 +fr 01_solar 2 56 2030 1.0 0.0 +fr 02_wind_on 2 56 2030 1.0 0.0 +fr 03_wind_off 2 56 2030 1.0 0.0 +fr 04_res 2 56 2030 0.0 0.0 +fr 05_nuclear 2 56 2030 0.0 0.0 +fr 06_coal 2 56 2030 0.0 0.0 +fr 07_gas 2 56 2030 0.0 0.0 +fr 08_non-res 2 56 2030 0.0 0.0 +fr 09_hydro_pump 2 56 2030 0.0 0.0 +fr 01_solar 2 57 2030 1.0 0.0 +fr 02_wind_on 2 57 2030 1.0 0.0 +fr 03_wind_off 2 57 2030 1.0 0.0 +fr 04_res 2 57 2030 0.0 0.0 +fr 05_nuclear 2 57 2030 0.0 0.0 +fr 06_coal 2 57 2030 0.0 0.0 +fr 07_gas 2 57 2030 0.0 0.0 +fr 08_non-res 2 57 2030 0.0 0.0 +fr 09_hydro_pump 2 57 2030 0.0 0.0 +fr 01_solar 2 58 2030 1.0 0.0 +fr 02_wind_on 2 58 2030 1.0 0.0 +fr 03_wind_off 2 58 2030 1.0 0.0 +fr 04_res 2 58 2030 0.0 0.0 +fr 05_nuclear 2 58 2030 0.0 0.0 +fr 06_coal 2 58 2030 0.0 0.0 +fr 07_gas 2 58 2030 0.0 0.0 +fr 08_non-res 2 58 2030 0.0 0.0 +fr 09_hydro_pump 2 58 2030 0.0 0.0 +fr 01_solar 2 59 2030 1.0 0.0 +fr 02_wind_on 2 59 2030 1.0 0.0 +fr 03_wind_off 2 59 2030 1.0 0.0 +fr 04_res 2 59 2030 0.0 0.0 +fr 05_nuclear 2 59 2030 0.0 0.0 +fr 06_coal 2 59 2030 0.0 0.0 +fr 07_gas 2 59 2030 0.0 0.0 +fr 08_non-res 2 59 2030 0.0 0.0 +fr 09_hydro_pump 2 59 2030 0.0 0.0 +fr 01_solar 2 60 2030 1.0 0.0 +fr 02_wind_on 2 60 2030 1.0 0.0 +fr 03_wind_off 2 60 2030 1.0 0.0 +fr 04_res 2 60 2030 0.0 0.0 +fr 05_nuclear 2 60 2030 0.0 0.0 +fr 06_coal 2 60 2030 0.0 0.0 +fr 07_gas 2 60 2030 0.0 0.0 +fr 08_non-res 2 60 2030 0.0 0.0 +fr 09_hydro_pump 2 60 2030 0.0 0.0 +fr 01_solar 2 61 2030 1.0 0.0 +fr 02_wind_on 2 61 2030 1.0 0.0 +fr 03_wind_off 2 61 2030 1.0 0.0 +fr 04_res 2 61 2030 0.0 0.0 +fr 05_nuclear 2 61 2030 0.0 0.0 +fr 06_coal 2 61 2030 0.0 0.0 +fr 07_gas 2 61 2030 0.0 0.0 +fr 08_non-res 2 61 2030 0.0 0.0 +fr 09_hydro_pump 2 61 2030 0.0 0.0 +fr 01_solar 2 62 2030 1.0 0.0 +fr 02_wind_on 2 62 2030 1.0 0.0 +fr 03_wind_off 2 62 2030 1.0 0.0 +fr 04_res 2 62 2030 1.0 0.0 +fr 05_nuclear 2 62 2030 0.0 0.0 +fr 06_coal 2 62 2030 0.0 0.0 +fr 07_gas 2 62 2030 0.0 0.0 +fr 08_non-res 2 62 2030 0.0 0.0 +fr 09_hydro_pump 2 62 2030 0.0 0.0 +fr 01_solar 2 63 2030 1.0 0.0 +fr 02_wind_on 2 63 2030 1.0 0.0 +fr 03_wind_off 2 63 2030 1.0 0.0 +fr 04_res 2 63 2030 1.0 0.0 +fr 05_nuclear 2 63 2030 0.0 0.0 +fr 06_coal 2 63 2030 0.0 0.0 +fr 07_gas 2 63 2030 0.0 0.0 +fr 08_non-res 2 63 2030 0.0 0.0 +fr 09_hydro_pump 2 63 2030 0.0 0.0 +fr 01_solar 2 64 2030 1.0 0.0 +fr 02_wind_on 2 64 2030 1.0 0.0 +fr 03_wind_off 2 64 2030 1.0 0.0 +fr 04_res 2 64 2030 1.0 0.0 +fr 05_nuclear 2 64 2030 0.0 0.0 +fr 06_coal 2 64 2030 0.0 0.0 +fr 07_gas 2 64 2030 0.0 0.0 +fr 08_non-res 2 64 2030 0.0 0.0 +fr 09_hydro_pump 2 64 2030 0.0 0.0 +fr 01_solar 2 65 2030 1.0 0.0 +fr 02_wind_on 2 65 2030 1.0 0.0 +fr 03_wind_off 2 65 2030 1.0 0.0 +fr 04_res 2 65 2030 1.0 0.0 +fr 05_nuclear 2 65 2030 0.0 0.0 +fr 06_coal 2 65 2030 0.0 0.0 +fr 07_gas 2 65 2030 0.0 0.0 +fr 08_non-res 2 65 2030 0.0 0.0 +fr 09_hydro_pump 2 65 2030 0.0 0.0 +fr 01_solar 2 66 2030 1.0 0.0 +fr 02_wind_on 2 66 2030 1.0 0.0 +fr 03_wind_off 2 66 2030 1.0 0.0 +fr 04_res 2 66 2030 1.0 0.0 +fr 05_nuclear 2 66 2030 0.0 0.0 +fr 06_coal 2 66 2030 0.0 0.0 +fr 07_gas 2 66 2030 0.0 0.0 +fr 08_non-res 2 66 2030 0.0 0.0 +fr 09_hydro_pump 2 66 2030 0.0 0.0 +fr 01_solar 2 67 2030 1.0 0.0 +fr 02_wind_on 2 67 2030 1.0 0.0 +fr 03_wind_off 2 67 2030 1.0 0.0 +fr 04_res 2 67 2030 1.0 0.0 +fr 05_nuclear 2 67 2030 0.0 0.0 +fr 06_coal 2 67 2030 0.0 0.0 +fr 07_gas 2 67 2030 0.0 0.0 +fr 08_non-res 2 67 2030 0.0 0.0 +fr 09_hydro_pump 2 67 2030 0.0 0.0 +fr 01_solar 2 68 2030 1.0 0.0 +fr 02_wind_on 2 68 2030 1.0 0.0 +fr 03_wind_off 2 68 2030 1.0 0.0 +fr 04_res 2 68 2030 1.0 0.0 +fr 05_nuclear 2 68 2030 0.0 0.0 +fr 06_coal 2 68 2030 0.0 0.0 +fr 07_gas 2 68 2030 0.0 0.0 +fr 08_non-res 2 68 2030 0.0 0.0 +fr 09_hydro_pump 2 68 2030 0.0 0.0 +fr 01_solar 2 69 2030 1.0 0.0 +fr 02_wind_on 2 69 2030 1.0 0.0 +fr 03_wind_off 2 69 2030 1.0 0.0 +fr 04_res 2 69 2030 1.0 0.0 +fr 05_nuclear 2 69 2030 0.0 0.0 +fr 06_coal 2 69 2030 0.0 0.0 +fr 07_gas 2 69 2030 0.0 0.0 +fr 08_non-res 2 69 2030 0.0 0.0 +fr 09_hydro_pump 2 69 2030 0.0 0.0 +fr 01_solar 2 70 2030 1.0 0.0 +fr 02_wind_on 2 70 2030 1.0 0.0 +fr 03_wind_off 2 70 2030 1.0 0.0 +fr 04_res 2 70 2030 1.0 0.0 +fr 05_nuclear 2 70 2030 0.0 0.0 +fr 06_coal 2 70 2030 0.0 0.0 +fr 07_gas 2 70 2030 0.0 0.0 +fr 08_non-res 2 70 2030 0.0 0.0 +fr 09_hydro_pump 2 70 2030 0.0 0.0 +fr 01_solar 2 71 2030 1.0 0.0 +fr 02_wind_on 2 71 2030 1.0 0.0 +fr 03_wind_off 2 71 2030 1.0 0.0 +fr 04_res 2 71 2030 1.0 0.0 +fr 05_nuclear 2 71 2030 0.0 0.0 +fr 06_coal 2 71 2030 0.0 0.0 +fr 07_gas 2 71 2030 0.0 0.0 +fr 08_non-res 2 71 2030 0.0 0.0 +fr 09_hydro_pump 2 71 2030 0.0 0.0 +fr 01_solar 2 72 2030 1.0 0.0 +fr 02_wind_on 2 72 2030 1.0 0.0 +fr 03_wind_off 2 72 2030 1.0 0.0 +fr 04_res 2 72 2030 1.0 0.0 +fr 05_nuclear 2 72 2030 0.0 0.0 +fr 06_coal 2 72 2030 0.0 0.0 +fr 07_gas 2 72 2030 0.0 0.0 +fr 08_non-res 2 72 2030 0.0 0.0 +fr 09_hydro_pump 2 72 2030 0.0 0.0 +fr 01_solar 2 73 2030 1.0 0.0 +fr 02_wind_on 2 73 2030 1.0 0.0 +fr 03_wind_off 2 73 2030 1.0 0.0 +fr 04_res 2 73 2030 1.0 0.0 +fr 05_nuclear 2 73 2030 0.0 0.0 +fr 06_coal 2 73 2030 0.0 0.0 +fr 07_gas 2 73 2030 0.0 0.0 +fr 08_non-res 2 73 2030 0.0 0.0 +fr 09_hydro_pump 2 73 2030 0.0 0.0 +fr 01_solar 2 74 2030 1.0 0.0 +fr 02_wind_on 2 74 2030 1.0 0.0 +fr 03_wind_off 2 74 2030 1.0 0.0 +fr 04_res 2 74 2030 1.0 0.0 +fr 05_nuclear 2 74 2030 0.0 0.0 +fr 06_coal 2 74 2030 0.0 0.0 +fr 07_gas 2 74 2030 0.0 0.0 +fr 08_non-res 2 74 2030 0.0 0.0 +fr 09_hydro_pump 2 74 2030 0.0 0.0 +fr 01_solar 2 75 2030 1.0 0.0 +fr 02_wind_on 2 75 2030 1.0 0.0 +fr 03_wind_off 2 75 2030 1.0 0.0 +fr 04_res 2 75 2030 1.0 0.0 +fr 05_nuclear 2 75 2030 0.0 0.0 +fr 06_coal 2 75 2030 0.0 0.0 +fr 07_gas 2 75 2030 0.0 0.0 +fr 08_non-res 2 75 2030 0.0 0.0 +fr 09_hydro_pump 2 75 2030 0.0 0.0 +fr 01_solar 2 76 2030 1.0 0.0 +fr 02_wind_on 2 76 2030 1.0 0.0 +fr 03_wind_off 2 76 2030 1.0 0.0 +fr 04_res 2 76 2030 1.0 0.0 +fr 05_nuclear 2 76 2030 0.0 0.0 +fr 06_coal 2 76 2030 0.0 0.0 +fr 07_gas 2 76 2030 0.0 0.0 +fr 08_non-res 2 76 2030 0.0 0.0 +fr 09_hydro_pump 2 76 2030 0.0 0.0 +fr 01_solar 2 77 2030 1.0 0.0 +fr 02_wind_on 2 77 2030 1.0 0.0 +fr 03_wind_off 2 77 2030 1.0 0.0 +fr 04_res 2 77 2030 1.0 0.0 +fr 05_nuclear 2 77 2030 0.0 0.0 +fr 06_coal 2 77 2030 0.0 0.0 +fr 07_gas 2 77 2030 0.0 0.0 +fr 08_non-res 2 77 2030 0.0 0.0 +fr 09_hydro_pump 2 77 2030 0.0 0.0 +fr 01_solar 2 78 2030 1.0 0.0 +fr 02_wind_on 2 78 2030 1.0 0.0 +fr 03_wind_off 2 78 2030 1.0 0.0 +fr 04_res 2 78 2030 1.0 0.0 +fr 05_nuclear 2 78 2030 0.0 0.0 +fr 06_coal 2 78 2030 0.0 0.0 +fr 07_gas 2 78 2030 0.0 0.0 +fr 08_non-res 2 78 2030 0.0 0.0 +fr 09_hydro_pump 2 78 2030 0.0 0.0 +fr 01_solar 2 79 2030 1.0 0.0 +fr 02_wind_on 2 79 2030 1.0 0.0 +fr 03_wind_off 2 79 2030 1.0 0.0 +fr 04_res 2 79 2030 1.0 0.0 +fr 05_nuclear 2 79 2030 0.0 0.0 +fr 06_coal 2 79 2030 0.0 0.0 +fr 07_gas 2 79 2030 0.0 0.0 +fr 08_non-res 2 79 2030 0.0 0.0 +fr 09_hydro_pump 2 79 2030 0.0 0.0 +fr 01_solar 2 80 2030 1.0 0.0 +fr 02_wind_on 2 80 2030 1.0 0.0 +fr 03_wind_off 2 80 2030 1.0 0.0 +fr 04_res 2 80 2030 1.0 0.0 +fr 05_nuclear 2 80 2030 0.0 0.0 +fr 06_coal 2 80 2030 0.0 0.0 +fr 07_gas 2 80 2030 0.0 0.0 +fr 08_non-res 2 80 2030 0.0 0.0 +fr 09_hydro_pump 2 80 2030 0.0 0.0 +fr 01_solar 2 81 2030 1.0 0.0 +fr 02_wind_on 2 81 2030 1.0 0.0 +fr 03_wind_off 2 81 2030 1.0 0.0 +fr 04_res 2 81 2030 1.0 0.0 +fr 05_nuclear 2 81 2030 0.0 0.0 +fr 06_coal 2 81 2030 0.0 0.0 +fr 07_gas 2 81 2030 0.0 0.0 +fr 08_non-res 2 81 2030 0.0 0.0 +fr 09_hydro_pump 2 81 2030 0.0 0.0 +fr 01_solar 2 82 2030 1.0 0.0 +fr 02_wind_on 2 82 2030 1.0 0.0 +fr 03_wind_off 2 82 2030 1.0 0.0 +fr 04_res 2 82 2030 1.0 0.0 +fr 05_nuclear 2 82 2030 1.0 0.0 +fr 06_coal 2 82 2030 0.0 0.0 +fr 07_gas 2 82 2030 0.0 0.0 +fr 08_non-res 2 82 2030 0.0 0.0 +fr 09_hydro_pump 2 82 2030 0.0 0.0 +fr 01_solar 2 83 2030 1.0 0.0 +fr 02_wind_on 2 83 2030 1.0 0.0 +fr 03_wind_off 2 83 2030 1.0 0.0 +fr 04_res 2 83 2030 1.0 0.0 +fr 05_nuclear 2 83 2030 1.0 0.0 +fr 06_coal 2 83 2030 0.0 0.0 +fr 07_gas 2 83 2030 0.0 0.0 +fr 08_non-res 2 83 2030 0.0 0.0 +fr 09_hydro_pump 2 83 2030 0.0 0.0 +fr 01_solar 2 84 2030 1.0 0.0 +fr 02_wind_on 2 84 2030 1.0 0.0 +fr 03_wind_off 2 84 2030 1.0 0.0 +fr 04_res 2 84 2030 1.0 0.0 +fr 05_nuclear 2 84 2030 1.0 0.0 +fr 06_coal 2 84 2030 0.0 0.0 +fr 07_gas 2 84 2030 0.0 0.0 +fr 08_non-res 2 84 2030 0.0 0.0 +fr 09_hydro_pump 2 84 2030 0.0 0.0 +fr 01_solar 2 85 2030 1.0 0.0 +fr 02_wind_on 2 85 2030 1.0 0.0 +fr 03_wind_off 2 85 2030 1.0 0.0 +fr 04_res 2 85 2030 1.0 0.0 +fr 05_nuclear 2 85 2030 1.0 0.0 +fr 06_coal 2 85 2030 0.0 0.0 +fr 07_gas 2 85 2030 0.0 0.0 +fr 08_non-res 2 85 2030 0.0 0.0 +fr 09_hydro_pump 2 85 2030 0.0 0.0 +fr 01_solar 2 86 2030 1.0 0.0 +fr 02_wind_on 2 86 2030 1.0 0.0 +fr 03_wind_off 2 86 2030 1.0 0.0 +fr 04_res 2 86 2030 1.0 0.0 +fr 05_nuclear 2 86 2030 1.0 0.0 +fr 06_coal 2 86 2030 0.0 0.0 +fr 07_gas 2 86 2030 0.0 0.0 +fr 08_non-res 2 86 2030 0.0 0.0 +fr 09_hydro_pump 2 86 2030 0.0 0.0 +fr 01_solar 2 87 2030 1.0 0.0 +fr 02_wind_on 2 87 2030 1.0 0.0 +fr 03_wind_off 2 87 2030 1.0 0.0 +fr 04_res 2 87 2030 1.0 0.0 +fr 05_nuclear 2 87 2030 1.0 0.0 +fr 06_coal 2 87 2030 0.0 0.0 +fr 07_gas 2 87 2030 0.0 0.0 +fr 08_non-res 2 87 2030 0.0 0.0 +fr 09_hydro_pump 2 87 2030 0.0 0.0 +fr 01_solar 2 88 2030 1.0 0.0 +fr 02_wind_on 2 88 2030 1.0 0.0 +fr 03_wind_off 2 88 2030 1.0 0.0 +fr 04_res 2 88 2030 1.0 0.0 +fr 05_nuclear 2 88 2030 1.0 0.0 +fr 06_coal 2 88 2030 0.0 0.0 +fr 07_gas 2 88 2030 0.0 0.0 +fr 08_non-res 2 88 2030 0.0 0.0 +fr 09_hydro_pump 2 88 2030 0.0 0.0 +fr 01_solar 2 89 2030 1.0 0.0 +fr 02_wind_on 2 89 2030 1.0 0.0 +fr 03_wind_off 2 89 2030 1.0 0.0 +fr 04_res 2 89 2030 1.0 0.0 +fr 05_nuclear 2 89 2030 1.0 0.0 +fr 06_coal 2 89 2030 0.0 0.0 +fr 07_gas 2 89 2030 0.0 0.0 +fr 08_non-res 2 89 2030 0.0 0.0 +fr 09_hydro_pump 2 89 2030 0.0 0.0 +fr 01_solar 2 90 2030 1.0 0.0 +fr 02_wind_on 2 90 2030 1.0 0.0 +fr 03_wind_off 2 90 2030 1.0 0.0 +fr 04_res 2 90 2030 1.0 0.0 +fr 05_nuclear 2 90 2030 1.0 0.0 +fr 06_coal 2 90 2030 0.0 0.0 +fr 07_gas 2 90 2030 0.0 0.0 +fr 08_non-res 2 90 2030 0.0 0.0 +fr 09_hydro_pump 2 90 2030 0.0 0.0 +fr 01_solar 2 91 2030 1.0 0.0 +fr 02_wind_on 2 91 2030 1.0 0.0 +fr 03_wind_off 2 91 2030 1.0 0.0 +fr 04_res 2 91 2030 1.0 0.0 +fr 05_nuclear 2 91 2030 1.0 0.0 +fr 06_coal 2 91 2030 0.0 0.0 +fr 07_gas 2 91 2030 0.0 0.0 +fr 08_non-res 2 91 2030 0.0 0.0 +fr 09_hydro_pump 2 91 2030 0.0 0.0 +fr 01_solar 2 92 2030 1.0 0.0 +fr 02_wind_on 2 92 2030 1.0 0.0 +fr 03_wind_off 2 92 2030 1.0 0.0 +fr 04_res 2 92 2030 1.0 0.0 +fr 05_nuclear 2 92 2030 1.0 0.0 +fr 06_coal 2 92 2030 0.0 0.0 +fr 07_gas 2 92 2030 0.0 0.0 +fr 08_non-res 2 92 2030 0.0 0.0 +fr 09_hydro_pump 2 92 2030 0.0 0.0 +fr 01_solar 2 93 2030 1.0 0.0 +fr 02_wind_on 2 93 2030 1.0 0.0 +fr 03_wind_off 2 93 2030 1.0 0.0 +fr 04_res 2 93 2030 1.0 0.0 +fr 05_nuclear 2 93 2030 1.0 0.0 +fr 06_coal 2 93 2030 0.0 0.0 +fr 07_gas 2 93 2030 0.0 0.0 +fr 08_non-res 2 93 2030 0.0 0.0 +fr 09_hydro_pump 2 93 2030 0.0 0.0 +fr 01_solar 2 94 2030 1.0 0.0 +fr 02_wind_on 2 94 2030 1.0 0.0 +fr 03_wind_off 2 94 2030 1.0 0.0 +fr 04_res 2 94 2030 1.0 0.0 +fr 05_nuclear 2 94 2030 1.0 0.0 +fr 06_coal 2 94 2030 0.0 0.0 +fr 07_gas 2 94 2030 0.0 0.0 +fr 08_non-res 2 94 2030 0.0 0.0 +fr 09_hydro_pump 2 94 2030 0.0 0.0 +fr 01_solar 2 95 2030 1.0 0.0 +fr 02_wind_on 2 95 2030 1.0 0.0 +fr 03_wind_off 2 95 2030 1.0 0.0 +fr 04_res 2 95 2030 1.0 0.0 +fr 05_nuclear 2 95 2030 1.0 0.0 +fr 06_coal 2 95 2030 0.0 0.0 +fr 07_gas 2 95 2030 0.0 0.0 +fr 08_non-res 2 95 2030 0.0 0.0 +fr 09_hydro_pump 2 95 2030 0.0 0.0 +fr 01_solar 2 96 2030 1.0 0.0 +fr 02_wind_on 2 96 2030 1.0 0.0 +fr 03_wind_off 2 96 2030 1.0 0.0 +fr 04_res 2 96 2030 1.0 0.0 +fr 05_nuclear 2 96 2030 1.0 0.0 +fr 06_coal 2 96 2030 0.0 0.0 +fr 07_gas 2 96 2030 0.0 0.0 +fr 08_non-res 2 96 2030 0.0 0.0 +fr 09_hydro_pump 2 96 2030 0.0 0.0 +fr 01_solar 2 97 2030 1.0 0.0 +fr 02_wind_on 2 97 2030 1.0 0.0 +fr 03_wind_off 2 97 2030 1.0 0.0 +fr 04_res 2 97 2030 1.0 0.0 +fr 05_nuclear 2 97 2030 1.0 0.0 +fr 06_coal 2 97 2030 0.0 0.0 +fr 07_gas 2 97 2030 0.0 0.0 +fr 08_non-res 2 97 2030 0.0 0.0 +fr 09_hydro_pump 2 97 2030 0.0 0.0 +fr 01_solar 2 98 2030 1.0 0.0 +fr 02_wind_on 2 98 2030 1.0 0.0 +fr 03_wind_off 2 98 2030 1.0 0.0 +fr 04_res 2 98 2030 1.0 0.0 +fr 05_nuclear 2 98 2030 1.0 0.0 +fr 06_coal 2 98 2030 0.0 0.0 +fr 07_gas 2 98 2030 0.0 0.0 +fr 08_non-res 2 98 2030 0.0 0.0 +fr 09_hydro_pump 2 98 2030 0.0 0.0 +fr 01_solar 2 99 2030 1.0 0.0 +fr 02_wind_on 2 99 2030 1.0 0.0 +fr 03_wind_off 2 99 2030 1.0 0.0 +fr 04_res 2 99 2030 1.0 0.0 +fr 05_nuclear 2 99 2030 1.0 0.0 +fr 06_coal 2 99 2030 0.0 0.0 +fr 07_gas 2 99 2030 0.0 0.0 +fr 08_non-res 2 99 2030 0.0 0.0 +fr 09_hydro_pump 2 99 2030 0.0 0.0 +fr 01_solar 2 100 2030 1.0 0.0 +fr 02_wind_on 2 100 2030 1.0 0.0 +fr 03_wind_off 2 100 2030 1.0 0.0 +fr 04_res 2 100 2030 1.0 0.0 +fr 05_nuclear 2 100 2030 1.0 0.0 +fr 06_coal 2 100 2030 0.0 0.0 +fr 07_gas 2 100 2030 0.0 0.0 +fr 08_non-res 2 100 2030 0.0 0.0 +fr 09_hydro_pump 2 100 2030 0.0 0.0 +fr 01_solar 2 101 2030 1.0 0.0 +fr 02_wind_on 2 101 2030 1.0 0.0 +fr 03_wind_off 2 101 2030 1.0 0.0 +fr 04_res 2 101 2030 1.0 0.0 +fr 05_nuclear 2 101 2030 1.0 0.0 +fr 06_coal 2 101 2030 0.0 0.0 +fr 07_gas 2 101 2030 0.0 0.0 +fr 08_non-res 2 101 2030 0.0 0.0 +fr 09_hydro_pump 2 101 2030 0.0 0.0 +fr 01_solar 2 102 2030 1.0 0.0 +fr 02_wind_on 2 102 2030 1.0 0.0 +fr 03_wind_off 2 102 2030 1.0 0.0 +fr 04_res 2 102 2030 1.0 0.0 +fr 05_nuclear 2 102 2030 1.0 0.0 +fr 06_coal 2 102 2030 1.0 0.0 +fr 07_gas 2 102 2030 0.0 0.0 +fr 08_non-res 2 102 2030 0.0 0.0 +fr 09_hydro_pump 2 102 2030 0.0 0.0 +fr 01_solar 2 103 2030 1.0 0.0 +fr 02_wind_on 2 103 2030 1.0 0.0 +fr 03_wind_off 2 103 2030 1.0 0.0 +fr 04_res 2 103 2030 1.0 0.0 +fr 05_nuclear 2 103 2030 1.0 0.0 +fr 06_coal 2 103 2030 1.0 0.0 +fr 07_gas 2 103 2030 0.0 0.0 +fr 08_non-res 2 103 2030 0.0 0.0 +fr 09_hydro_pump 2 103 2030 0.0 0.0 +fr 01_solar 2 104 2030 1.0 0.0 +fr 02_wind_on 2 104 2030 1.0 0.0 +fr 03_wind_off 2 104 2030 1.0 0.0 +fr 04_res 2 104 2030 1.0 0.0 +fr 05_nuclear 2 104 2030 1.0 0.0 +fr 06_coal 2 104 2030 1.0 0.0 +fr 07_gas 2 104 2030 0.0 0.0 +fr 08_non-res 2 104 2030 0.0 0.0 +fr 09_hydro_pump 2 104 2030 0.0 0.0 +fr 01_solar 2 105 2030 1.0 0.0 +fr 02_wind_on 2 105 2030 1.0 0.0 +fr 03_wind_off 2 105 2030 1.0 0.0 +fr 04_res 2 105 2030 1.0 0.0 +fr 05_nuclear 2 105 2030 1.0 0.0 +fr 06_coal 2 105 2030 1.0 0.0 +fr 07_gas 2 105 2030 0.0 0.0 +fr 08_non-res 2 105 2030 0.0 0.0 +fr 09_hydro_pump 2 105 2030 0.0 0.0 +fr 01_solar 2 106 2030 1.0 0.0 +fr 02_wind_on 2 106 2030 1.0 0.0 +fr 03_wind_off 2 106 2030 1.0 0.0 +fr 04_res 2 106 2030 1.0 0.0 +fr 05_nuclear 2 106 2030 1.0 0.0 +fr 06_coal 2 106 2030 1.0 0.0 +fr 07_gas 2 106 2030 0.0 0.0 +fr 08_non-res 2 106 2030 0.0 0.0 +fr 09_hydro_pump 2 106 2030 0.0 0.0 +fr 01_solar 2 107 2030 1.0 0.0 +fr 02_wind_on 2 107 2030 1.0 0.0 +fr 03_wind_off 2 107 2030 1.0 0.0 +fr 04_res 2 107 2030 1.0 0.0 +fr 05_nuclear 2 107 2030 1.0 0.0 +fr 06_coal 2 107 2030 1.0 0.0 +fr 07_gas 2 107 2030 0.0 0.0 +fr 08_non-res 2 107 2030 0.0 0.0 +fr 09_hydro_pump 2 107 2030 0.0 0.0 +fr 01_solar 2 108 2030 1.0 0.0 +fr 02_wind_on 2 108 2030 1.0 0.0 +fr 03_wind_off 2 108 2030 1.0 0.0 +fr 04_res 2 108 2030 1.0 0.0 +fr 05_nuclear 2 108 2030 1.0 0.0 +fr 06_coal 2 108 2030 1.0 0.0 +fr 07_gas 2 108 2030 0.0 0.0 +fr 08_non-res 2 108 2030 0.0 0.0 +fr 09_hydro_pump 2 108 2030 0.0 0.0 +fr 01_solar 2 109 2030 1.0 0.0 +fr 02_wind_on 2 109 2030 1.0 0.0 +fr 03_wind_off 2 109 2030 1.0 0.0 +fr 04_res 2 109 2030 1.0 0.0 +fr 05_nuclear 2 109 2030 1.0 0.0 +fr 06_coal 2 109 2030 1.0 0.0 +fr 07_gas 2 109 2030 0.0 0.0 +fr 08_non-res 2 109 2030 0.0 0.0 +fr 09_hydro_pump 2 109 2030 0.0 0.0 +fr 01_solar 2 110 2030 1.0 0.0 +fr 02_wind_on 2 110 2030 1.0 0.0 +fr 03_wind_off 2 110 2030 1.0 0.0 +fr 04_res 2 110 2030 1.0 0.0 +fr 05_nuclear 2 110 2030 1.0 0.0 +fr 06_coal 2 110 2030 1.0 0.0 +fr 07_gas 2 110 2030 0.0 0.0 +fr 08_non-res 2 110 2030 0.0 0.0 +fr 09_hydro_pump 2 110 2030 0.0 0.0 +fr 01_solar 2 111 2030 1.0 0.0 +fr 02_wind_on 2 111 2030 1.0 0.0 +fr 03_wind_off 2 111 2030 1.0 0.0 +fr 04_res 2 111 2030 1.0 0.0 +fr 05_nuclear 2 111 2030 1.0 0.0 +fr 06_coal 2 111 2030 1.0 0.0 +fr 07_gas 2 111 2030 0.0 0.0 +fr 08_non-res 2 111 2030 0.0 0.0 +fr 09_hydro_pump 2 111 2030 0.0 0.0 +fr 01_solar 2 112 2030 1.0 0.0 +fr 02_wind_on 2 112 2030 1.0 0.0 +fr 03_wind_off 2 112 2030 1.0 0.0 +fr 04_res 2 112 2030 1.0 0.0 +fr 05_nuclear 2 112 2030 1.0 0.0 +fr 06_coal 2 112 2030 1.0 0.0 +fr 07_gas 2 112 2030 0.0 0.0 +fr 08_non-res 2 112 2030 0.0 0.0 +fr 09_hydro_pump 2 112 2030 0.0 0.0 +fr 01_solar 2 113 2030 1.0 0.0 +fr 02_wind_on 2 113 2030 1.0 0.0 +fr 03_wind_off 2 113 2030 1.0 0.0 +fr 04_res 2 113 2030 1.0 0.0 +fr 05_nuclear 2 113 2030 1.0 0.0 +fr 06_coal 2 113 2030 1.0 0.0 +fr 07_gas 2 113 2030 0.0 0.0 +fr 08_non-res 2 113 2030 0.0 0.0 +fr 09_hydro_pump 2 113 2030 0.0 0.0 +fr 01_solar 2 114 2030 1.0 0.0 +fr 02_wind_on 2 114 2030 1.0 0.0 +fr 03_wind_off 2 114 2030 1.0 0.0 +fr 04_res 2 114 2030 1.0 0.0 +fr 05_nuclear 2 114 2030 1.0 0.0 +fr 06_coal 2 114 2030 1.0 0.0 +fr 07_gas 2 114 2030 0.0 0.0 +fr 08_non-res 2 114 2030 0.0 0.0 +fr 09_hydro_pump 2 114 2030 0.0 0.0 +fr 01_solar 2 115 2030 1.0 0.0 +fr 02_wind_on 2 115 2030 1.0 0.0 +fr 03_wind_off 2 115 2030 1.0 0.0 +fr 04_res 2 115 2030 1.0 0.0 +fr 05_nuclear 2 115 2030 1.0 0.0 +fr 06_coal 2 115 2030 1.0 0.0 +fr 07_gas 2 115 2030 0.0 0.0 +fr 08_non-res 2 115 2030 0.0 0.0 +fr 09_hydro_pump 2 115 2030 0.0 0.0 +fr 01_solar 2 116 2030 1.0 0.0 +fr 02_wind_on 2 116 2030 1.0 0.0 +fr 03_wind_off 2 116 2030 1.0 0.0 +fr 04_res 2 116 2030 1.0 0.0 +fr 05_nuclear 2 116 2030 1.0 0.0 +fr 06_coal 2 116 2030 1.0 0.0 +fr 07_gas 2 116 2030 0.0 0.0 +fr 08_non-res 2 116 2030 0.0 0.0 +fr 09_hydro_pump 2 116 2030 0.0 0.0 +fr 01_solar 2 117 2030 1.0 0.0 +fr 02_wind_on 2 117 2030 1.0 0.0 +fr 03_wind_off 2 117 2030 1.0 0.0 +fr 04_res 2 117 2030 1.0 0.0 +fr 05_nuclear 2 117 2030 1.0 0.0 +fr 06_coal 2 117 2030 1.0 0.0 +fr 07_gas 2 117 2030 0.0 0.0 +fr 08_non-res 2 117 2030 0.0 0.0 +fr 09_hydro_pump 2 117 2030 0.0 0.0 +fr 01_solar 2 118 2030 1.0 0.0 +fr 02_wind_on 2 118 2030 1.0 0.0 +fr 03_wind_off 2 118 2030 1.0 0.0 +fr 04_res 2 118 2030 1.0 0.0 +fr 05_nuclear 2 118 2030 1.0 0.0 +fr 06_coal 2 118 2030 1.0 0.0 +fr 07_gas 2 118 2030 0.0 0.0 +fr 08_non-res 2 118 2030 0.0 0.0 +fr 09_hydro_pump 2 118 2030 0.0 0.0 +fr 01_solar 2 119 2030 1.0 0.0 +fr 02_wind_on 2 119 2030 1.0 0.0 +fr 03_wind_off 2 119 2030 1.0 0.0 +fr 04_res 2 119 2030 1.0 0.0 +fr 05_nuclear 2 119 2030 1.0 0.0 +fr 06_coal 2 119 2030 1.0 0.0 +fr 07_gas 2 119 2030 0.0 0.0 +fr 08_non-res 2 119 2030 0.0 0.0 +fr 09_hydro_pump 2 119 2030 0.0 0.0 +fr 01_solar 2 120 2030 1.0 0.0 +fr 02_wind_on 2 120 2030 1.0 0.0 +fr 03_wind_off 2 120 2030 1.0 0.0 +fr 04_res 2 120 2030 1.0 0.0 +fr 05_nuclear 2 120 2030 1.0 0.0 +fr 06_coal 2 120 2030 1.0 0.0 +fr 07_gas 2 120 2030 0.0 0.0 +fr 08_non-res 2 120 2030 0.0 0.0 +fr 09_hydro_pump 2 120 2030 0.0 0.0 +fr 01_solar 2 121 2030 1.0 0.0 +fr 02_wind_on 2 121 2030 1.0 0.0 +fr 03_wind_off 2 121 2030 1.0 0.0 +fr 04_res 2 121 2030 1.0 0.0 +fr 05_nuclear 2 121 2030 1.0 0.0 +fr 06_coal 2 121 2030 1.0 0.0 +fr 07_gas 2 121 2030 0.0 0.0 +fr 08_non-res 2 121 2030 0.0 0.0 +fr 09_hydro_pump 2 121 2030 0.0 0.0 +fr 01_solar 2 122 2030 1.0 0.0 +fr 02_wind_on 2 122 2030 1.0 0.0 +fr 03_wind_off 2 122 2030 1.0 0.0 +fr 04_res 2 122 2030 1.0 0.0 +fr 05_nuclear 2 122 2030 1.0 0.0 +fr 06_coal 2 122 2030 1.0 0.0 +fr 07_gas 2 122 2030 1.0 0.0 +fr 08_non-res 2 122 2030 0.0 0.0 +fr 09_hydro_pump 2 122 2030 0.0 0.0 +fr 01_solar 2 123 2030 1.0 0.0 +fr 02_wind_on 2 123 2030 1.0 0.0 +fr 03_wind_off 2 123 2030 1.0 0.0 +fr 04_res 2 123 2030 1.0 0.0 +fr 05_nuclear 2 123 2030 1.0 0.0 +fr 06_coal 2 123 2030 1.0 0.0 +fr 07_gas 2 123 2030 1.0 0.0 +fr 08_non-res 2 123 2030 0.0 0.0 +fr 09_hydro_pump 2 123 2030 0.0 0.0 +fr 01_solar 2 124 2030 1.0 0.0 +fr 02_wind_on 2 124 2030 1.0 0.0 +fr 03_wind_off 2 124 2030 1.0 0.0 +fr 04_res 2 124 2030 1.0 0.0 +fr 05_nuclear 2 124 2030 1.0 0.0 +fr 06_coal 2 124 2030 1.0 0.0 +fr 07_gas 2 124 2030 1.0 0.0 +fr 08_non-res 2 124 2030 0.0 0.0 +fr 09_hydro_pump 2 124 2030 0.0 0.0 +fr 01_solar 2 125 2030 1.0 0.0 +fr 02_wind_on 2 125 2030 1.0 0.0 +fr 03_wind_off 2 125 2030 1.0 0.0 +fr 04_res 2 125 2030 1.0 0.0 +fr 05_nuclear 2 125 2030 1.0 0.0 +fr 06_coal 2 125 2030 1.0 0.0 +fr 07_gas 2 125 2030 1.0 0.0 +fr 08_non-res 2 125 2030 0.0 0.0 +fr 09_hydro_pump 2 125 2030 0.0 0.0 +fr 01_solar 2 126 2030 1.0 0.0 +fr 02_wind_on 2 126 2030 1.0 0.0 +fr 03_wind_off 2 126 2030 1.0 0.0 +fr 04_res 2 126 2030 1.0 0.0 +fr 05_nuclear 2 126 2030 1.0 0.0 +fr 06_coal 2 126 2030 1.0 0.0 +fr 07_gas 2 126 2030 1.0 0.0 +fr 08_non-res 2 126 2030 0.0 0.0 +fr 09_hydro_pump 2 126 2030 0.0 0.0 +fr 01_solar 2 127 2030 1.0 0.0 +fr 02_wind_on 2 127 2030 1.0 0.0 +fr 03_wind_off 2 127 2030 1.0 0.0 +fr 04_res 2 127 2030 1.0 0.0 +fr 05_nuclear 2 127 2030 1.0 0.0 +fr 06_coal 2 127 2030 1.0 0.0 +fr 07_gas 2 127 2030 1.0 0.0 +fr 08_non-res 2 127 2030 0.0 0.0 +fr 09_hydro_pump 2 127 2030 0.0 0.0 +fr 01_solar 2 128 2030 1.0 0.0 +fr 02_wind_on 2 128 2030 1.0 0.0 +fr 03_wind_off 2 128 2030 1.0 0.0 +fr 04_res 2 128 2030 1.0 0.0 +fr 05_nuclear 2 128 2030 1.0 0.0 +fr 06_coal 2 128 2030 1.0 0.0 +fr 07_gas 2 128 2030 1.0 0.0 +fr 08_non-res 2 128 2030 0.0 0.0 +fr 09_hydro_pump 2 128 2030 0.0 0.0 +fr 01_solar 2 129 2030 1.0 0.0 +fr 02_wind_on 2 129 2030 1.0 0.0 +fr 03_wind_off 2 129 2030 1.0 0.0 +fr 04_res 2 129 2030 1.0 0.0 +fr 05_nuclear 2 129 2030 1.0 0.0 +fr 06_coal 2 129 2030 1.0 0.0 +fr 07_gas 2 129 2030 1.0 0.0 +fr 08_non-res 2 129 2030 0.0 0.0 +fr 09_hydro_pump 2 129 2030 0.0 0.0 +fr 01_solar 2 130 2030 1.0 0.0 +fr 02_wind_on 2 130 2030 1.0 0.0 +fr 03_wind_off 2 130 2030 1.0 0.0 +fr 04_res 2 130 2030 1.0 0.0 +fr 05_nuclear 2 130 2030 1.0 0.0 +fr 06_coal 2 130 2030 1.0 0.0 +fr 07_gas 2 130 2030 1.0 0.0 +fr 08_non-res 2 130 2030 0.0 0.0 +fr 09_hydro_pump 2 130 2030 0.0 0.0 +fr 01_solar 2 131 2030 1.0 0.0 +fr 02_wind_on 2 131 2030 1.0 0.0 +fr 03_wind_off 2 131 2030 1.0 0.0 +fr 04_res 2 131 2030 1.0 0.0 +fr 05_nuclear 2 131 2030 1.0 0.0 +fr 06_coal 2 131 2030 1.0 0.0 +fr 07_gas 2 131 2030 1.0 0.0 +fr 08_non-res 2 131 2030 0.0 0.0 +fr 09_hydro_pump 2 131 2030 0.0 0.0 +fr 01_solar 2 132 2030 1.0 0.0 +fr 02_wind_on 2 132 2030 1.0 0.0 +fr 03_wind_off 2 132 2030 1.0 0.0 +fr 04_res 2 132 2030 1.0 0.0 +fr 05_nuclear 2 132 2030 1.0 0.0 +fr 06_coal 2 132 2030 1.0 0.0 +fr 07_gas 2 132 2030 1.0 0.0 +fr 08_non-res 2 132 2030 0.0 0.0 +fr 09_hydro_pump 2 132 2030 0.0 0.0 +fr 01_solar 2 133 2030 1.0 0.0 +fr 02_wind_on 2 133 2030 1.0 0.0 +fr 03_wind_off 2 133 2030 1.0 0.0 +fr 04_res 2 133 2030 1.0 0.0 +fr 05_nuclear 2 133 2030 1.0 0.0 +fr 06_coal 2 133 2030 1.0 0.0 +fr 07_gas 2 133 2030 1.0 0.0 +fr 08_non-res 2 133 2030 0.0 0.0 +fr 09_hydro_pump 2 133 2030 0.0 0.0 +fr 01_solar 2 134 2030 1.0 0.0 +fr 02_wind_on 2 134 2030 1.0 0.0 +fr 03_wind_off 2 134 2030 1.0 0.0 +fr 04_res 2 134 2030 1.0 0.0 +fr 05_nuclear 2 134 2030 1.0 0.0 +fr 06_coal 2 134 2030 1.0 0.0 +fr 07_gas 2 134 2030 1.0 0.0 +fr 08_non-res 2 134 2030 0.0 0.0 +fr 09_hydro_pump 2 134 2030 0.0 0.0 +fr 01_solar 2 135 2030 1.0 0.0 +fr 02_wind_on 2 135 2030 1.0 0.0 +fr 03_wind_off 2 135 2030 1.0 0.0 +fr 04_res 2 135 2030 1.0 0.0 +fr 05_nuclear 2 135 2030 1.0 0.0 +fr 06_coal 2 135 2030 1.0 0.0 +fr 07_gas 2 135 2030 1.0 0.0 +fr 08_non-res 2 135 2030 0.0 0.0 +fr 09_hydro_pump 2 135 2030 0.0 0.0 +fr 01_solar 2 136 2030 1.0 0.0 +fr 02_wind_on 2 136 2030 1.0 0.0 +fr 03_wind_off 2 136 2030 1.0 0.0 +fr 04_res 2 136 2030 1.0 0.0 +fr 05_nuclear 2 136 2030 1.0 0.0 +fr 06_coal 2 136 2030 1.0 0.0 +fr 07_gas 2 136 2030 1.0 0.0 +fr 08_non-res 2 136 2030 0.0 0.0 +fr 09_hydro_pump 2 136 2030 0.0 0.0 +fr 01_solar 2 137 2030 1.0 0.0 +fr 02_wind_on 2 137 2030 1.0 0.0 +fr 03_wind_off 2 137 2030 1.0 0.0 +fr 04_res 2 137 2030 1.0 0.0 +fr 05_nuclear 2 137 2030 1.0 0.0 +fr 06_coal 2 137 2030 1.0 0.0 +fr 07_gas 2 137 2030 1.0 0.0 +fr 08_non-res 2 137 2030 0.0 0.0 +fr 09_hydro_pump 2 137 2030 0.0 0.0 +fr 01_solar 2 138 2030 1.0 0.0 +fr 02_wind_on 2 138 2030 1.0 0.0 +fr 03_wind_off 2 138 2030 1.0 0.0 +fr 04_res 2 138 2030 1.0 0.0 +fr 05_nuclear 2 138 2030 1.0 0.0 +fr 06_coal 2 138 2030 1.0 0.0 +fr 07_gas 2 138 2030 1.0 0.0 +fr 08_non-res 2 138 2030 0.0 0.0 +fr 09_hydro_pump 2 138 2030 0.0 0.0 +fr 01_solar 2 139 2030 1.0 0.0 +fr 02_wind_on 2 139 2030 1.0 0.0 +fr 03_wind_off 2 139 2030 1.0 0.0 +fr 04_res 2 139 2030 1.0 0.0 +fr 05_nuclear 2 139 2030 1.0 0.0 +fr 06_coal 2 139 2030 1.0 0.0 +fr 07_gas 2 139 2030 1.0 0.0 +fr 08_non-res 2 139 2030 0.0 0.0 +fr 09_hydro_pump 2 139 2030 0.0 0.0 +fr 01_solar 2 140 2030 1.0 0.0 +fr 02_wind_on 2 140 2030 1.0 0.0 +fr 03_wind_off 2 140 2030 1.0 0.0 +fr 04_res 2 140 2030 1.0 0.0 +fr 05_nuclear 2 140 2030 1.0 0.0 +fr 06_coal 2 140 2030 1.0 0.0 +fr 07_gas 2 140 2030 1.0 0.0 +fr 08_non-res 2 140 2030 0.0 0.0 +fr 09_hydro_pump 2 140 2030 0.0 0.0 +fr 01_solar 2 141 2030 1.0 0.0 +fr 02_wind_on 2 141 2030 1.0 0.0 +fr 03_wind_off 2 141 2030 1.0 0.0 +fr 04_res 2 141 2030 1.0 0.0 +fr 05_nuclear 2 141 2030 1.0 0.0 +fr 06_coal 2 141 2030 1.0 0.0 +fr 07_gas 2 141 2030 1.0 0.0 +fr 08_non-res 2 141 2030 0.0 0.0 +fr 09_hydro_pump 2 141 2030 0.0 0.0 +fr 01_solar 2 142 2030 1.0 0.0 +fr 02_wind_on 2 142 2030 1.0 0.0 +fr 03_wind_off 2 142 2030 1.0 0.0 +fr 04_res 2 142 2030 1.0 0.0 +fr 05_nuclear 2 142 2030 1.0 0.0 +fr 06_coal 2 142 2030 1.0 0.0 +fr 07_gas 2 142 2030 1.0 0.0 +fr 08_non-res 2 142 2030 1.0 0.0 +fr 09_hydro_pump 2 142 2030 0.0 0.0 +fr 01_solar 2 143 2030 1.0 0.0 +fr 02_wind_on 2 143 2030 1.0 0.0 +fr 03_wind_off 2 143 2030 1.0 0.0 +fr 04_res 2 143 2030 1.0 0.0 +fr 05_nuclear 2 143 2030 1.0 0.0 +fr 06_coal 2 143 2030 1.0 0.0 +fr 07_gas 2 143 2030 1.0 0.0 +fr 08_non-res 2 143 2030 1.0 0.0 +fr 09_hydro_pump 2 143 2030 0.0 0.0 +fr 01_solar 2 144 2030 1.0 0.0 +fr 02_wind_on 2 144 2030 1.0 0.0 +fr 03_wind_off 2 144 2030 1.0 0.0 +fr 04_res 2 144 2030 1.0 0.0 +fr 05_nuclear 2 144 2030 1.0 0.0 +fr 06_coal 2 144 2030 1.0 0.0 +fr 07_gas 2 144 2030 1.0 0.0 +fr 08_non-res 2 144 2030 1.0 0.0 +fr 09_hydro_pump 2 144 2030 0.0 0.0 +fr 01_solar 2 145 2030 1.0 0.0 +fr 02_wind_on 2 145 2030 1.0 0.0 +fr 03_wind_off 2 145 2030 1.0 0.0 +fr 04_res 2 145 2030 1.0 0.0 +fr 05_nuclear 2 145 2030 1.0 0.0 +fr 06_coal 2 145 2030 1.0 0.0 +fr 07_gas 2 145 2030 1.0 0.0 +fr 08_non-res 2 145 2030 1.0 0.0 +fr 09_hydro_pump 2 145 2030 0.0 0.0 +fr 01_solar 2 146 2030 1.0 0.0 +fr 02_wind_on 2 146 2030 1.0 0.0 +fr 03_wind_off 2 146 2030 1.0 0.0 +fr 04_res 2 146 2030 1.0 0.0 +fr 05_nuclear 2 146 2030 1.0 0.0 +fr 06_coal 2 146 2030 1.0 0.0 +fr 07_gas 2 146 2030 1.0 0.0 +fr 08_non-res 2 146 2030 1.0 0.0 +fr 09_hydro_pump 2 146 2030 0.0 0.0 +fr 01_solar 2 147 2030 1.0 0.0 +fr 02_wind_on 2 147 2030 1.0 0.0 +fr 03_wind_off 2 147 2030 1.0 0.0 +fr 04_res 2 147 2030 1.0 0.0 +fr 05_nuclear 2 147 2030 1.0 0.0 +fr 06_coal 2 147 2030 1.0 0.0 +fr 07_gas 2 147 2030 1.0 0.0 +fr 08_non-res 2 147 2030 1.0 0.0 +fr 09_hydro_pump 2 147 2030 0.0 0.0 +fr 01_solar 2 148 2030 1.0 0.0 +fr 02_wind_on 2 148 2030 1.0 0.0 +fr 03_wind_off 2 148 2030 1.0 0.0 +fr 04_res 2 148 2030 1.0 0.0 +fr 05_nuclear 2 148 2030 1.0 0.0 +fr 06_coal 2 148 2030 1.0 0.0 +fr 07_gas 2 148 2030 1.0 0.0 +fr 08_non-res 2 148 2030 1.0 0.0 +fr 09_hydro_pump 2 148 2030 0.0 0.0 +fr 01_solar 2 149 2030 1.0 0.0 +fr 02_wind_on 2 149 2030 1.0 0.0 +fr 03_wind_off 2 149 2030 1.0 0.0 +fr 04_res 2 149 2030 1.0 0.0 +fr 05_nuclear 2 149 2030 1.0 0.0 +fr 06_coal 2 149 2030 1.0 0.0 +fr 07_gas 2 149 2030 1.0 0.0 +fr 08_non-res 2 149 2030 1.0 0.0 +fr 09_hydro_pump 2 149 2030 0.0 0.0 +fr 01_solar 2 150 2030 1.0 0.0 +fr 02_wind_on 2 150 2030 1.0 0.0 +fr 03_wind_off 2 150 2030 1.0 0.0 +fr 04_res 2 150 2030 1.0 0.0 +fr 05_nuclear 2 150 2030 1.0 0.0 +fr 06_coal 2 150 2030 1.0 0.0 +fr 07_gas 2 150 2030 1.0 0.0 +fr 08_non-res 2 150 2030 1.0 0.0 +fr 09_hydro_pump 2 150 2030 0.0 0.0 +fr 01_solar 2 151 2030 1.0 0.0 +fr 02_wind_on 2 151 2030 1.0 0.0 +fr 03_wind_off 2 151 2030 1.0 0.0 +fr 04_res 2 151 2030 1.0 0.0 +fr 05_nuclear 2 151 2030 1.0 0.0 +fr 06_coal 2 151 2030 1.0 0.0 +fr 07_gas 2 151 2030 1.0 0.0 +fr 08_non-res 2 151 2030 1.0 0.0 +fr 09_hydro_pump 2 151 2030 0.0 0.0 +fr 01_solar 2 152 2030 1.0 0.0 +fr 02_wind_on 2 152 2030 1.0 0.0 +fr 03_wind_off 2 152 2030 1.0 0.0 +fr 04_res 2 152 2030 1.0 0.0 +fr 05_nuclear 2 152 2030 1.0 0.0 +fr 06_coal 2 152 2030 1.0 0.0 +fr 07_gas 2 152 2030 1.0 0.0 +fr 08_non-res 2 152 2030 1.0 0.0 +fr 09_hydro_pump 2 152 2030 0.0 0.0 +fr 01_solar 2 153 2030 1.0 0.0 +fr 02_wind_on 2 153 2030 1.0 0.0 +fr 03_wind_off 2 153 2030 1.0 0.0 +fr 04_res 2 153 2030 1.0 0.0 +fr 05_nuclear 2 153 2030 1.0 0.0 +fr 06_coal 2 153 2030 1.0 0.0 +fr 07_gas 2 153 2030 1.0 0.0 +fr 08_non-res 2 153 2030 1.0 0.0 +fr 09_hydro_pump 2 153 2030 0.0 0.0 +fr 01_solar 2 154 2030 1.0 0.0 +fr 02_wind_on 2 154 2030 1.0 0.0 +fr 03_wind_off 2 154 2030 1.0 0.0 +fr 04_res 2 154 2030 1.0 0.0 +fr 05_nuclear 2 154 2030 1.0 0.0 +fr 06_coal 2 154 2030 1.0 0.0 +fr 07_gas 2 154 2030 1.0 0.0 +fr 08_non-res 2 154 2030 1.0 0.0 +fr 09_hydro_pump 2 154 2030 0.0 0.0 +fr 01_solar 2 155 2030 1.0 0.0 +fr 02_wind_on 2 155 2030 1.0 0.0 +fr 03_wind_off 2 155 2030 1.0 0.0 +fr 04_res 2 155 2030 1.0 0.0 +fr 05_nuclear 2 155 2030 1.0 0.0 +fr 06_coal 2 155 2030 1.0 0.0 +fr 07_gas 2 155 2030 1.0 0.0 +fr 08_non-res 2 155 2030 1.0 0.0 +fr 09_hydro_pump 2 155 2030 0.0 0.0 +fr 01_solar 2 156 2030 1.0 0.0 +fr 02_wind_on 2 156 2030 1.0 0.0 +fr 03_wind_off 2 156 2030 1.0 0.0 +fr 04_res 2 156 2030 1.0 0.0 +fr 05_nuclear 2 156 2030 1.0 0.0 +fr 06_coal 2 156 2030 1.0 0.0 +fr 07_gas 2 156 2030 1.0 0.0 +fr 08_non-res 2 156 2030 1.0 0.0 +fr 09_hydro_pump 2 156 2030 0.0 0.0 +fr 01_solar 2 157 2030 1.0 0.0 +fr 02_wind_on 2 157 2030 1.0 0.0 +fr 03_wind_off 2 157 2030 1.0 0.0 +fr 04_res 2 157 2030 1.0 0.0 +fr 05_nuclear 2 157 2030 1.0 0.0 +fr 06_coal 2 157 2030 1.0 0.0 +fr 07_gas 2 157 2030 1.0 0.0 +fr 08_non-res 2 157 2030 1.0 0.0 +fr 09_hydro_pump 2 157 2030 0.0 0.0 +fr 01_solar 2 158 2030 1.0 0.0 +fr 02_wind_on 2 158 2030 1.0 0.0 +fr 03_wind_off 2 158 2030 1.0 0.0 +fr 04_res 2 158 2030 1.0 0.0 +fr 05_nuclear 2 158 2030 1.0 0.0 +fr 06_coal 2 158 2030 1.0 0.0 +fr 07_gas 2 158 2030 1.0 0.0 +fr 08_non-res 2 158 2030 1.0 0.0 +fr 09_hydro_pump 2 158 2030 0.0 0.0 +fr 01_solar 2 159 2030 1.0 0.0 +fr 02_wind_on 2 159 2030 1.0 0.0 +fr 03_wind_off 2 159 2030 1.0 0.0 +fr 04_res 2 159 2030 1.0 0.0 +fr 05_nuclear 2 159 2030 1.0 0.0 +fr 06_coal 2 159 2030 1.0 0.0 +fr 07_gas 2 159 2030 1.0 0.0 +fr 08_non-res 2 159 2030 1.0 0.0 +fr 09_hydro_pump 2 159 2030 0.0 0.0 +fr 01_solar 2 160 2030 1.0 0.0 +fr 02_wind_on 2 160 2030 1.0 0.0 +fr 03_wind_off 2 160 2030 1.0 0.0 +fr 04_res 2 160 2030 1.0 0.0 +fr 05_nuclear 2 160 2030 1.0 0.0 +fr 06_coal 2 160 2030 1.0 0.0 +fr 07_gas 2 160 2030 1.0 0.0 +fr 08_non-res 2 160 2030 1.0 0.0 +fr 09_hydro_pump 2 160 2030 0.0 0.0 +fr 01_solar 2 161 2030 1.0 0.0 +fr 02_wind_on 2 161 2030 1.0 0.0 +fr 03_wind_off 2 161 2030 1.0 0.0 +fr 04_res 2 161 2030 1.0 0.0 +fr 05_nuclear 2 161 2030 1.0 0.0 +fr 06_coal 2 161 2030 1.0 0.0 +fr 07_gas 2 161 2030 1.0 0.0 +fr 08_non-res 2 161 2030 1.0 0.0 +fr 09_hydro_pump 2 161 2030 0.0 0.0 +fr 01_solar 2 162 2030 1.0 0.0 +fr 02_wind_on 2 162 2030 1.0 0.0 +fr 03_wind_off 2 162 2030 1.0 0.0 +fr 04_res 2 162 2030 1.0 0.0 +fr 05_nuclear 2 162 2030 1.0 0.0 +fr 06_coal 2 162 2030 1.0 0.0 +fr 07_gas 2 162 2030 1.0 0.0 +fr 08_non-res 2 162 2030 1.0 0.0 +fr 09_hydro_pump 2 162 2030 1.0 0.0 +fr 01_solar 2 163 2030 1.0 0.0 +fr 02_wind_on 2 163 2030 1.0 0.0 +fr 03_wind_off 2 163 2030 1.0 0.0 +fr 04_res 2 163 2030 1.0 0.0 +fr 05_nuclear 2 163 2030 1.0 0.0 +fr 06_coal 2 163 2030 1.0 0.0 +fr 07_gas 2 163 2030 1.0 0.0 +fr 08_non-res 2 163 2030 1.0 0.0 +fr 09_hydro_pump 2 163 2030 1.0 0.0 +fr 01_solar 2 164 2030 1.0 0.0 +fr 02_wind_on 2 164 2030 1.0 0.0 +fr 03_wind_off 2 164 2030 1.0 0.0 +fr 04_res 2 164 2030 1.0 0.0 +fr 05_nuclear 2 164 2030 1.0 0.0 +fr 06_coal 2 164 2030 1.0 0.0 +fr 07_gas 2 164 2030 1.0 0.0 +fr 08_non-res 2 164 2030 1.0 0.0 +fr 09_hydro_pump 2 164 2030 1.0 0.0 +fr 01_solar 2 165 2030 1.0 0.0 +fr 02_wind_on 2 165 2030 1.0 0.0 +fr 03_wind_off 2 165 2030 1.0 0.0 +fr 04_res 2 165 2030 1.0 0.0 +fr 05_nuclear 2 165 2030 1.0 0.0 +fr 06_coal 2 165 2030 1.0 0.0 +fr 07_gas 2 165 2030 1.0 0.0 +fr 08_non-res 2 165 2030 1.0 0.0 +fr 09_hydro_pump 2 165 2030 1.0 0.0 +fr 01_solar 2 166 2030 1.0 0.0 +fr 02_wind_on 2 166 2030 1.0 0.0 +fr 03_wind_off 2 166 2030 1.0 0.0 +fr 04_res 2 166 2030 1.0 0.0 +fr 05_nuclear 2 166 2030 1.0 0.0 +fr 06_coal 2 166 2030 1.0 0.0 +fr 07_gas 2 166 2030 1.0 0.0 +fr 08_non-res 2 166 2030 1.0 0.0 +fr 09_hydro_pump 2 166 2030 1.0 0.0 +fr 01_solar 2 167 2030 1.0 0.0 +fr 02_wind_on 2 167 2030 1.0 0.0 +fr 03_wind_off 2 167 2030 1.0 0.0 +fr 04_res 2 167 2030 1.0 0.0 +fr 05_nuclear 2 167 2030 1.0 0.0 +fr 06_coal 2 167 2030 1.0 0.0 +fr 07_gas 2 167 2030 1.0 0.0 +fr 08_non-res 2 167 2030 1.0 0.0 +fr 09_hydro_pump 2 167 2030 1.0 0.0 +fr 01_solar 2 168 2030 1.0 0.0 +fr 02_wind_on 2 168 2030 1.0 0.0 +fr 03_wind_off 2 168 2030 1.0 0.0 +fr 04_res 2 168 2030 1.0 0.0 +fr 05_nuclear 2 168 2030 1.0 0.0 +fr 06_coal 2 168 2030 1.0 0.0 +fr 07_gas 2 168 2030 1.0 0.0 +fr 08_non-res 2 168 2030 1.0 0.0 +fr 09_hydro_pump 2 168 2030 1.0 0.0 +fr 01_solar 2 169 2030 0.0 0.0 +fr 02_wind_on 2 169 2030 0.0 0.0 +fr 03_wind_off 2 169 2030 0.0 0.0 +fr 04_res 2 169 2030 0.0 0.0 +fr 05_nuclear 2 169 2030 0.0 0.0 +fr 06_coal 2 169 2030 0.0 0.0 +fr 07_gas 2 169 2030 0.0 0.0 +fr 08_non-res 2 169 2030 0.0 0.0 +fr 09_hydro_pump 2 169 2030 0.0 0.0 +fr 01_solar 2 170 2030 1.0 0.0 +fr 02_wind_on 2 170 2030 0.0 0.0 +fr 03_wind_off 2 170 2030 0.0 0.0 +fr 04_res 2 170 2030 0.0 0.0 +fr 05_nuclear 2 170 2030 0.0 0.0 +fr 06_coal 2 170 2030 0.0 0.0 +fr 07_gas 2 170 2030 0.0 0.0 +fr 08_non-res 2 170 2030 0.0 0.0 +fr 09_hydro_pump 2 170 2030 0.0 0.0 +fr 01_solar 2 171 2030 1.0 0.0 +fr 02_wind_on 2 171 2030 0.0 0.0 +fr 03_wind_off 2 171 2030 0.0 0.0 +fr 04_res 2 171 2030 0.0 0.0 +fr 05_nuclear 2 171 2030 0.0 0.0 +fr 06_coal 2 171 2030 0.0 0.0 +fr 07_gas 2 171 2030 0.0 0.0 +fr 08_non-res 2 171 2030 0.0 0.0 +fr 09_hydro_pump 2 171 2030 0.0 0.0 +fr 01_solar 2 172 2030 1.0 0.0 +fr 02_wind_on 2 172 2030 0.0 0.0 +fr 03_wind_off 2 172 2030 0.0 0.0 +fr 04_res 2 172 2030 0.0 0.0 +fr 05_nuclear 2 172 2030 0.0 0.0 +fr 06_coal 2 172 2030 0.0 0.0 +fr 07_gas 2 172 2030 0.0 0.0 +fr 08_non-res 2 172 2030 0.0 0.0 +fr 09_hydro_pump 2 172 2030 0.0 0.0 +fr 01_solar 2 173 2030 1.0 0.0 +fr 02_wind_on 2 173 2030 0.0 0.0 +fr 03_wind_off 2 173 2030 0.0 0.0 +fr 04_res 2 173 2030 0.0 0.0 +fr 05_nuclear 2 173 2030 0.0 0.0 +fr 06_coal 2 173 2030 0.0 0.0 +fr 07_gas 2 173 2030 0.0 0.0 +fr 08_non-res 2 173 2030 0.0 0.0 +fr 09_hydro_pump 2 173 2030 0.0 0.0 +fr 01_solar 2 174 2030 1.0 0.0 +fr 02_wind_on 2 174 2030 0.0 0.0 +fr 03_wind_off 2 174 2030 0.0 0.0 +fr 04_res 2 174 2030 0.0 0.0 +fr 05_nuclear 2 174 2030 0.0 0.0 +fr 06_coal 2 174 2030 0.0 0.0 +fr 07_gas 2 174 2030 0.0 0.0 +fr 08_non-res 2 174 2030 0.0 0.0 +fr 09_hydro_pump 2 174 2030 0.0 0.0 +fr 01_solar 2 175 2030 1.0 0.0 +fr 02_wind_on 2 175 2030 0.0 0.0 +fr 03_wind_off 2 175 2030 0.0 0.0 +fr 04_res 2 175 2030 0.0 0.0 +fr 05_nuclear 2 175 2030 0.0 0.0 +fr 06_coal 2 175 2030 0.0 0.0 +fr 07_gas 2 175 2030 0.0 0.0 +fr 08_non-res 2 175 2030 0.0 0.0 +fr 09_hydro_pump 2 175 2030 0.0 0.0 +fr 01_solar 2 176 2030 1.0 0.0 +fr 02_wind_on 2 176 2030 0.0 0.0 +fr 03_wind_off 2 176 2030 0.0 0.0 +fr 04_res 2 176 2030 0.0 0.0 +fr 05_nuclear 2 176 2030 0.0 0.0 +fr 06_coal 2 176 2030 0.0 0.0 +fr 07_gas 2 176 2030 0.0 0.0 +fr 08_non-res 2 176 2030 0.0 0.0 +fr 09_hydro_pump 2 176 2030 0.0 0.0 +fr 01_solar 2 177 2030 1.0 0.0 +fr 02_wind_on 2 177 2030 0.0 0.0 +fr 03_wind_off 2 177 2030 0.0 0.0 +fr 04_res 2 177 2030 0.0 0.0 +fr 05_nuclear 2 177 2030 0.0 0.0 +fr 06_coal 2 177 2030 0.0 0.0 +fr 07_gas 2 177 2030 0.0 0.0 +fr 08_non-res 2 177 2030 0.0 0.0 +fr 09_hydro_pump 2 177 2030 0.0 0.0 +fr 01_solar 2 178 2030 1.0 0.0 +fr 02_wind_on 2 178 2030 0.0 0.0 +fr 03_wind_off 2 178 2030 0.0 0.0 +fr 04_res 2 178 2030 0.0 0.0 +fr 05_nuclear 2 178 2030 0.0 0.0 +fr 06_coal 2 178 2030 0.0 0.0 +fr 07_gas 2 178 2030 0.0 0.0 +fr 08_non-res 2 178 2030 0.0 0.0 +fr 09_hydro_pump 2 178 2030 0.0 0.0 +fr 01_solar 2 179 2030 1.0 0.0 +fr 02_wind_on 2 179 2030 0.0 0.0 +fr 03_wind_off 2 179 2030 0.0 0.0 +fr 04_res 2 179 2030 0.0 0.0 +fr 05_nuclear 2 179 2030 0.0 0.0 +fr 06_coal 2 179 2030 0.0 0.0 +fr 07_gas 2 179 2030 0.0 0.0 +fr 08_non-res 2 179 2030 0.0 0.0 +fr 09_hydro_pump 2 179 2030 0.0 0.0 +fr 01_solar 2 180 2030 1.0 0.0 +fr 02_wind_on 2 180 2030 0.0 0.0 +fr 03_wind_off 2 180 2030 0.0 0.0 +fr 04_res 2 180 2030 0.0 0.0 +fr 05_nuclear 2 180 2030 0.0 0.0 +fr 06_coal 2 180 2030 0.0 0.0 +fr 07_gas 2 180 2030 0.0 0.0 +fr 08_non-res 2 180 2030 0.0 0.0 +fr 09_hydro_pump 2 180 2030 0.0 0.0 +fr 01_solar 2 181 2030 1.0 0.0 +fr 02_wind_on 2 181 2030 0.0 0.0 +fr 03_wind_off 2 181 2030 0.0 0.0 +fr 04_res 2 181 2030 0.0 0.0 +fr 05_nuclear 2 181 2030 0.0 0.0 +fr 06_coal 2 181 2030 0.0 0.0 +fr 07_gas 2 181 2030 0.0 0.0 +fr 08_non-res 2 181 2030 0.0 0.0 +fr 09_hydro_pump 2 181 2030 0.0 0.0 +fr 01_solar 2 182 2030 1.0 0.0 +fr 02_wind_on 2 182 2030 0.0 0.0 +fr 03_wind_off 2 182 2030 0.0 0.0 +fr 04_res 2 182 2030 0.0 0.0 +fr 05_nuclear 2 182 2030 0.0 0.0 +fr 06_coal 2 182 2030 0.0 0.0 +fr 07_gas 2 182 2030 0.0 0.0 +fr 08_non-res 2 182 2030 0.0 0.0 +fr 09_hydro_pump 2 182 2030 0.0 0.0 +fr 01_solar 2 183 2030 1.0 0.0 +fr 02_wind_on 2 183 2030 0.0 0.0 +fr 03_wind_off 2 183 2030 0.0 0.0 +fr 04_res 2 183 2030 0.0 0.0 +fr 05_nuclear 2 183 2030 0.0 0.0 +fr 06_coal 2 183 2030 0.0 0.0 +fr 07_gas 2 183 2030 0.0 0.0 +fr 08_non-res 2 183 2030 0.0 0.0 +fr 09_hydro_pump 2 183 2030 0.0 0.0 +fr 01_solar 2 184 2030 1.0 0.0 +fr 02_wind_on 2 184 2030 0.0 0.0 +fr 03_wind_off 2 184 2030 0.0 0.0 +fr 04_res 2 184 2030 0.0 0.0 +fr 05_nuclear 2 184 2030 0.0 0.0 +fr 06_coal 2 184 2030 0.0 0.0 +fr 07_gas 2 184 2030 0.0 0.0 +fr 08_non-res 2 184 2030 0.0 0.0 +fr 09_hydro_pump 2 184 2030 0.0 0.0 +fr 01_solar 2 185 2030 1.0 0.0 +fr 02_wind_on 2 185 2030 0.0 0.0 +fr 03_wind_off 2 185 2030 0.0 0.0 +fr 04_res 2 185 2030 0.0 0.0 +fr 05_nuclear 2 185 2030 0.0 0.0 +fr 06_coal 2 185 2030 0.0 0.0 +fr 07_gas 2 185 2030 0.0 0.0 +fr 08_non-res 2 185 2030 0.0 0.0 +fr 09_hydro_pump 2 185 2030 0.0 0.0 +fr 01_solar 2 186 2030 1.0 0.0 +fr 02_wind_on 2 186 2030 0.0 0.0 +fr 03_wind_off 2 186 2030 0.0 0.0 +fr 04_res 2 186 2030 0.0 0.0 +fr 05_nuclear 2 186 2030 0.0 0.0 +fr 06_coal 2 186 2030 0.0 0.0 +fr 07_gas 2 186 2030 0.0 0.0 +fr 08_non-res 2 186 2030 0.0 0.0 +fr 09_hydro_pump 2 186 2030 0.0 0.0 +fr 01_solar 2 187 2030 1.0 0.0 +fr 02_wind_on 2 187 2030 0.0 0.0 +fr 03_wind_off 2 187 2030 0.0 0.0 +fr 04_res 2 187 2030 0.0 0.0 +fr 05_nuclear 2 187 2030 0.0 0.0 +fr 06_coal 2 187 2030 0.0 0.0 +fr 07_gas 2 187 2030 0.0 0.0 +fr 08_non-res 2 187 2030 0.0 0.0 +fr 09_hydro_pump 2 187 2030 0.0 0.0 +fr 01_solar 2 188 2030 1.0 0.0 +fr 02_wind_on 2 188 2030 0.0 0.0 +fr 03_wind_off 2 188 2030 0.0 0.0 +fr 04_res 2 188 2030 0.0 0.0 +fr 05_nuclear 2 188 2030 0.0 0.0 +fr 06_coal 2 188 2030 0.0 0.0 +fr 07_gas 2 188 2030 0.0 0.0 +fr 08_non-res 2 188 2030 0.0 0.0 +fr 09_hydro_pump 2 188 2030 0.0 0.0 +fr 01_solar 2 189 2030 1.0 0.0 +fr 02_wind_on 2 189 2030 0.0 0.0 +fr 03_wind_off 2 189 2030 0.0 0.0 +fr 04_res 2 189 2030 0.0 0.0 +fr 05_nuclear 2 189 2030 0.0 0.0 +fr 06_coal 2 189 2030 0.0 0.0 +fr 07_gas 2 189 2030 0.0 0.0 +fr 08_non-res 2 189 2030 0.0 0.0 +fr 09_hydro_pump 2 189 2030 0.0 0.0 +fr 01_solar 2 190 2030 1.0 0.0 +fr 02_wind_on 2 190 2030 1.0 0.0 +fr 03_wind_off 2 190 2030 0.0 0.0 +fr 04_res 2 190 2030 0.0 0.0 +fr 05_nuclear 2 190 2030 0.0 0.0 +fr 06_coal 2 190 2030 0.0 0.0 +fr 07_gas 2 190 2030 0.0 0.0 +fr 08_non-res 2 190 2030 0.0 0.0 +fr 09_hydro_pump 2 190 2030 0.0 0.0 +fr 01_solar 2 191 2030 1.0 0.0 +fr 02_wind_on 2 191 2030 1.0 0.0 +fr 03_wind_off 2 191 2030 0.0 0.0 +fr 04_res 2 191 2030 0.0 0.0 +fr 05_nuclear 2 191 2030 0.0 0.0 +fr 06_coal 2 191 2030 0.0 0.0 +fr 07_gas 2 191 2030 0.0 0.0 +fr 08_non-res 2 191 2030 0.0 0.0 +fr 09_hydro_pump 2 191 2030 0.0 0.0 +fr 01_solar 2 192 2030 1.0 0.0 +fr 02_wind_on 2 192 2030 1.0 0.0 +fr 03_wind_off 2 192 2030 0.0 0.0 +fr 04_res 2 192 2030 0.0 0.0 +fr 05_nuclear 2 192 2030 0.0 0.0 +fr 06_coal 2 192 2030 0.0 0.0 +fr 07_gas 2 192 2030 0.0 0.0 +fr 08_non-res 2 192 2030 0.0 0.0 +fr 09_hydro_pump 2 192 2030 0.0 0.0 +fr 01_solar 2 193 2030 1.0 0.0 +fr 02_wind_on 2 193 2030 1.0 0.0 +fr 03_wind_off 2 193 2030 0.0 0.0 +fr 04_res 2 193 2030 0.0 0.0 +fr 05_nuclear 2 193 2030 0.0 0.0 +fr 06_coal 2 193 2030 0.0 0.0 +fr 07_gas 2 193 2030 0.0 0.0 +fr 08_non-res 2 193 2030 0.0 0.0 +fr 09_hydro_pump 2 193 2030 0.0 0.0 +fr 01_solar 2 194 2030 1.0 0.0 +fr 02_wind_on 2 194 2030 1.0 0.0 +fr 03_wind_off 2 194 2030 0.0 0.0 +fr 04_res 2 194 2030 0.0 0.0 +fr 05_nuclear 2 194 2030 0.0 0.0 +fr 06_coal 2 194 2030 0.0 0.0 +fr 07_gas 2 194 2030 0.0 0.0 +fr 08_non-res 2 194 2030 0.0 0.0 +fr 09_hydro_pump 2 194 2030 0.0 0.0 +fr 01_solar 2 195 2030 1.0 0.0 +fr 02_wind_on 2 195 2030 1.0 0.0 +fr 03_wind_off 2 195 2030 0.0 0.0 +fr 04_res 2 195 2030 0.0 0.0 +fr 05_nuclear 2 195 2030 0.0 0.0 +fr 06_coal 2 195 2030 0.0 0.0 +fr 07_gas 2 195 2030 0.0 0.0 +fr 08_non-res 2 195 2030 0.0 0.0 +fr 09_hydro_pump 2 195 2030 0.0 0.0 +fr 01_solar 2 196 2030 1.0 0.0 +fr 02_wind_on 2 196 2030 1.0 0.0 +fr 03_wind_off 2 196 2030 0.0 0.0 +fr 04_res 2 196 2030 0.0 0.0 +fr 05_nuclear 2 196 2030 0.0 0.0 +fr 06_coal 2 196 2030 0.0 0.0 +fr 07_gas 2 196 2030 0.0 0.0 +fr 08_non-res 2 196 2030 0.0 0.0 +fr 09_hydro_pump 2 196 2030 0.0 0.0 +fr 01_solar 2 197 2030 1.0 0.0 +fr 02_wind_on 2 197 2030 1.0 0.0 +fr 03_wind_off 2 197 2030 0.0 0.0 +fr 04_res 2 197 2030 0.0 0.0 +fr 05_nuclear 2 197 2030 0.0 0.0 +fr 06_coal 2 197 2030 0.0 0.0 +fr 07_gas 2 197 2030 0.0 0.0 +fr 08_non-res 2 197 2030 0.0 0.0 +fr 09_hydro_pump 2 197 2030 0.0 0.0 +fr 01_solar 2 198 2030 1.0 0.0 +fr 02_wind_on 2 198 2030 1.0 0.0 +fr 03_wind_off 2 198 2030 0.0 0.0 +fr 04_res 2 198 2030 0.0 0.0 +fr 05_nuclear 2 198 2030 0.0 0.0 +fr 06_coal 2 198 2030 0.0 0.0 +fr 07_gas 2 198 2030 0.0 0.0 +fr 08_non-res 2 198 2030 0.0 0.0 +fr 09_hydro_pump 2 198 2030 0.0 0.0 +fr 01_solar 2 199 2030 1.0 0.0 +fr 02_wind_on 2 199 2030 1.0 0.0 +fr 03_wind_off 2 199 2030 0.0 0.0 +fr 04_res 2 199 2030 0.0 0.0 +fr 05_nuclear 2 199 2030 0.0 0.0 +fr 06_coal 2 199 2030 0.0 0.0 +fr 07_gas 2 199 2030 0.0 0.0 +fr 08_non-res 2 199 2030 0.0 0.0 +fr 09_hydro_pump 2 199 2030 0.0 0.0 +fr 01_solar 2 200 2030 1.0 0.0 +fr 02_wind_on 2 200 2030 1.0 0.0 +fr 03_wind_off 2 200 2030 0.0 0.0 +fr 04_res 2 200 2030 0.0 0.0 +fr 05_nuclear 2 200 2030 0.0 0.0 +fr 06_coal 2 200 2030 0.0 0.0 +fr 07_gas 2 200 2030 0.0 0.0 +fr 08_non-res 2 200 2030 0.0 0.0 +fr 09_hydro_pump 2 200 2030 0.0 0.0 +fr 01_solar 2 201 2030 1.0 0.0 +fr 02_wind_on 2 201 2030 1.0 0.0 +fr 03_wind_off 2 201 2030 0.0 0.0 +fr 04_res 2 201 2030 0.0 0.0 +fr 05_nuclear 2 201 2030 0.0 0.0 +fr 06_coal 2 201 2030 0.0 0.0 +fr 07_gas 2 201 2030 0.0 0.0 +fr 08_non-res 2 201 2030 0.0 0.0 +fr 09_hydro_pump 2 201 2030 0.0 0.0 +fr 01_solar 2 202 2030 1.0 0.0 +fr 02_wind_on 2 202 2030 1.0 0.0 +fr 03_wind_off 2 202 2030 0.0 0.0 +fr 04_res 2 202 2030 0.0 0.0 +fr 05_nuclear 2 202 2030 0.0 0.0 +fr 06_coal 2 202 2030 0.0 0.0 +fr 07_gas 2 202 2030 0.0 0.0 +fr 08_non-res 2 202 2030 0.0 0.0 +fr 09_hydro_pump 2 202 2030 0.0 0.0 +fr 01_solar 2 203 2030 1.0 0.0 +fr 02_wind_on 2 203 2030 1.0 0.0 +fr 03_wind_off 2 203 2030 0.0 0.0 +fr 04_res 2 203 2030 0.0 0.0 +fr 05_nuclear 2 203 2030 0.0 0.0 +fr 06_coal 2 203 2030 0.0 0.0 +fr 07_gas 2 203 2030 0.0 0.0 +fr 08_non-res 2 203 2030 0.0 0.0 +fr 09_hydro_pump 2 203 2030 0.0 0.0 +fr 01_solar 2 204 2030 1.0 0.0 +fr 02_wind_on 2 204 2030 1.0 0.0 +fr 03_wind_off 2 204 2030 0.0 0.0 +fr 04_res 2 204 2030 0.0 0.0 +fr 05_nuclear 2 204 2030 0.0 0.0 +fr 06_coal 2 204 2030 0.0 0.0 +fr 07_gas 2 204 2030 0.0 0.0 +fr 08_non-res 2 204 2030 0.0 0.0 +fr 09_hydro_pump 2 204 2030 0.0 0.0 +fr 01_solar 2 205 2030 1.0 0.0 +fr 02_wind_on 2 205 2030 1.0 0.0 +fr 03_wind_off 2 205 2030 0.0 0.0 +fr 04_res 2 205 2030 0.0 0.0 +fr 05_nuclear 2 205 2030 0.0 0.0 +fr 06_coal 2 205 2030 0.0 0.0 +fr 07_gas 2 205 2030 0.0 0.0 +fr 08_non-res 2 205 2030 0.0 0.0 +fr 09_hydro_pump 2 205 2030 0.0 0.0 +fr 01_solar 2 206 2030 1.0 0.0 +fr 02_wind_on 2 206 2030 1.0 0.0 +fr 03_wind_off 2 206 2030 0.0 0.0 +fr 04_res 2 206 2030 0.0 0.0 +fr 05_nuclear 2 206 2030 0.0 0.0 +fr 06_coal 2 206 2030 0.0 0.0 +fr 07_gas 2 206 2030 0.0 0.0 +fr 08_non-res 2 206 2030 0.0 0.0 +fr 09_hydro_pump 2 206 2030 0.0 0.0 +fr 01_solar 2 207 2030 1.0 0.0 +fr 02_wind_on 2 207 2030 1.0 0.0 +fr 03_wind_off 2 207 2030 0.0 0.0 +fr 04_res 2 207 2030 0.0 0.0 +fr 05_nuclear 2 207 2030 0.0 0.0 +fr 06_coal 2 207 2030 0.0 0.0 +fr 07_gas 2 207 2030 0.0 0.0 +fr 08_non-res 2 207 2030 0.0 0.0 +fr 09_hydro_pump 2 207 2030 0.0 0.0 +fr 01_solar 2 208 2030 1.0 0.0 +fr 02_wind_on 2 208 2030 1.0 0.0 +fr 03_wind_off 2 208 2030 0.0 0.0 +fr 04_res 2 208 2030 0.0 0.0 +fr 05_nuclear 2 208 2030 0.0 0.0 +fr 06_coal 2 208 2030 0.0 0.0 +fr 07_gas 2 208 2030 0.0 0.0 +fr 08_non-res 2 208 2030 0.0 0.0 +fr 09_hydro_pump 2 208 2030 0.0 0.0 +fr 01_solar 2 209 2030 1.0 0.0 +fr 02_wind_on 2 209 2030 1.0 0.0 +fr 03_wind_off 2 209 2030 0.0 0.0 +fr 04_res 2 209 2030 0.0 0.0 +fr 05_nuclear 2 209 2030 0.0 0.0 +fr 06_coal 2 209 2030 0.0 0.0 +fr 07_gas 2 209 2030 0.0 0.0 +fr 08_non-res 2 209 2030 0.0 0.0 +fr 09_hydro_pump 2 209 2030 0.0 0.0 +fr 01_solar 2 210 2030 1.0 0.0 +fr 02_wind_on 2 210 2030 1.0 0.0 +fr 03_wind_off 2 210 2030 1.0 0.0 +fr 04_res 2 210 2030 0.0 0.0 +fr 05_nuclear 2 210 2030 0.0 0.0 +fr 06_coal 2 210 2030 0.0 0.0 +fr 07_gas 2 210 2030 0.0 0.0 +fr 08_non-res 2 210 2030 0.0 0.0 +fr 09_hydro_pump 2 210 2030 0.0 0.0 +fr 01_solar 2 211 2030 1.0 0.0 +fr 02_wind_on 2 211 2030 1.0 0.0 +fr 03_wind_off 2 211 2030 1.0 0.0 +fr 04_res 2 211 2030 0.0 0.0 +fr 05_nuclear 2 211 2030 0.0 0.0 +fr 06_coal 2 211 2030 0.0 0.0 +fr 07_gas 2 211 2030 0.0 0.0 +fr 08_non-res 2 211 2030 0.0 0.0 +fr 09_hydro_pump 2 211 2030 0.0 0.0 +fr 01_solar 2 212 2030 1.0 0.0 +fr 02_wind_on 2 212 2030 1.0 0.0 +fr 03_wind_off 2 212 2030 1.0 0.0 +fr 04_res 2 212 2030 0.0 0.0 +fr 05_nuclear 2 212 2030 0.0 0.0 +fr 06_coal 2 212 2030 0.0 0.0 +fr 07_gas 2 212 2030 0.0 0.0 +fr 08_non-res 2 212 2030 0.0 0.0 +fr 09_hydro_pump 2 212 2030 0.0 0.0 +fr 01_solar 2 213 2030 1.0 0.0 +fr 02_wind_on 2 213 2030 1.0 0.0 +fr 03_wind_off 2 213 2030 1.0 0.0 +fr 04_res 2 213 2030 0.0 0.0 +fr 05_nuclear 2 213 2030 0.0 0.0 +fr 06_coal 2 213 2030 0.0 0.0 +fr 07_gas 2 213 2030 0.0 0.0 +fr 08_non-res 2 213 2030 0.0 0.0 +fr 09_hydro_pump 2 213 2030 0.0 0.0 +fr 01_solar 2 214 2030 1.0 0.0 +fr 02_wind_on 2 214 2030 1.0 0.0 +fr 03_wind_off 2 214 2030 1.0 0.0 +fr 04_res 2 214 2030 0.0 0.0 +fr 05_nuclear 2 214 2030 0.0 0.0 +fr 06_coal 2 214 2030 0.0 0.0 +fr 07_gas 2 214 2030 0.0 0.0 +fr 08_non-res 2 214 2030 0.0 0.0 +fr 09_hydro_pump 2 214 2030 0.0 0.0 +fr 01_solar 2 215 2030 1.0 0.0 +fr 02_wind_on 2 215 2030 1.0 0.0 +fr 03_wind_off 2 215 2030 1.0 0.0 +fr 04_res 2 215 2030 0.0 0.0 +fr 05_nuclear 2 215 2030 0.0 0.0 +fr 06_coal 2 215 2030 0.0 0.0 +fr 07_gas 2 215 2030 0.0 0.0 +fr 08_non-res 2 215 2030 0.0 0.0 +fr 09_hydro_pump 2 215 2030 0.0 0.0 +fr 01_solar 2 216 2030 1.0 0.0 +fr 02_wind_on 2 216 2030 1.0 0.0 +fr 03_wind_off 2 216 2030 1.0 0.0 +fr 04_res 2 216 2030 0.0 0.0 +fr 05_nuclear 2 216 2030 0.0 0.0 +fr 06_coal 2 216 2030 0.0 0.0 +fr 07_gas 2 216 2030 0.0 0.0 +fr 08_non-res 2 216 2030 0.0 0.0 +fr 09_hydro_pump 2 216 2030 0.0 0.0 +fr 01_solar 2 217 2030 1.0 0.0 +fr 02_wind_on 2 217 2030 1.0 0.0 +fr 03_wind_off 2 217 2030 1.0 0.0 +fr 04_res 2 217 2030 0.0 0.0 +fr 05_nuclear 2 217 2030 0.0 0.0 +fr 06_coal 2 217 2030 0.0 0.0 +fr 07_gas 2 217 2030 0.0 0.0 +fr 08_non-res 2 217 2030 0.0 0.0 +fr 09_hydro_pump 2 217 2030 0.0 0.0 +fr 01_solar 2 218 2030 1.0 0.0 +fr 02_wind_on 2 218 2030 1.0 0.0 +fr 03_wind_off 2 218 2030 1.0 0.0 +fr 04_res 2 218 2030 0.0 0.0 +fr 05_nuclear 2 218 2030 0.0 0.0 +fr 06_coal 2 218 2030 0.0 0.0 +fr 07_gas 2 218 2030 0.0 0.0 +fr 08_non-res 2 218 2030 0.0 0.0 +fr 09_hydro_pump 2 218 2030 0.0 0.0 +fr 01_solar 2 219 2030 1.0 0.0 +fr 02_wind_on 2 219 2030 1.0 0.0 +fr 03_wind_off 2 219 2030 1.0 0.0 +fr 04_res 2 219 2030 0.0 0.0 +fr 05_nuclear 2 219 2030 0.0 0.0 +fr 06_coal 2 219 2030 0.0 0.0 +fr 07_gas 2 219 2030 0.0 0.0 +fr 08_non-res 2 219 2030 0.0 0.0 +fr 09_hydro_pump 2 219 2030 0.0 0.0 +fr 01_solar 2 220 2030 1.0 0.0 +fr 02_wind_on 2 220 2030 1.0 0.0 +fr 03_wind_off 2 220 2030 1.0 0.0 +fr 04_res 2 220 2030 0.0 0.0 +fr 05_nuclear 2 220 2030 0.0 0.0 +fr 06_coal 2 220 2030 0.0 0.0 +fr 07_gas 2 220 2030 0.0 0.0 +fr 08_non-res 2 220 2030 0.0 0.0 +fr 09_hydro_pump 2 220 2030 0.0 0.0 +fr 01_solar 2 221 2030 1.0 0.0 +fr 02_wind_on 2 221 2030 1.0 0.0 +fr 03_wind_off 2 221 2030 1.0 0.0 +fr 04_res 2 221 2030 0.0 0.0 +fr 05_nuclear 2 221 2030 0.0 0.0 +fr 06_coal 2 221 2030 0.0 0.0 +fr 07_gas 2 221 2030 0.0 0.0 +fr 08_non-res 2 221 2030 0.0 0.0 +fr 09_hydro_pump 2 221 2030 0.0 0.0 +fr 01_solar 2 222 2030 1.0 0.0 +fr 02_wind_on 2 222 2030 1.0 0.0 +fr 03_wind_off 2 222 2030 1.0 0.0 +fr 04_res 2 222 2030 0.0 0.0 +fr 05_nuclear 2 222 2030 0.0 0.0 +fr 06_coal 2 222 2030 0.0 0.0 +fr 07_gas 2 222 2030 0.0 0.0 +fr 08_non-res 2 222 2030 0.0 0.0 +fr 09_hydro_pump 2 222 2030 0.0 0.0 +fr 01_solar 2 223 2030 1.0 0.0 +fr 02_wind_on 2 223 2030 1.0 0.0 +fr 03_wind_off 2 223 2030 1.0 0.0 +fr 04_res 2 223 2030 0.0 0.0 +fr 05_nuclear 2 223 2030 0.0 0.0 +fr 06_coal 2 223 2030 0.0 0.0 +fr 07_gas 2 223 2030 0.0 0.0 +fr 08_non-res 2 223 2030 0.0 0.0 +fr 09_hydro_pump 2 223 2030 0.0 0.0 +fr 01_solar 2 224 2030 1.0 0.0 +fr 02_wind_on 2 224 2030 1.0 0.0 +fr 03_wind_off 2 224 2030 1.0 0.0 +fr 04_res 2 224 2030 0.0 0.0 +fr 05_nuclear 2 224 2030 0.0 0.0 +fr 06_coal 2 224 2030 0.0 0.0 +fr 07_gas 2 224 2030 0.0 0.0 +fr 08_non-res 2 224 2030 0.0 0.0 +fr 09_hydro_pump 2 224 2030 0.0 0.0 +fr 01_solar 2 225 2030 1.0 0.0 +fr 02_wind_on 2 225 2030 1.0 0.0 +fr 03_wind_off 2 225 2030 1.0 0.0 +fr 04_res 2 225 2030 0.0 0.0 +fr 05_nuclear 2 225 2030 0.0 0.0 +fr 06_coal 2 225 2030 0.0 0.0 +fr 07_gas 2 225 2030 0.0 0.0 +fr 08_non-res 2 225 2030 0.0 0.0 +fr 09_hydro_pump 2 225 2030 0.0 0.0 +fr 01_solar 2 226 2030 1.0 0.0 +fr 02_wind_on 2 226 2030 1.0 0.0 +fr 03_wind_off 2 226 2030 1.0 0.0 +fr 04_res 2 226 2030 0.0 0.0 +fr 05_nuclear 2 226 2030 0.0 0.0 +fr 06_coal 2 226 2030 0.0 0.0 +fr 07_gas 2 226 2030 0.0 0.0 +fr 08_non-res 2 226 2030 0.0 0.0 +fr 09_hydro_pump 2 226 2030 0.0 0.0 +fr 01_solar 2 227 2030 1.0 0.0 +fr 02_wind_on 2 227 2030 1.0 0.0 +fr 03_wind_off 2 227 2030 1.0 0.0 +fr 04_res 2 227 2030 0.0 0.0 +fr 05_nuclear 2 227 2030 0.0 0.0 +fr 06_coal 2 227 2030 0.0 0.0 +fr 07_gas 2 227 2030 0.0 0.0 +fr 08_non-res 2 227 2030 0.0 0.0 +fr 09_hydro_pump 2 227 2030 0.0 0.0 +fr 01_solar 2 228 2030 1.0 0.0 +fr 02_wind_on 2 228 2030 1.0 0.0 +fr 03_wind_off 2 228 2030 1.0 0.0 +fr 04_res 2 228 2030 0.0 0.0 +fr 05_nuclear 2 228 2030 0.0 0.0 +fr 06_coal 2 228 2030 0.0 0.0 +fr 07_gas 2 228 2030 0.0 0.0 +fr 08_non-res 2 228 2030 0.0 0.0 +fr 09_hydro_pump 2 228 2030 0.0 0.0 +fr 01_solar 2 229 2030 1.0 0.0 +fr 02_wind_on 2 229 2030 1.0 0.0 +fr 03_wind_off 2 229 2030 1.0 0.0 +fr 04_res 2 229 2030 0.0 0.0 +fr 05_nuclear 2 229 2030 0.0 0.0 +fr 06_coal 2 229 2030 0.0 0.0 +fr 07_gas 2 229 2030 0.0 0.0 +fr 08_non-res 2 229 2030 0.0 0.0 +fr 09_hydro_pump 2 229 2030 0.0 0.0 +fr 01_solar 2 230 2030 1.0 0.0 +fr 02_wind_on 2 230 2030 1.0 0.0 +fr 03_wind_off 2 230 2030 1.0 0.0 +fr 04_res 2 230 2030 1.0 0.0 +fr 05_nuclear 2 230 2030 0.0 0.0 +fr 06_coal 2 230 2030 0.0 0.0 +fr 07_gas 2 230 2030 0.0 0.0 +fr 08_non-res 2 230 2030 0.0 0.0 +fr 09_hydro_pump 2 230 2030 0.0 0.0 +fr 01_solar 2 231 2030 1.0 0.0 +fr 02_wind_on 2 231 2030 1.0 0.0 +fr 03_wind_off 2 231 2030 1.0 0.0 +fr 04_res 2 231 2030 1.0 0.0 +fr 05_nuclear 2 231 2030 0.0 0.0 +fr 06_coal 2 231 2030 0.0 0.0 +fr 07_gas 2 231 2030 0.0 0.0 +fr 08_non-res 2 231 2030 0.0 0.0 +fr 09_hydro_pump 2 231 2030 0.0 0.0 +fr 01_solar 2 232 2030 1.0 0.0 +fr 02_wind_on 2 232 2030 1.0 0.0 +fr 03_wind_off 2 232 2030 1.0 0.0 +fr 04_res 2 232 2030 1.0 0.0 +fr 05_nuclear 2 232 2030 0.0 0.0 +fr 06_coal 2 232 2030 0.0 0.0 +fr 07_gas 2 232 2030 0.0 0.0 +fr 08_non-res 2 232 2030 0.0 0.0 +fr 09_hydro_pump 2 232 2030 0.0 0.0 +fr 01_solar 2 233 2030 1.0 0.0 +fr 02_wind_on 2 233 2030 1.0 0.0 +fr 03_wind_off 2 233 2030 1.0 0.0 +fr 04_res 2 233 2030 1.0 0.0 +fr 05_nuclear 2 233 2030 0.0 0.0 +fr 06_coal 2 233 2030 0.0 0.0 +fr 07_gas 2 233 2030 0.0 0.0 +fr 08_non-res 2 233 2030 0.0 0.0 +fr 09_hydro_pump 2 233 2030 0.0 0.0 +fr 01_solar 2 234 2030 1.0 0.0 +fr 02_wind_on 2 234 2030 1.0 0.0 +fr 03_wind_off 2 234 2030 1.0 0.0 +fr 04_res 2 234 2030 1.0 0.0 +fr 05_nuclear 2 234 2030 0.0 0.0 +fr 06_coal 2 234 2030 0.0 0.0 +fr 07_gas 2 234 2030 0.0 0.0 +fr 08_non-res 2 234 2030 0.0 0.0 +fr 09_hydro_pump 2 234 2030 0.0 0.0 +fr 01_solar 2 235 2030 1.0 0.0 +fr 02_wind_on 2 235 2030 1.0 0.0 +fr 03_wind_off 2 235 2030 1.0 0.0 +fr 04_res 2 235 2030 1.0 0.0 +fr 05_nuclear 2 235 2030 0.0 0.0 +fr 06_coal 2 235 2030 0.0 0.0 +fr 07_gas 2 235 2030 0.0 0.0 +fr 08_non-res 2 235 2030 0.0 0.0 +fr 09_hydro_pump 2 235 2030 0.0 0.0 +fr 01_solar 2 236 2030 1.0 0.0 +fr 02_wind_on 2 236 2030 1.0 0.0 +fr 03_wind_off 2 236 2030 1.0 0.0 +fr 04_res 2 236 2030 1.0 0.0 +fr 05_nuclear 2 236 2030 0.0 0.0 +fr 06_coal 2 236 2030 0.0 0.0 +fr 07_gas 2 236 2030 0.0 0.0 +fr 08_non-res 2 236 2030 0.0 0.0 +fr 09_hydro_pump 2 236 2030 0.0 0.0 +fr 01_solar 2 237 2030 1.0 0.0 +fr 02_wind_on 2 237 2030 1.0 0.0 +fr 03_wind_off 2 237 2030 1.0 0.0 +fr 04_res 2 237 2030 1.0 0.0 +fr 05_nuclear 2 237 2030 0.0 0.0 +fr 06_coal 2 237 2030 0.0 0.0 +fr 07_gas 2 237 2030 0.0 0.0 +fr 08_non-res 2 237 2030 0.0 0.0 +fr 09_hydro_pump 2 237 2030 0.0 0.0 +fr 01_solar 2 238 2030 1.0 0.0 +fr 02_wind_on 2 238 2030 1.0 0.0 +fr 03_wind_off 2 238 2030 1.0 0.0 +fr 04_res 2 238 2030 1.0 0.0 +fr 05_nuclear 2 238 2030 0.0 0.0 +fr 06_coal 2 238 2030 0.0 0.0 +fr 07_gas 2 238 2030 0.0 0.0 +fr 08_non-res 2 238 2030 0.0 0.0 +fr 09_hydro_pump 2 238 2030 0.0 0.0 +fr 01_solar 2 239 2030 1.0 0.0 +fr 02_wind_on 2 239 2030 1.0 0.0 +fr 03_wind_off 2 239 2030 1.0 0.0 +fr 04_res 2 239 2030 1.0 0.0 +fr 05_nuclear 2 239 2030 0.0 0.0 +fr 06_coal 2 239 2030 0.0 0.0 +fr 07_gas 2 239 2030 0.0 0.0 +fr 08_non-res 2 239 2030 0.0 0.0 +fr 09_hydro_pump 2 239 2030 0.0 0.0 +fr 01_solar 2 240 2030 1.0 0.0 +fr 02_wind_on 2 240 2030 1.0 0.0 +fr 03_wind_off 2 240 2030 1.0 0.0 +fr 04_res 2 240 2030 1.0 0.0 +fr 05_nuclear 2 240 2030 0.0 0.0 +fr 06_coal 2 240 2030 0.0 0.0 +fr 07_gas 2 240 2030 0.0 0.0 +fr 08_non-res 2 240 2030 0.0 0.0 +fr 09_hydro_pump 2 240 2030 0.0 0.0 +fr 01_solar 2 241 2030 1.0 0.0 +fr 02_wind_on 2 241 2030 1.0 0.0 +fr 03_wind_off 2 241 2030 1.0 0.0 +fr 04_res 2 241 2030 1.0 0.0 +fr 05_nuclear 2 241 2030 0.0 0.0 +fr 06_coal 2 241 2030 0.0 0.0 +fr 07_gas 2 241 2030 0.0 0.0 +fr 08_non-res 2 241 2030 0.0 0.0 +fr 09_hydro_pump 2 241 2030 0.0 0.0 +fr 01_solar 2 242 2030 1.0 0.0 +fr 02_wind_on 2 242 2030 1.0 0.0 +fr 03_wind_off 2 242 2030 1.0 0.0 +fr 04_res 2 242 2030 1.0 0.0 +fr 05_nuclear 2 242 2030 0.0 0.0 +fr 06_coal 2 242 2030 0.0 0.0 +fr 07_gas 2 242 2030 0.0 0.0 +fr 08_non-res 2 242 2030 0.0 0.0 +fr 09_hydro_pump 2 242 2030 0.0 0.0 +fr 01_solar 2 243 2030 1.0 0.0 +fr 02_wind_on 2 243 2030 1.0 0.0 +fr 03_wind_off 2 243 2030 1.0 0.0 +fr 04_res 2 243 2030 1.0 0.0 +fr 05_nuclear 2 243 2030 0.0 0.0 +fr 06_coal 2 243 2030 0.0 0.0 +fr 07_gas 2 243 2030 0.0 0.0 +fr 08_non-res 2 243 2030 0.0 0.0 +fr 09_hydro_pump 2 243 2030 0.0 0.0 +fr 01_solar 2 244 2030 1.0 0.0 +fr 02_wind_on 2 244 2030 1.0 0.0 +fr 03_wind_off 2 244 2030 1.0 0.0 +fr 04_res 2 244 2030 1.0 0.0 +fr 05_nuclear 2 244 2030 0.0 0.0 +fr 06_coal 2 244 2030 0.0 0.0 +fr 07_gas 2 244 2030 0.0 0.0 +fr 08_non-res 2 244 2030 0.0 0.0 +fr 09_hydro_pump 2 244 2030 0.0 0.0 +fr 01_solar 2 245 2030 1.0 0.0 +fr 02_wind_on 2 245 2030 1.0 0.0 +fr 03_wind_off 2 245 2030 1.0 0.0 +fr 04_res 2 245 2030 1.0 0.0 +fr 05_nuclear 2 245 2030 0.0 0.0 +fr 06_coal 2 245 2030 0.0 0.0 +fr 07_gas 2 245 2030 0.0 0.0 +fr 08_non-res 2 245 2030 0.0 0.0 +fr 09_hydro_pump 2 245 2030 0.0 0.0 +fr 01_solar 2 246 2030 1.0 0.0 +fr 02_wind_on 2 246 2030 1.0 0.0 +fr 03_wind_off 2 246 2030 1.0 0.0 +fr 04_res 2 246 2030 1.0 0.0 +fr 05_nuclear 2 246 2030 0.0 0.0 +fr 06_coal 2 246 2030 0.0 0.0 +fr 07_gas 2 246 2030 0.0 0.0 +fr 08_non-res 2 246 2030 0.0 0.0 +fr 09_hydro_pump 2 246 2030 0.0 0.0 +fr 01_solar 2 247 2030 1.0 0.0 +fr 02_wind_on 2 247 2030 1.0 0.0 +fr 03_wind_off 2 247 2030 1.0 0.0 +fr 04_res 2 247 2030 1.0 0.0 +fr 05_nuclear 2 247 2030 0.0 0.0 +fr 06_coal 2 247 2030 0.0 0.0 +fr 07_gas 2 247 2030 0.0 0.0 +fr 08_non-res 2 247 2030 0.0 0.0 +fr 09_hydro_pump 2 247 2030 0.0 0.0 +fr 01_solar 2 248 2030 1.0 0.0 +fr 02_wind_on 2 248 2030 1.0 0.0 +fr 03_wind_off 2 248 2030 1.0 0.0 +fr 04_res 2 248 2030 1.0 0.0 +fr 05_nuclear 2 248 2030 0.0 0.0 +fr 06_coal 2 248 2030 0.0 0.0 +fr 07_gas 2 248 2030 0.0 0.0 +fr 08_non-res 2 248 2030 0.0 0.0 +fr 09_hydro_pump 2 248 2030 0.0 0.0 +fr 01_solar 2 249 2030 1.0 0.0 +fr 02_wind_on 2 249 2030 1.0 0.0 +fr 03_wind_off 2 249 2030 1.0 0.0 +fr 04_res 2 249 2030 1.0 0.0 +fr 05_nuclear 2 249 2030 0.0 0.0 +fr 06_coal 2 249 2030 0.0 0.0 +fr 07_gas 2 249 2030 0.0 0.0 +fr 08_non-res 2 249 2030 0.0 0.0 +fr 09_hydro_pump 2 249 2030 0.0 0.0 +fr 01_solar 2 250 2030 1.0 0.0 +fr 02_wind_on 2 250 2030 1.0 0.0 +fr 03_wind_off 2 250 2030 1.0 0.0 +fr 04_res 2 250 2030 1.0 0.0 +fr 05_nuclear 2 250 2030 1.0 0.0 +fr 06_coal 2 250 2030 0.0 0.0 +fr 07_gas 2 250 2030 0.0 0.0 +fr 08_non-res 2 250 2030 0.0 0.0 +fr 09_hydro_pump 2 250 2030 0.0 0.0 +fr 01_solar 2 251 2030 1.0 0.0 +fr 02_wind_on 2 251 2030 1.0 0.0 +fr 03_wind_off 2 251 2030 1.0 0.0 +fr 04_res 2 251 2030 1.0 0.0 +fr 05_nuclear 2 251 2030 1.0 0.0 +fr 06_coal 2 251 2030 0.0 0.0 +fr 07_gas 2 251 2030 0.0 0.0 +fr 08_non-res 2 251 2030 0.0 0.0 +fr 09_hydro_pump 2 251 2030 0.0 0.0 +fr 01_solar 2 252 2030 1.0 0.0 +fr 02_wind_on 2 252 2030 1.0 0.0 +fr 03_wind_off 2 252 2030 1.0 0.0 +fr 04_res 2 252 2030 1.0 0.0 +fr 05_nuclear 2 252 2030 1.0 0.0 +fr 06_coal 2 252 2030 0.0 0.0 +fr 07_gas 2 252 2030 0.0 0.0 +fr 08_non-res 2 252 2030 0.0 0.0 +fr 09_hydro_pump 2 252 2030 0.0 0.0 +fr 01_solar 2 253 2030 1.0 0.0 +fr 02_wind_on 2 253 2030 1.0 0.0 +fr 03_wind_off 2 253 2030 1.0 0.0 +fr 04_res 2 253 2030 1.0 0.0 +fr 05_nuclear 2 253 2030 1.0 0.0 +fr 06_coal 2 253 2030 0.0 0.0 +fr 07_gas 2 253 2030 0.0 0.0 +fr 08_non-res 2 253 2030 0.0 0.0 +fr 09_hydro_pump 2 253 2030 0.0 0.0 +fr 01_solar 2 254 2030 1.0 0.0 +fr 02_wind_on 2 254 2030 1.0 0.0 +fr 03_wind_off 2 254 2030 1.0 0.0 +fr 04_res 2 254 2030 1.0 0.0 +fr 05_nuclear 2 254 2030 1.0 0.0 +fr 06_coal 2 254 2030 0.0 0.0 +fr 07_gas 2 254 2030 0.0 0.0 +fr 08_non-res 2 254 2030 0.0 0.0 +fr 09_hydro_pump 2 254 2030 0.0 0.0 +fr 01_solar 2 255 2030 1.0 0.0 +fr 02_wind_on 2 255 2030 1.0 0.0 +fr 03_wind_off 2 255 2030 1.0 0.0 +fr 04_res 2 255 2030 1.0 0.0 +fr 05_nuclear 2 255 2030 1.0 0.0 +fr 06_coal 2 255 2030 0.0 0.0 +fr 07_gas 2 255 2030 0.0 0.0 +fr 08_non-res 2 255 2030 0.0 0.0 +fr 09_hydro_pump 2 255 2030 0.0 0.0 +fr 01_solar 2 256 2030 1.0 0.0 +fr 02_wind_on 2 256 2030 1.0 0.0 +fr 03_wind_off 2 256 2030 1.0 0.0 +fr 04_res 2 256 2030 1.0 0.0 +fr 05_nuclear 2 256 2030 1.0 0.0 +fr 06_coal 2 256 2030 0.0 0.0 +fr 07_gas 2 256 2030 0.0 0.0 +fr 08_non-res 2 256 2030 0.0 0.0 +fr 09_hydro_pump 2 256 2030 0.0 0.0 +fr 01_solar 2 257 2030 1.0 0.0 +fr 02_wind_on 2 257 2030 1.0 0.0 +fr 03_wind_off 2 257 2030 1.0 0.0 +fr 04_res 2 257 2030 1.0 0.0 +fr 05_nuclear 2 257 2030 1.0 0.0 +fr 06_coal 2 257 2030 0.0 0.0 +fr 07_gas 2 257 2030 0.0 0.0 +fr 08_non-res 2 257 2030 0.0 0.0 +fr 09_hydro_pump 2 257 2030 0.0 0.0 +fr 01_solar 2 258 2030 1.0 0.0 +fr 02_wind_on 2 258 2030 1.0 0.0 +fr 03_wind_off 2 258 2030 1.0 0.0 +fr 04_res 2 258 2030 1.0 0.0 +fr 05_nuclear 2 258 2030 1.0 0.0 +fr 06_coal 2 258 2030 0.0 0.0 +fr 07_gas 2 258 2030 0.0 0.0 +fr 08_non-res 2 258 2030 0.0 0.0 +fr 09_hydro_pump 2 258 2030 0.0 0.0 +fr 01_solar 2 259 2030 1.0 0.0 +fr 02_wind_on 2 259 2030 1.0 0.0 +fr 03_wind_off 2 259 2030 1.0 0.0 +fr 04_res 2 259 2030 1.0 0.0 +fr 05_nuclear 2 259 2030 1.0 0.0 +fr 06_coal 2 259 2030 0.0 0.0 +fr 07_gas 2 259 2030 0.0 0.0 +fr 08_non-res 2 259 2030 0.0 0.0 +fr 09_hydro_pump 2 259 2030 0.0 0.0 +fr 01_solar 2 260 2030 1.0 0.0 +fr 02_wind_on 2 260 2030 1.0 0.0 +fr 03_wind_off 2 260 2030 1.0 0.0 +fr 04_res 2 260 2030 1.0 0.0 +fr 05_nuclear 2 260 2030 1.0 0.0 +fr 06_coal 2 260 2030 0.0 0.0 +fr 07_gas 2 260 2030 0.0 0.0 +fr 08_non-res 2 260 2030 0.0 0.0 +fr 09_hydro_pump 2 260 2030 0.0 0.0 +fr 01_solar 2 261 2030 1.0 0.0 +fr 02_wind_on 2 261 2030 1.0 0.0 +fr 03_wind_off 2 261 2030 1.0 0.0 +fr 04_res 2 261 2030 1.0 0.0 +fr 05_nuclear 2 261 2030 1.0 0.0 +fr 06_coal 2 261 2030 0.0 0.0 +fr 07_gas 2 261 2030 0.0 0.0 +fr 08_non-res 2 261 2030 0.0 0.0 +fr 09_hydro_pump 2 261 2030 0.0 0.0 +fr 01_solar 2 262 2030 1.0 0.0 +fr 02_wind_on 2 262 2030 1.0 0.0 +fr 03_wind_off 2 262 2030 1.0 0.0 +fr 04_res 2 262 2030 1.0 0.0 +fr 05_nuclear 2 262 2030 1.0 0.0 +fr 06_coal 2 262 2030 0.0 0.0 +fr 07_gas 2 262 2030 0.0 0.0 +fr 08_non-res 2 262 2030 0.0 0.0 +fr 09_hydro_pump 2 262 2030 0.0 0.0 +fr 01_solar 2 263 2030 1.0 0.0 +fr 02_wind_on 2 263 2030 1.0 0.0 +fr 03_wind_off 2 263 2030 1.0 0.0 +fr 04_res 2 263 2030 1.0 0.0 +fr 05_nuclear 2 263 2030 1.0 0.0 +fr 06_coal 2 263 2030 0.0 0.0 +fr 07_gas 2 263 2030 0.0 0.0 +fr 08_non-res 2 263 2030 0.0 0.0 +fr 09_hydro_pump 2 263 2030 0.0 0.0 +fr 01_solar 2 264 2030 1.0 0.0 +fr 02_wind_on 2 264 2030 1.0 0.0 +fr 03_wind_off 2 264 2030 1.0 0.0 +fr 04_res 2 264 2030 1.0 0.0 +fr 05_nuclear 2 264 2030 1.0 0.0 +fr 06_coal 2 264 2030 0.0 0.0 +fr 07_gas 2 264 2030 0.0 0.0 +fr 08_non-res 2 264 2030 0.0 0.0 +fr 09_hydro_pump 2 264 2030 0.0 0.0 +fr 01_solar 2 265 2030 1.0 0.0 +fr 02_wind_on 2 265 2030 1.0 0.0 +fr 03_wind_off 2 265 2030 1.0 0.0 +fr 04_res 2 265 2030 1.0 0.0 +fr 05_nuclear 2 265 2030 1.0 0.0 +fr 06_coal 2 265 2030 0.0 0.0 +fr 07_gas 2 265 2030 0.0 0.0 +fr 08_non-res 2 265 2030 0.0 0.0 +fr 09_hydro_pump 2 265 2030 0.0 0.0 +fr 01_solar 2 266 2030 1.0 0.0 +fr 02_wind_on 2 266 2030 1.0 0.0 +fr 03_wind_off 2 266 2030 1.0 0.0 +fr 04_res 2 266 2030 1.0 0.0 +fr 05_nuclear 2 266 2030 1.0 0.0 +fr 06_coal 2 266 2030 0.0 0.0 +fr 07_gas 2 266 2030 0.0 0.0 +fr 08_non-res 2 266 2030 0.0 0.0 +fr 09_hydro_pump 2 266 2030 0.0 0.0 +fr 01_solar 2 267 2030 1.0 0.0 +fr 02_wind_on 2 267 2030 1.0 0.0 +fr 03_wind_off 2 267 2030 1.0 0.0 +fr 04_res 2 267 2030 1.0 0.0 +fr 05_nuclear 2 267 2030 1.0 0.0 +fr 06_coal 2 267 2030 0.0 0.0 +fr 07_gas 2 267 2030 0.0 0.0 +fr 08_non-res 2 267 2030 0.0 0.0 +fr 09_hydro_pump 2 267 2030 0.0 0.0 +fr 01_solar 2 268 2030 1.0 0.0 +fr 02_wind_on 2 268 2030 1.0 0.0 +fr 03_wind_off 2 268 2030 1.0 0.0 +fr 04_res 2 268 2030 1.0 0.0 +fr 05_nuclear 2 268 2030 1.0 0.0 +fr 06_coal 2 268 2030 0.0 0.0 +fr 07_gas 2 268 2030 0.0 0.0 +fr 08_non-res 2 268 2030 0.0 0.0 +fr 09_hydro_pump 2 268 2030 0.0 0.0 +fr 01_solar 2 269 2030 1.0 0.0 +fr 02_wind_on 2 269 2030 1.0 0.0 +fr 03_wind_off 2 269 2030 1.0 0.0 +fr 04_res 2 269 2030 1.0 0.0 +fr 05_nuclear 2 269 2030 1.0 0.0 +fr 06_coal 2 269 2030 0.0 0.0 +fr 07_gas 2 269 2030 0.0 0.0 +fr 08_non-res 2 269 2030 0.0 0.0 +fr 09_hydro_pump 2 269 2030 0.0 0.0 +fr 01_solar 2 270 2030 1.0 0.0 +fr 02_wind_on 2 270 2030 1.0 0.0 +fr 03_wind_off 2 270 2030 1.0 0.0 +fr 04_res 2 270 2030 1.0 0.0 +fr 05_nuclear 2 270 2030 1.0 0.0 +fr 06_coal 2 270 2030 1.0 0.0 +fr 07_gas 2 270 2030 0.0 0.0 +fr 08_non-res 2 270 2030 0.0 0.0 +fr 09_hydro_pump 2 270 2030 0.0 0.0 +fr 01_solar 2 271 2030 1.0 0.0 +fr 02_wind_on 2 271 2030 1.0 0.0 +fr 03_wind_off 2 271 2030 1.0 0.0 +fr 04_res 2 271 2030 1.0 0.0 +fr 05_nuclear 2 271 2030 1.0 0.0 +fr 06_coal 2 271 2030 1.0 0.0 +fr 07_gas 2 271 2030 0.0 0.0 +fr 08_non-res 2 271 2030 0.0 0.0 +fr 09_hydro_pump 2 271 2030 0.0 0.0 +fr 01_solar 2 272 2030 1.0 0.0 +fr 02_wind_on 2 272 2030 1.0 0.0 +fr 03_wind_off 2 272 2030 1.0 0.0 +fr 04_res 2 272 2030 1.0 0.0 +fr 05_nuclear 2 272 2030 1.0 0.0 +fr 06_coal 2 272 2030 1.0 0.0 +fr 07_gas 2 272 2030 0.0 0.0 +fr 08_non-res 2 272 2030 0.0 0.0 +fr 09_hydro_pump 2 272 2030 0.0 0.0 +fr 01_solar 2 273 2030 1.0 0.0 +fr 02_wind_on 2 273 2030 1.0 0.0 +fr 03_wind_off 2 273 2030 1.0 0.0 +fr 04_res 2 273 2030 1.0 0.0 +fr 05_nuclear 2 273 2030 1.0 0.0 +fr 06_coal 2 273 2030 1.0 0.0 +fr 07_gas 2 273 2030 0.0 0.0 +fr 08_non-res 2 273 2030 0.0 0.0 +fr 09_hydro_pump 2 273 2030 0.0 0.0 +fr 01_solar 2 274 2030 1.0 0.0 +fr 02_wind_on 2 274 2030 1.0 0.0 +fr 03_wind_off 2 274 2030 1.0 0.0 +fr 04_res 2 274 2030 1.0 0.0 +fr 05_nuclear 2 274 2030 1.0 0.0 +fr 06_coal 2 274 2030 1.0 0.0 +fr 07_gas 2 274 2030 0.0 0.0 +fr 08_non-res 2 274 2030 0.0 0.0 +fr 09_hydro_pump 2 274 2030 0.0 0.0 +fr 01_solar 2 275 2030 1.0 0.0 +fr 02_wind_on 2 275 2030 1.0 0.0 +fr 03_wind_off 2 275 2030 1.0 0.0 +fr 04_res 2 275 2030 1.0 0.0 +fr 05_nuclear 2 275 2030 1.0 0.0 +fr 06_coal 2 275 2030 1.0 0.0 +fr 07_gas 2 275 2030 0.0 0.0 +fr 08_non-res 2 275 2030 0.0 0.0 +fr 09_hydro_pump 2 275 2030 0.0 0.0 +fr 01_solar 2 276 2030 1.0 0.0 +fr 02_wind_on 2 276 2030 1.0 0.0 +fr 03_wind_off 2 276 2030 1.0 0.0 +fr 04_res 2 276 2030 1.0 0.0 +fr 05_nuclear 2 276 2030 1.0 0.0 +fr 06_coal 2 276 2030 1.0 0.0 +fr 07_gas 2 276 2030 0.0 0.0 +fr 08_non-res 2 276 2030 0.0 0.0 +fr 09_hydro_pump 2 276 2030 0.0 0.0 +fr 01_solar 2 277 2030 1.0 0.0 +fr 02_wind_on 2 277 2030 1.0 0.0 +fr 03_wind_off 2 277 2030 1.0 0.0 +fr 04_res 2 277 2030 1.0 0.0 +fr 05_nuclear 2 277 2030 1.0 0.0 +fr 06_coal 2 277 2030 1.0 0.0 +fr 07_gas 2 277 2030 0.0 0.0 +fr 08_non-res 2 277 2030 0.0 0.0 +fr 09_hydro_pump 2 277 2030 0.0 0.0 +fr 01_solar 2 278 2030 1.0 0.0 +fr 02_wind_on 2 278 2030 1.0 0.0 +fr 03_wind_off 2 278 2030 1.0 0.0 +fr 04_res 2 278 2030 1.0 0.0 +fr 05_nuclear 2 278 2030 1.0 0.0 +fr 06_coal 2 278 2030 1.0 0.0 +fr 07_gas 2 278 2030 0.0 0.0 +fr 08_non-res 2 278 2030 0.0 0.0 +fr 09_hydro_pump 2 278 2030 0.0 0.0 +fr 01_solar 2 279 2030 1.0 0.0 +fr 02_wind_on 2 279 2030 1.0 0.0 +fr 03_wind_off 2 279 2030 1.0 0.0 +fr 04_res 2 279 2030 1.0 0.0 +fr 05_nuclear 2 279 2030 1.0 0.0 +fr 06_coal 2 279 2030 1.0 0.0 +fr 07_gas 2 279 2030 0.0 0.0 +fr 08_non-res 2 279 2030 0.0 0.0 +fr 09_hydro_pump 2 279 2030 0.0 0.0 +fr 01_solar 2 280 2030 1.0 0.0 +fr 02_wind_on 2 280 2030 1.0 0.0 +fr 03_wind_off 2 280 2030 1.0 0.0 +fr 04_res 2 280 2030 1.0 0.0 +fr 05_nuclear 2 280 2030 1.0 0.0 +fr 06_coal 2 280 2030 1.0 0.0 +fr 07_gas 2 280 2030 0.0 0.0 +fr 08_non-res 2 280 2030 0.0 0.0 +fr 09_hydro_pump 2 280 2030 0.0 0.0 +fr 01_solar 2 281 2030 1.0 0.0 +fr 02_wind_on 2 281 2030 1.0 0.0 +fr 03_wind_off 2 281 2030 1.0 0.0 +fr 04_res 2 281 2030 1.0 0.0 +fr 05_nuclear 2 281 2030 1.0 0.0 +fr 06_coal 2 281 2030 1.0 0.0 +fr 07_gas 2 281 2030 0.0 0.0 +fr 08_non-res 2 281 2030 0.0 0.0 +fr 09_hydro_pump 2 281 2030 0.0 0.0 +fr 01_solar 2 282 2030 1.0 0.0 +fr 02_wind_on 2 282 2030 1.0 0.0 +fr 03_wind_off 2 282 2030 1.0 0.0 +fr 04_res 2 282 2030 1.0 0.0 +fr 05_nuclear 2 282 2030 1.0 0.0 +fr 06_coal 2 282 2030 1.0 0.0 +fr 07_gas 2 282 2030 0.0 0.0 +fr 08_non-res 2 282 2030 0.0 0.0 +fr 09_hydro_pump 2 282 2030 0.0 0.0 +fr 01_solar 2 283 2030 1.0 0.0 +fr 02_wind_on 2 283 2030 1.0 0.0 +fr 03_wind_off 2 283 2030 1.0 0.0 +fr 04_res 2 283 2030 1.0 0.0 +fr 05_nuclear 2 283 2030 1.0 0.0 +fr 06_coal 2 283 2030 1.0 0.0 +fr 07_gas 2 283 2030 0.0 0.0 +fr 08_non-res 2 283 2030 0.0 0.0 +fr 09_hydro_pump 2 283 2030 0.0 0.0 +fr 01_solar 2 284 2030 1.0 0.0 +fr 02_wind_on 2 284 2030 1.0 0.0 +fr 03_wind_off 2 284 2030 1.0 0.0 +fr 04_res 2 284 2030 1.0 0.0 +fr 05_nuclear 2 284 2030 1.0 0.0 +fr 06_coal 2 284 2030 1.0 0.0 +fr 07_gas 2 284 2030 0.0 0.0 +fr 08_non-res 2 284 2030 0.0 0.0 +fr 09_hydro_pump 2 284 2030 0.0 0.0 +fr 01_solar 2 285 2030 1.0 0.0 +fr 02_wind_on 2 285 2030 1.0 0.0 +fr 03_wind_off 2 285 2030 1.0 0.0 +fr 04_res 2 285 2030 1.0 0.0 +fr 05_nuclear 2 285 2030 1.0 0.0 +fr 06_coal 2 285 2030 1.0 0.0 +fr 07_gas 2 285 2030 0.0 0.0 +fr 08_non-res 2 285 2030 0.0 0.0 +fr 09_hydro_pump 2 285 2030 0.0 0.0 +fr 01_solar 2 286 2030 1.0 0.0 +fr 02_wind_on 2 286 2030 1.0 0.0 +fr 03_wind_off 2 286 2030 1.0 0.0 +fr 04_res 2 286 2030 1.0 0.0 +fr 05_nuclear 2 286 2030 1.0 0.0 +fr 06_coal 2 286 2030 1.0 0.0 +fr 07_gas 2 286 2030 0.0 0.0 +fr 08_non-res 2 286 2030 0.0 0.0 +fr 09_hydro_pump 2 286 2030 0.0 0.0 +fr 01_solar 2 287 2030 1.0 0.0 +fr 02_wind_on 2 287 2030 1.0 0.0 +fr 03_wind_off 2 287 2030 1.0 0.0 +fr 04_res 2 287 2030 1.0 0.0 +fr 05_nuclear 2 287 2030 1.0 0.0 +fr 06_coal 2 287 2030 1.0 0.0 +fr 07_gas 2 287 2030 0.0 0.0 +fr 08_non-res 2 287 2030 0.0 0.0 +fr 09_hydro_pump 2 287 2030 0.0 0.0 +fr 01_solar 2 288 2030 1.0 0.0 +fr 02_wind_on 2 288 2030 1.0 0.0 +fr 03_wind_off 2 288 2030 1.0 0.0 +fr 04_res 2 288 2030 1.0 0.0 +fr 05_nuclear 2 288 2030 1.0 0.0 +fr 06_coal 2 288 2030 1.0 0.0 +fr 07_gas 2 288 2030 0.0 0.0 +fr 08_non-res 2 288 2030 0.0 0.0 +fr 09_hydro_pump 2 288 2030 0.0 0.0 +fr 01_solar 2 289 2030 1.0 0.0 +fr 02_wind_on 2 289 2030 1.0 0.0 +fr 03_wind_off 2 289 2030 1.0 0.0 +fr 04_res 2 289 2030 1.0 0.0 +fr 05_nuclear 2 289 2030 1.0 0.0 +fr 06_coal 2 289 2030 1.0 0.0 +fr 07_gas 2 289 2030 0.0 0.0 +fr 08_non-res 2 289 2030 0.0 0.0 +fr 09_hydro_pump 2 289 2030 0.0 0.0 +fr 01_solar 2 290 2030 1.0 0.0 +fr 02_wind_on 2 290 2030 1.0 0.0 +fr 03_wind_off 2 290 2030 1.0 0.0 +fr 04_res 2 290 2030 1.0 0.0 +fr 05_nuclear 2 290 2030 1.0 0.0 +fr 06_coal 2 290 2030 1.0 0.0 +fr 07_gas 2 290 2030 1.0 0.0 +fr 08_non-res 2 290 2030 0.0 0.0 +fr 09_hydro_pump 2 290 2030 0.0 0.0 +fr 01_solar 2 291 2030 1.0 0.0 +fr 02_wind_on 2 291 2030 1.0 0.0 +fr 03_wind_off 2 291 2030 1.0 0.0 +fr 04_res 2 291 2030 1.0 0.0 +fr 05_nuclear 2 291 2030 1.0 0.0 +fr 06_coal 2 291 2030 1.0 0.0 +fr 07_gas 2 291 2030 1.0 0.0 +fr 08_non-res 2 291 2030 0.0 0.0 +fr 09_hydro_pump 2 291 2030 0.0 0.0 +fr 01_solar 2 292 2030 1.0 0.0 +fr 02_wind_on 2 292 2030 1.0 0.0 +fr 03_wind_off 2 292 2030 1.0 0.0 +fr 04_res 2 292 2030 1.0 0.0 +fr 05_nuclear 2 292 2030 1.0 0.0 +fr 06_coal 2 292 2030 1.0 0.0 +fr 07_gas 2 292 2030 1.0 0.0 +fr 08_non-res 2 292 2030 0.0 0.0 +fr 09_hydro_pump 2 292 2030 0.0 0.0 +fr 01_solar 2 293 2030 1.0 0.0 +fr 02_wind_on 2 293 2030 1.0 0.0 +fr 03_wind_off 2 293 2030 1.0 0.0 +fr 04_res 2 293 2030 1.0 0.0 +fr 05_nuclear 2 293 2030 1.0 0.0 +fr 06_coal 2 293 2030 1.0 0.0 +fr 07_gas 2 293 2030 1.0 0.0 +fr 08_non-res 2 293 2030 0.0 0.0 +fr 09_hydro_pump 2 293 2030 0.0 0.0 +fr 01_solar 2 294 2030 1.0 0.0 +fr 02_wind_on 2 294 2030 1.0 0.0 +fr 03_wind_off 2 294 2030 1.0 0.0 +fr 04_res 2 294 2030 1.0 0.0 +fr 05_nuclear 2 294 2030 1.0 0.0 +fr 06_coal 2 294 2030 1.0 0.0 +fr 07_gas 2 294 2030 1.0 0.0 +fr 08_non-res 2 294 2030 0.0 0.0 +fr 09_hydro_pump 2 294 2030 0.0 0.0 +fr 01_solar 2 295 2030 1.0 0.0 +fr 02_wind_on 2 295 2030 1.0 0.0 +fr 03_wind_off 2 295 2030 1.0 0.0 +fr 04_res 2 295 2030 1.0 0.0 +fr 05_nuclear 2 295 2030 1.0 0.0 +fr 06_coal 2 295 2030 1.0 0.0 +fr 07_gas 2 295 2030 1.0 0.0 +fr 08_non-res 2 295 2030 0.0 0.0 +fr 09_hydro_pump 2 295 2030 0.0 0.0 +fr 01_solar 2 296 2030 1.0 0.0 +fr 02_wind_on 2 296 2030 1.0 0.0 +fr 03_wind_off 2 296 2030 1.0 0.0 +fr 04_res 2 296 2030 1.0 0.0 +fr 05_nuclear 2 296 2030 1.0 0.0 +fr 06_coal 2 296 2030 1.0 0.0 +fr 07_gas 2 296 2030 1.0 0.0 +fr 08_non-res 2 296 2030 0.0 0.0 +fr 09_hydro_pump 2 296 2030 0.0 0.0 +fr 01_solar 2 297 2030 1.0 0.0 +fr 02_wind_on 2 297 2030 1.0 0.0 +fr 03_wind_off 2 297 2030 1.0 0.0 +fr 04_res 2 297 2030 1.0 0.0 +fr 05_nuclear 2 297 2030 1.0 0.0 +fr 06_coal 2 297 2030 1.0 0.0 +fr 07_gas 2 297 2030 1.0 0.0 +fr 08_non-res 2 297 2030 0.0 0.0 +fr 09_hydro_pump 2 297 2030 0.0 0.0 +fr 01_solar 2 298 2030 1.0 0.0 +fr 02_wind_on 2 298 2030 1.0 0.0 +fr 03_wind_off 2 298 2030 1.0 0.0 +fr 04_res 2 298 2030 1.0 0.0 +fr 05_nuclear 2 298 2030 1.0 0.0 +fr 06_coal 2 298 2030 1.0 0.0 +fr 07_gas 2 298 2030 1.0 0.0 +fr 08_non-res 2 298 2030 0.0 0.0 +fr 09_hydro_pump 2 298 2030 0.0 0.0 +fr 01_solar 2 299 2030 1.0 0.0 +fr 02_wind_on 2 299 2030 1.0 0.0 +fr 03_wind_off 2 299 2030 1.0 0.0 +fr 04_res 2 299 2030 1.0 0.0 +fr 05_nuclear 2 299 2030 1.0 0.0 +fr 06_coal 2 299 2030 1.0 0.0 +fr 07_gas 2 299 2030 1.0 0.0 +fr 08_non-res 2 299 2030 0.0 0.0 +fr 09_hydro_pump 2 299 2030 0.0 0.0 +fr 01_solar 2 300 2030 1.0 0.0 +fr 02_wind_on 2 300 2030 1.0 0.0 +fr 03_wind_off 2 300 2030 1.0 0.0 +fr 04_res 2 300 2030 1.0 0.0 +fr 05_nuclear 2 300 2030 1.0 0.0 +fr 06_coal 2 300 2030 1.0 0.0 +fr 07_gas 2 300 2030 1.0 0.0 +fr 08_non-res 2 300 2030 0.0 0.0 +fr 09_hydro_pump 2 300 2030 0.0 0.0 +fr 01_solar 2 301 2030 1.0 0.0 +fr 02_wind_on 2 301 2030 1.0 0.0 +fr 03_wind_off 2 301 2030 1.0 0.0 +fr 04_res 2 301 2030 1.0 0.0 +fr 05_nuclear 2 301 2030 1.0 0.0 +fr 06_coal 2 301 2030 1.0 0.0 +fr 07_gas 2 301 2030 1.0 0.0 +fr 08_non-res 2 301 2030 0.0 0.0 +fr 09_hydro_pump 2 301 2030 0.0 0.0 +fr 01_solar 2 302 2030 1.0 0.0 +fr 02_wind_on 2 302 2030 1.0 0.0 +fr 03_wind_off 2 302 2030 1.0 0.0 +fr 04_res 2 302 2030 1.0 0.0 +fr 05_nuclear 2 302 2030 1.0 0.0 +fr 06_coal 2 302 2030 1.0 0.0 +fr 07_gas 2 302 2030 1.0 0.0 +fr 08_non-res 2 302 2030 0.0 0.0 +fr 09_hydro_pump 2 302 2030 0.0 0.0 +fr 01_solar 2 303 2030 1.0 0.0 +fr 02_wind_on 2 303 2030 1.0 0.0 +fr 03_wind_off 2 303 2030 1.0 0.0 +fr 04_res 2 303 2030 1.0 0.0 +fr 05_nuclear 2 303 2030 1.0 0.0 +fr 06_coal 2 303 2030 1.0 0.0 +fr 07_gas 2 303 2030 1.0 0.0 +fr 08_non-res 2 303 2030 0.0 0.0 +fr 09_hydro_pump 2 303 2030 0.0 0.0 +fr 01_solar 2 304 2030 1.0 0.0 +fr 02_wind_on 2 304 2030 1.0 0.0 +fr 03_wind_off 2 304 2030 1.0 0.0 +fr 04_res 2 304 2030 1.0 0.0 +fr 05_nuclear 2 304 2030 1.0 0.0 +fr 06_coal 2 304 2030 1.0 0.0 +fr 07_gas 2 304 2030 1.0 0.0 +fr 08_non-res 2 304 2030 0.0 0.0 +fr 09_hydro_pump 2 304 2030 0.0 0.0 +fr 01_solar 2 305 2030 1.0 0.0 +fr 02_wind_on 2 305 2030 1.0 0.0 +fr 03_wind_off 2 305 2030 1.0 0.0 +fr 04_res 2 305 2030 1.0 0.0 +fr 05_nuclear 2 305 2030 1.0 0.0 +fr 06_coal 2 305 2030 1.0 0.0 +fr 07_gas 2 305 2030 1.0 0.0 +fr 08_non-res 2 305 2030 0.0 0.0 +fr 09_hydro_pump 2 305 2030 0.0 0.0 +fr 01_solar 2 306 2030 1.0 0.0 +fr 02_wind_on 2 306 2030 1.0 0.0 +fr 03_wind_off 2 306 2030 1.0 0.0 +fr 04_res 2 306 2030 1.0 0.0 +fr 05_nuclear 2 306 2030 1.0 0.0 +fr 06_coal 2 306 2030 1.0 0.0 +fr 07_gas 2 306 2030 1.0 0.0 +fr 08_non-res 2 306 2030 0.0 0.0 +fr 09_hydro_pump 2 306 2030 0.0 0.0 +fr 01_solar 2 307 2030 1.0 0.0 +fr 02_wind_on 2 307 2030 1.0 0.0 +fr 03_wind_off 2 307 2030 1.0 0.0 +fr 04_res 2 307 2030 1.0 0.0 +fr 05_nuclear 2 307 2030 1.0 0.0 +fr 06_coal 2 307 2030 1.0 0.0 +fr 07_gas 2 307 2030 1.0 0.0 +fr 08_non-res 2 307 2030 0.0 0.0 +fr 09_hydro_pump 2 307 2030 0.0 0.0 +fr 01_solar 2 308 2030 1.0 0.0 +fr 02_wind_on 2 308 2030 1.0 0.0 +fr 03_wind_off 2 308 2030 1.0 0.0 +fr 04_res 2 308 2030 1.0 0.0 +fr 05_nuclear 2 308 2030 1.0 0.0 +fr 06_coal 2 308 2030 1.0 0.0 +fr 07_gas 2 308 2030 1.0 0.0 +fr 08_non-res 2 308 2030 0.0 0.0 +fr 09_hydro_pump 2 308 2030 0.0 0.0 +fr 01_solar 2 309 2030 1.0 0.0 +fr 02_wind_on 2 309 2030 1.0 0.0 +fr 03_wind_off 2 309 2030 1.0 0.0 +fr 04_res 2 309 2030 1.0 0.0 +fr 05_nuclear 2 309 2030 1.0 0.0 +fr 06_coal 2 309 2030 1.0 0.0 +fr 07_gas 2 309 2030 1.0 0.0 +fr 08_non-res 2 309 2030 0.0 0.0 +fr 09_hydro_pump 2 309 2030 0.0 0.0 +fr 01_solar 2 310 2030 1.0 0.0 +fr 02_wind_on 2 310 2030 1.0 0.0 +fr 03_wind_off 2 310 2030 1.0 0.0 +fr 04_res 2 310 2030 1.0 0.0 +fr 05_nuclear 2 310 2030 1.0 0.0 +fr 06_coal 2 310 2030 1.0 0.0 +fr 07_gas 2 310 2030 1.0 0.0 +fr 08_non-res 2 310 2030 1.0 0.0 +fr 09_hydro_pump 2 310 2030 0.0 0.0 +fr 01_solar 2 311 2030 1.0 0.0 +fr 02_wind_on 2 311 2030 1.0 0.0 +fr 03_wind_off 2 311 2030 1.0 0.0 +fr 04_res 2 311 2030 1.0 0.0 +fr 05_nuclear 2 311 2030 1.0 0.0 +fr 06_coal 2 311 2030 1.0 0.0 +fr 07_gas 2 311 2030 1.0 0.0 +fr 08_non-res 2 311 2030 1.0 0.0 +fr 09_hydro_pump 2 311 2030 0.0 0.0 +fr 01_solar 2 312 2030 1.0 0.0 +fr 02_wind_on 2 312 2030 1.0 0.0 +fr 03_wind_off 2 312 2030 1.0 0.0 +fr 04_res 2 312 2030 1.0 0.0 +fr 05_nuclear 2 312 2030 1.0 0.0 +fr 06_coal 2 312 2030 1.0 0.0 +fr 07_gas 2 312 2030 1.0 0.0 +fr 08_non-res 2 312 2030 1.0 0.0 +fr 09_hydro_pump 2 312 2030 0.0 0.0 +fr 01_solar 2 313 2030 1.0 0.0 +fr 02_wind_on 2 313 2030 1.0 0.0 +fr 03_wind_off 2 313 2030 1.0 0.0 +fr 04_res 2 313 2030 1.0 0.0 +fr 05_nuclear 2 313 2030 1.0 0.0 +fr 06_coal 2 313 2030 1.0 0.0 +fr 07_gas 2 313 2030 1.0 0.0 +fr 08_non-res 2 313 2030 1.0 0.0 +fr 09_hydro_pump 2 313 2030 0.0 0.0 +fr 01_solar 2 314 2030 1.0 0.0 +fr 02_wind_on 2 314 2030 1.0 0.0 +fr 03_wind_off 2 314 2030 1.0 0.0 +fr 04_res 2 314 2030 1.0 0.0 +fr 05_nuclear 2 314 2030 1.0 0.0 +fr 06_coal 2 314 2030 1.0 0.0 +fr 07_gas 2 314 2030 1.0 0.0 +fr 08_non-res 2 314 2030 1.0 0.0 +fr 09_hydro_pump 2 314 2030 0.0 0.0 +fr 01_solar 2 315 2030 1.0 0.0 +fr 02_wind_on 2 315 2030 1.0 0.0 +fr 03_wind_off 2 315 2030 1.0 0.0 +fr 04_res 2 315 2030 1.0 0.0 +fr 05_nuclear 2 315 2030 1.0 0.0 +fr 06_coal 2 315 2030 1.0 0.0 +fr 07_gas 2 315 2030 1.0 0.0 +fr 08_non-res 2 315 2030 1.0 0.0 +fr 09_hydro_pump 2 315 2030 0.0 0.0 +fr 01_solar 2 316 2030 1.0 0.0 +fr 02_wind_on 2 316 2030 1.0 0.0 +fr 03_wind_off 2 316 2030 1.0 0.0 +fr 04_res 2 316 2030 1.0 0.0 +fr 05_nuclear 2 316 2030 1.0 0.0 +fr 06_coal 2 316 2030 1.0 0.0 +fr 07_gas 2 316 2030 1.0 0.0 +fr 08_non-res 2 316 2030 1.0 0.0 +fr 09_hydro_pump 2 316 2030 0.0 0.0 +fr 01_solar 2 317 2030 1.0 0.0 +fr 02_wind_on 2 317 2030 1.0 0.0 +fr 03_wind_off 2 317 2030 1.0 0.0 +fr 04_res 2 317 2030 1.0 0.0 +fr 05_nuclear 2 317 2030 1.0 0.0 +fr 06_coal 2 317 2030 1.0 0.0 +fr 07_gas 2 317 2030 1.0 0.0 +fr 08_non-res 2 317 2030 1.0 0.0 +fr 09_hydro_pump 2 317 2030 0.0 0.0 +fr 01_solar 2 318 2030 1.0 0.0 +fr 02_wind_on 2 318 2030 1.0 0.0 +fr 03_wind_off 2 318 2030 1.0 0.0 +fr 04_res 2 318 2030 1.0 0.0 +fr 05_nuclear 2 318 2030 1.0 0.0 +fr 06_coal 2 318 2030 1.0 0.0 +fr 07_gas 2 318 2030 1.0 0.0 +fr 08_non-res 2 318 2030 1.0 0.0 +fr 09_hydro_pump 2 318 2030 0.0 0.0 +fr 01_solar 2 319 2030 1.0 0.0 +fr 02_wind_on 2 319 2030 1.0 0.0 +fr 03_wind_off 2 319 2030 1.0 0.0 +fr 04_res 2 319 2030 1.0 0.0 +fr 05_nuclear 2 319 2030 1.0 0.0 +fr 06_coal 2 319 2030 1.0 0.0 +fr 07_gas 2 319 2030 1.0 0.0 +fr 08_non-res 2 319 2030 1.0 0.0 +fr 09_hydro_pump 2 319 2030 0.0 0.0 +fr 01_solar 2 320 2030 1.0 0.0 +fr 02_wind_on 2 320 2030 1.0 0.0 +fr 03_wind_off 2 320 2030 1.0 0.0 +fr 04_res 2 320 2030 1.0 0.0 +fr 05_nuclear 2 320 2030 1.0 0.0 +fr 06_coal 2 320 2030 1.0 0.0 +fr 07_gas 2 320 2030 1.0 0.0 +fr 08_non-res 2 320 2030 1.0 0.0 +fr 09_hydro_pump 2 320 2030 0.0 0.0 +fr 01_solar 2 321 2030 1.0 0.0 +fr 02_wind_on 2 321 2030 1.0 0.0 +fr 03_wind_off 2 321 2030 1.0 0.0 +fr 04_res 2 321 2030 1.0 0.0 +fr 05_nuclear 2 321 2030 1.0 0.0 +fr 06_coal 2 321 2030 1.0 0.0 +fr 07_gas 2 321 2030 1.0 0.0 +fr 08_non-res 2 321 2030 1.0 0.0 +fr 09_hydro_pump 2 321 2030 0.0 0.0 +fr 01_solar 2 322 2030 1.0 0.0 +fr 02_wind_on 2 322 2030 1.0 0.0 +fr 03_wind_off 2 322 2030 1.0 0.0 +fr 04_res 2 322 2030 1.0 0.0 +fr 05_nuclear 2 322 2030 1.0 0.0 +fr 06_coal 2 322 2030 1.0 0.0 +fr 07_gas 2 322 2030 1.0 0.0 +fr 08_non-res 2 322 2030 1.0 0.0 +fr 09_hydro_pump 2 322 2030 0.0 0.0 +fr 01_solar 2 323 2030 1.0 0.0 +fr 02_wind_on 2 323 2030 1.0 0.0 +fr 03_wind_off 2 323 2030 1.0 0.0 +fr 04_res 2 323 2030 1.0 0.0 +fr 05_nuclear 2 323 2030 1.0 0.0 +fr 06_coal 2 323 2030 1.0 0.0 +fr 07_gas 2 323 2030 1.0 0.0 +fr 08_non-res 2 323 2030 1.0 0.0 +fr 09_hydro_pump 2 323 2030 0.0 0.0 +fr 01_solar 2 324 2030 1.0 0.0 +fr 02_wind_on 2 324 2030 1.0 0.0 +fr 03_wind_off 2 324 2030 1.0 0.0 +fr 04_res 2 324 2030 1.0 0.0 +fr 05_nuclear 2 324 2030 1.0 0.0 +fr 06_coal 2 324 2030 1.0 0.0 +fr 07_gas 2 324 2030 1.0 0.0 +fr 08_non-res 2 324 2030 1.0 0.0 +fr 09_hydro_pump 2 324 2030 0.0 0.0 +fr 01_solar 2 325 2030 1.0 0.0 +fr 02_wind_on 2 325 2030 1.0 0.0 +fr 03_wind_off 2 325 2030 1.0 0.0 +fr 04_res 2 325 2030 1.0 0.0 +fr 05_nuclear 2 325 2030 1.0 0.0 +fr 06_coal 2 325 2030 1.0 0.0 +fr 07_gas 2 325 2030 1.0 0.0 +fr 08_non-res 2 325 2030 1.0 0.0 +fr 09_hydro_pump 2 325 2030 0.0 0.0 +fr 01_solar 2 326 2030 1.0 0.0 +fr 02_wind_on 2 326 2030 1.0 0.0 +fr 03_wind_off 2 326 2030 1.0 0.0 +fr 04_res 2 326 2030 1.0 0.0 +fr 05_nuclear 2 326 2030 1.0 0.0 +fr 06_coal 2 326 2030 1.0 0.0 +fr 07_gas 2 326 2030 1.0 0.0 +fr 08_non-res 2 326 2030 1.0 0.0 +fr 09_hydro_pump 2 326 2030 0.0 0.0 +fr 01_solar 2 327 2030 1.0 0.0 +fr 02_wind_on 2 327 2030 1.0 0.0 +fr 03_wind_off 2 327 2030 1.0 0.0 +fr 04_res 2 327 2030 1.0 0.0 +fr 05_nuclear 2 327 2030 1.0 0.0 +fr 06_coal 2 327 2030 1.0 0.0 +fr 07_gas 2 327 2030 1.0 0.0 +fr 08_non-res 2 327 2030 1.0 0.0 +fr 09_hydro_pump 2 327 2030 0.0 0.0 +fr 01_solar 2 328 2030 1.0 0.0 +fr 02_wind_on 2 328 2030 1.0 0.0 +fr 03_wind_off 2 328 2030 1.0 0.0 +fr 04_res 2 328 2030 1.0 0.0 +fr 05_nuclear 2 328 2030 1.0 0.0 +fr 06_coal 2 328 2030 1.0 0.0 +fr 07_gas 2 328 2030 1.0 0.0 +fr 08_non-res 2 328 2030 1.0 0.0 +fr 09_hydro_pump 2 328 2030 0.0 0.0 +fr 01_solar 2 329 2030 1.0 0.0 +fr 02_wind_on 2 329 2030 1.0 0.0 +fr 03_wind_off 2 329 2030 1.0 0.0 +fr 04_res 2 329 2030 1.0 0.0 +fr 05_nuclear 2 329 2030 1.0 0.0 +fr 06_coal 2 329 2030 1.0 0.0 +fr 07_gas 2 329 2030 1.0 0.0 +fr 08_non-res 2 329 2030 1.0 0.0 +fr 09_hydro_pump 2 329 2030 0.0 0.0 +fr 01_solar 2 330 2030 1.0 0.0 +fr 02_wind_on 2 330 2030 1.0 0.0 +fr 03_wind_off 2 330 2030 1.0 0.0 +fr 04_res 2 330 2030 1.0 0.0 +fr 05_nuclear 2 330 2030 1.0 0.0 +fr 06_coal 2 330 2030 1.0 0.0 +fr 07_gas 2 330 2030 1.0 0.0 +fr 08_non-res 2 330 2030 1.0 0.0 +fr 09_hydro_pump 2 330 2030 1.0 0.0 +fr 01_solar 2 331 2030 1.0 0.0 +fr 02_wind_on 2 331 2030 1.0 0.0 +fr 03_wind_off 2 331 2030 1.0 0.0 +fr 04_res 2 331 2030 1.0 0.0 +fr 05_nuclear 2 331 2030 1.0 0.0 +fr 06_coal 2 331 2030 1.0 0.0 +fr 07_gas 2 331 2030 1.0 0.0 +fr 08_non-res 2 331 2030 1.0 0.0 +fr 09_hydro_pump 2 331 2030 1.0 0.0 +fr 01_solar 2 332 2030 1.0 0.0 +fr 02_wind_on 2 332 2030 1.0 0.0 +fr 03_wind_off 2 332 2030 1.0 0.0 +fr 04_res 2 332 2030 1.0 0.0 +fr 05_nuclear 2 332 2030 1.0 0.0 +fr 06_coal 2 332 2030 1.0 0.0 +fr 07_gas 2 332 2030 1.0 0.0 +fr 08_non-res 2 332 2030 1.0 0.0 +fr 09_hydro_pump 2 332 2030 1.0 0.0 +fr 01_solar 2 333 2030 1.0 0.0 +fr 02_wind_on 2 333 2030 1.0 0.0 +fr 03_wind_off 2 333 2030 1.0 0.0 +fr 04_res 2 333 2030 1.0 0.0 +fr 05_nuclear 2 333 2030 1.0 0.0 +fr 06_coal 2 333 2030 1.0 0.0 +fr 07_gas 2 333 2030 1.0 0.0 +fr 08_non-res 2 333 2030 1.0 0.0 +fr 09_hydro_pump 2 333 2030 1.0 0.0 +fr 01_solar 2 334 2030 1.0 0.0 +fr 02_wind_on 2 334 2030 1.0 0.0 +fr 03_wind_off 2 334 2030 1.0 0.0 +fr 04_res 2 334 2030 1.0 0.0 +fr 05_nuclear 2 334 2030 1.0 0.0 +fr 06_coal 2 334 2030 1.0 0.0 +fr 07_gas 2 334 2030 1.0 0.0 +fr 08_non-res 2 334 2030 1.0 0.0 +fr 09_hydro_pump 2 334 2030 1.0 0.0 +fr 01_solar 2 335 2030 1.0 0.0 +fr 02_wind_on 2 335 2030 1.0 0.0 +fr 03_wind_off 2 335 2030 1.0 0.0 +fr 04_res 2 335 2030 1.0 0.0 +fr 05_nuclear 2 335 2030 1.0 0.0 +fr 06_coal 2 335 2030 1.0 0.0 +fr 07_gas 2 335 2030 1.0 0.0 +fr 08_non-res 2 335 2030 1.0 0.0 +fr 09_hydro_pump 2 335 2030 1.0 0.0 +fr 01_solar 2 336 2030 1.0 0.0 +fr 02_wind_on 2 336 2030 1.0 0.0 +fr 03_wind_off 2 336 2030 1.0 0.0 +fr 04_res 2 336 2030 1.0 0.0 +fr 05_nuclear 2 336 2030 1.0 0.0 +fr 06_coal 2 336 2030 1.0 0.0 +fr 07_gas 2 336 2030 1.0 0.0 +fr 08_non-res 2 336 2030 1.0 0.0 +fr 09_hydro_pump 2 336 2030 1.0 0.0 +it 01_solar 2 1 2030 0.0 0.0 +it 02_wind_on 2 1 2030 0.0 0.0 +it 03_wind_off 2 1 2030 0.0 0.0 +it 04_res 2 1 2030 0.0 0.0 +it 05_nuclear 2 1 2030 0.0 0.0 +it 06_coal 2 1 2030 0.0 0.0 +it 07_gas 2 1 2030 0.0 0.0 +it 08_non-res 2 1 2030 0.0 0.0 +it 09_hydro_pump 2 1 2030 0.0 0.0 +it 01_solar 2 2 2030 1.0 0.0 +it 02_wind_on 2 2 2030 0.0 0.0 +it 03_wind_off 2 2 2030 0.0 0.0 +it 04_res 2 2 2030 0.0 0.0 +it 05_nuclear 2 2 2030 0.0 0.0 +it 06_coal 2 2 2030 0.0 0.0 +it 07_gas 2 2 2030 0.0 0.0 +it 08_non-res 2 2 2030 0.0 0.0 +it 09_hydro_pump 2 2 2030 0.0 0.0 +it 01_solar 2 3 2030 1.0 0.0 +it 02_wind_on 2 3 2030 0.0 0.0 +it 03_wind_off 2 3 2030 0.0 0.0 +it 04_res 2 3 2030 0.0 0.0 +it 05_nuclear 2 3 2030 0.0 0.0 +it 06_coal 2 3 2030 0.0 0.0 +it 07_gas 2 3 2030 0.0 0.0 +it 08_non-res 2 3 2030 0.0 0.0 +it 09_hydro_pump 2 3 2030 0.0 0.0 +it 01_solar 2 4 2030 1.0 0.0 +it 02_wind_on 2 4 2030 0.0 0.0 +it 03_wind_off 2 4 2030 0.0 0.0 +it 04_res 2 4 2030 0.0 0.0 +it 05_nuclear 2 4 2030 0.0 0.0 +it 06_coal 2 4 2030 0.0 0.0 +it 07_gas 2 4 2030 0.0 0.0 +it 08_non-res 2 4 2030 0.0 0.0 +it 09_hydro_pump 2 4 2030 0.0 0.0 +it 01_solar 2 5 2030 1.0 0.0 +it 02_wind_on 2 5 2030 0.0 0.0 +it 03_wind_off 2 5 2030 0.0 0.0 +it 04_res 2 5 2030 0.0 0.0 +it 05_nuclear 2 5 2030 0.0 0.0 +it 06_coal 2 5 2030 0.0 0.0 +it 07_gas 2 5 2030 0.0 0.0 +it 08_non-res 2 5 2030 0.0 0.0 +it 09_hydro_pump 2 5 2030 0.0 0.0 +it 01_solar 2 6 2030 1.0 0.0 +it 02_wind_on 2 6 2030 0.0 0.0 +it 03_wind_off 2 6 2030 0.0 0.0 +it 04_res 2 6 2030 0.0 0.0 +it 05_nuclear 2 6 2030 0.0 0.0 +it 06_coal 2 6 2030 0.0 0.0 +it 07_gas 2 6 2030 0.0 0.0 +it 08_non-res 2 6 2030 0.0 0.0 +it 09_hydro_pump 2 6 2030 0.0 0.0 +it 01_solar 2 7 2030 1.0 0.0 +it 02_wind_on 2 7 2030 0.0 0.0 +it 03_wind_off 2 7 2030 0.0 0.0 +it 04_res 2 7 2030 0.0 0.0 +it 05_nuclear 2 7 2030 0.0 0.0 +it 06_coal 2 7 2030 0.0 0.0 +it 07_gas 2 7 2030 0.0 0.0 +it 08_non-res 2 7 2030 0.0 0.0 +it 09_hydro_pump 2 7 2030 0.0 0.0 +it 01_solar 2 8 2030 1.0 0.0 +it 02_wind_on 2 8 2030 0.0 0.0 +it 03_wind_off 2 8 2030 0.0 0.0 +it 04_res 2 8 2030 0.0 0.0 +it 05_nuclear 2 8 2030 0.0 0.0 +it 06_coal 2 8 2030 0.0 0.0 +it 07_gas 2 8 2030 0.0 0.0 +it 08_non-res 2 8 2030 0.0 0.0 +it 09_hydro_pump 2 8 2030 0.0 0.0 +it 01_solar 2 9 2030 1.0 0.0 +it 02_wind_on 2 9 2030 0.0 0.0 +it 03_wind_off 2 9 2030 0.0 0.0 +it 04_res 2 9 2030 0.0 0.0 +it 05_nuclear 2 9 2030 0.0 0.0 +it 06_coal 2 9 2030 0.0 0.0 +it 07_gas 2 9 2030 0.0 0.0 +it 08_non-res 2 9 2030 0.0 0.0 +it 09_hydro_pump 2 9 2030 0.0 0.0 +it 01_solar 2 10 2030 1.0 0.0 +it 02_wind_on 2 10 2030 0.0 0.0 +it 03_wind_off 2 10 2030 0.0 0.0 +it 04_res 2 10 2030 0.0 0.0 +it 05_nuclear 2 10 2030 0.0 0.0 +it 06_coal 2 10 2030 0.0 0.0 +it 07_gas 2 10 2030 0.0 0.0 +it 08_non-res 2 10 2030 0.0 0.0 +it 09_hydro_pump 2 10 2030 0.0 0.0 +it 01_solar 2 11 2030 1.0 0.0 +it 02_wind_on 2 11 2030 0.0 0.0 +it 03_wind_off 2 11 2030 0.0 0.0 +it 04_res 2 11 2030 0.0 0.0 +it 05_nuclear 2 11 2030 0.0 0.0 +it 06_coal 2 11 2030 0.0 0.0 +it 07_gas 2 11 2030 0.0 0.0 +it 08_non-res 2 11 2030 0.0 0.0 +it 09_hydro_pump 2 11 2030 0.0 0.0 +it 01_solar 2 12 2030 1.0 0.0 +it 02_wind_on 2 12 2030 0.0 0.0 +it 03_wind_off 2 12 2030 0.0 0.0 +it 04_res 2 12 2030 0.0 0.0 +it 05_nuclear 2 12 2030 0.0 0.0 +it 06_coal 2 12 2030 0.0 0.0 +it 07_gas 2 12 2030 0.0 0.0 +it 08_non-res 2 12 2030 0.0 0.0 +it 09_hydro_pump 2 12 2030 0.0 0.0 +it 01_solar 2 13 2030 1.0 0.0 +it 02_wind_on 2 13 2030 0.0 0.0 +it 03_wind_off 2 13 2030 0.0 0.0 +it 04_res 2 13 2030 0.0 0.0 +it 05_nuclear 2 13 2030 0.0 0.0 +it 06_coal 2 13 2030 0.0 0.0 +it 07_gas 2 13 2030 0.0 0.0 +it 08_non-res 2 13 2030 0.0 0.0 +it 09_hydro_pump 2 13 2030 0.0 0.0 +it 01_solar 2 14 2030 1.0 0.0 +it 02_wind_on 2 14 2030 0.0 0.0 +it 03_wind_off 2 14 2030 0.0 0.0 +it 04_res 2 14 2030 0.0 0.0 +it 05_nuclear 2 14 2030 0.0 0.0 +it 06_coal 2 14 2030 0.0 0.0 +it 07_gas 2 14 2030 0.0 0.0 +it 08_non-res 2 14 2030 0.0 0.0 +it 09_hydro_pump 2 14 2030 0.0 0.0 +it 01_solar 2 15 2030 1.0 0.0 +it 02_wind_on 2 15 2030 0.0 0.0 +it 03_wind_off 2 15 2030 0.0 0.0 +it 04_res 2 15 2030 0.0 0.0 +it 05_nuclear 2 15 2030 0.0 0.0 +it 06_coal 2 15 2030 0.0 0.0 +it 07_gas 2 15 2030 0.0 0.0 +it 08_non-res 2 15 2030 0.0 0.0 +it 09_hydro_pump 2 15 2030 0.0 0.0 +it 01_solar 2 16 2030 1.0 0.0 +it 02_wind_on 2 16 2030 0.0 0.0 +it 03_wind_off 2 16 2030 0.0 0.0 +it 04_res 2 16 2030 0.0 0.0 +it 05_nuclear 2 16 2030 0.0 0.0 +it 06_coal 2 16 2030 0.0 0.0 +it 07_gas 2 16 2030 0.0 0.0 +it 08_non-res 2 16 2030 0.0 0.0 +it 09_hydro_pump 2 16 2030 0.0 0.0 +it 01_solar 2 17 2030 1.0 0.0 +it 02_wind_on 2 17 2030 0.0 0.0 +it 03_wind_off 2 17 2030 0.0 0.0 +it 04_res 2 17 2030 0.0 0.0 +it 05_nuclear 2 17 2030 0.0 0.0 +it 06_coal 2 17 2030 0.0 0.0 +it 07_gas 2 17 2030 0.0 0.0 +it 08_non-res 2 17 2030 0.0 0.0 +it 09_hydro_pump 2 17 2030 0.0 0.0 +it 01_solar 2 18 2030 1.0 0.0 +it 02_wind_on 2 18 2030 0.0 0.0 +it 03_wind_off 2 18 2030 0.0 0.0 +it 04_res 2 18 2030 0.0 0.0 +it 05_nuclear 2 18 2030 0.0 0.0 +it 06_coal 2 18 2030 0.0 0.0 +it 07_gas 2 18 2030 0.0 0.0 +it 08_non-res 2 18 2030 0.0 0.0 +it 09_hydro_pump 2 18 2030 0.0 0.0 +it 01_solar 2 19 2030 1.0 0.0 +it 02_wind_on 2 19 2030 0.0 0.0 +it 03_wind_off 2 19 2030 0.0 0.0 +it 04_res 2 19 2030 0.0 0.0 +it 05_nuclear 2 19 2030 0.0 0.0 +it 06_coal 2 19 2030 0.0 0.0 +it 07_gas 2 19 2030 0.0 0.0 +it 08_non-res 2 19 2030 0.0 0.0 +it 09_hydro_pump 2 19 2030 0.0 0.0 +it 01_solar 2 20 2030 1.0 0.0 +it 02_wind_on 2 20 2030 0.0 0.0 +it 03_wind_off 2 20 2030 0.0 0.0 +it 04_res 2 20 2030 0.0 0.0 +it 05_nuclear 2 20 2030 0.0 0.0 +it 06_coal 2 20 2030 0.0 0.0 +it 07_gas 2 20 2030 0.0 0.0 +it 08_non-res 2 20 2030 0.0 0.0 +it 09_hydro_pump 2 20 2030 0.0 0.0 +it 01_solar 2 21 2030 1.0 0.0 +it 02_wind_on 2 21 2030 0.0 0.0 +it 03_wind_off 2 21 2030 0.0 0.0 +it 04_res 2 21 2030 0.0 0.0 +it 05_nuclear 2 21 2030 0.0 0.0 +it 06_coal 2 21 2030 0.0 0.0 +it 07_gas 2 21 2030 0.0 0.0 +it 08_non-res 2 21 2030 0.0 0.0 +it 09_hydro_pump 2 21 2030 0.0 0.0 +it 01_solar 2 22 2030 1.0 0.0 +it 02_wind_on 2 22 2030 1.0 0.0 +it 03_wind_off 2 22 2030 0.0 0.0 +it 04_res 2 22 2030 0.0 0.0 +it 05_nuclear 2 22 2030 0.0 0.0 +it 06_coal 2 22 2030 0.0 0.0 +it 07_gas 2 22 2030 0.0 0.0 +it 08_non-res 2 22 2030 0.0 0.0 +it 09_hydro_pump 2 22 2030 0.0 0.0 +it 01_solar 2 23 2030 1.0 0.0 +it 02_wind_on 2 23 2030 1.0 0.0 +it 03_wind_off 2 23 2030 0.0 0.0 +it 04_res 2 23 2030 0.0 0.0 +it 05_nuclear 2 23 2030 0.0 0.0 +it 06_coal 2 23 2030 0.0 0.0 +it 07_gas 2 23 2030 0.0 0.0 +it 08_non-res 2 23 2030 0.0 0.0 +it 09_hydro_pump 2 23 2030 0.0 0.0 +it 01_solar 2 24 2030 1.0 0.0 +it 02_wind_on 2 24 2030 1.0 0.0 +it 03_wind_off 2 24 2030 0.0 0.0 +it 04_res 2 24 2030 0.0 0.0 +it 05_nuclear 2 24 2030 0.0 0.0 +it 06_coal 2 24 2030 0.0 0.0 +it 07_gas 2 24 2030 0.0 0.0 +it 08_non-res 2 24 2030 0.0 0.0 +it 09_hydro_pump 2 24 2030 0.0 0.0 +it 01_solar 2 25 2030 1.0 0.0 +it 02_wind_on 2 25 2030 1.0 0.0 +it 03_wind_off 2 25 2030 0.0 0.0 +it 04_res 2 25 2030 0.0 0.0 +it 05_nuclear 2 25 2030 0.0 0.0 +it 06_coal 2 25 2030 0.0 0.0 +it 07_gas 2 25 2030 0.0 0.0 +it 08_non-res 2 25 2030 0.0 0.0 +it 09_hydro_pump 2 25 2030 0.0 0.0 +it 01_solar 2 26 2030 1.0 0.0 +it 02_wind_on 2 26 2030 1.0 0.0 +it 03_wind_off 2 26 2030 0.0 0.0 +it 04_res 2 26 2030 0.0 0.0 +it 05_nuclear 2 26 2030 0.0 0.0 +it 06_coal 2 26 2030 0.0 0.0 +it 07_gas 2 26 2030 0.0 0.0 +it 08_non-res 2 26 2030 0.0 0.0 +it 09_hydro_pump 2 26 2030 0.0 0.0 +it 01_solar 2 27 2030 1.0 0.0 +it 02_wind_on 2 27 2030 1.0 0.0 +it 03_wind_off 2 27 2030 0.0 0.0 +it 04_res 2 27 2030 0.0 0.0 +it 05_nuclear 2 27 2030 0.0 0.0 +it 06_coal 2 27 2030 0.0 0.0 +it 07_gas 2 27 2030 0.0 0.0 +it 08_non-res 2 27 2030 0.0 0.0 +it 09_hydro_pump 2 27 2030 0.0 0.0 +it 01_solar 2 28 2030 1.0 0.0 +it 02_wind_on 2 28 2030 1.0 0.0 +it 03_wind_off 2 28 2030 0.0 0.0 +it 04_res 2 28 2030 0.0 0.0 +it 05_nuclear 2 28 2030 0.0 0.0 +it 06_coal 2 28 2030 0.0 0.0 +it 07_gas 2 28 2030 0.0 0.0 +it 08_non-res 2 28 2030 0.0 0.0 +it 09_hydro_pump 2 28 2030 0.0 0.0 +it 01_solar 2 29 2030 1.0 0.0 +it 02_wind_on 2 29 2030 1.0 0.0 +it 03_wind_off 2 29 2030 0.0 0.0 +it 04_res 2 29 2030 0.0 0.0 +it 05_nuclear 2 29 2030 0.0 0.0 +it 06_coal 2 29 2030 0.0 0.0 +it 07_gas 2 29 2030 0.0 0.0 +it 08_non-res 2 29 2030 0.0 0.0 +it 09_hydro_pump 2 29 2030 0.0 0.0 +it 01_solar 2 30 2030 1.0 0.0 +it 02_wind_on 2 30 2030 1.0 0.0 +it 03_wind_off 2 30 2030 0.0 0.0 +it 04_res 2 30 2030 0.0 0.0 +it 05_nuclear 2 30 2030 0.0 0.0 +it 06_coal 2 30 2030 0.0 0.0 +it 07_gas 2 30 2030 0.0 0.0 +it 08_non-res 2 30 2030 0.0 0.0 +it 09_hydro_pump 2 30 2030 0.0 0.0 +it 01_solar 2 31 2030 1.0 0.0 +it 02_wind_on 2 31 2030 1.0 0.0 +it 03_wind_off 2 31 2030 0.0 0.0 +it 04_res 2 31 2030 0.0 0.0 +it 05_nuclear 2 31 2030 0.0 0.0 +it 06_coal 2 31 2030 0.0 0.0 +it 07_gas 2 31 2030 0.0 0.0 +it 08_non-res 2 31 2030 0.0 0.0 +it 09_hydro_pump 2 31 2030 0.0 0.0 +it 01_solar 2 32 2030 1.0 0.0 +it 02_wind_on 2 32 2030 1.0 0.0 +it 03_wind_off 2 32 2030 0.0 0.0 +it 04_res 2 32 2030 0.0 0.0 +it 05_nuclear 2 32 2030 0.0 0.0 +it 06_coal 2 32 2030 0.0 0.0 +it 07_gas 2 32 2030 0.0 0.0 +it 08_non-res 2 32 2030 0.0 0.0 +it 09_hydro_pump 2 32 2030 0.0 0.0 +it 01_solar 2 33 2030 1.0 0.0 +it 02_wind_on 2 33 2030 1.0 0.0 +it 03_wind_off 2 33 2030 0.0 0.0 +it 04_res 2 33 2030 0.0 0.0 +it 05_nuclear 2 33 2030 0.0 0.0 +it 06_coal 2 33 2030 0.0 0.0 +it 07_gas 2 33 2030 0.0 0.0 +it 08_non-res 2 33 2030 0.0 0.0 +it 09_hydro_pump 2 33 2030 0.0 0.0 +it 01_solar 2 34 2030 1.0 0.0 +it 02_wind_on 2 34 2030 1.0 0.0 +it 03_wind_off 2 34 2030 0.0 0.0 +it 04_res 2 34 2030 0.0 0.0 +it 05_nuclear 2 34 2030 0.0 0.0 +it 06_coal 2 34 2030 0.0 0.0 +it 07_gas 2 34 2030 0.0 0.0 +it 08_non-res 2 34 2030 0.0 0.0 +it 09_hydro_pump 2 34 2030 0.0 0.0 +it 01_solar 2 35 2030 1.0 0.0 +it 02_wind_on 2 35 2030 1.0 0.0 +it 03_wind_off 2 35 2030 0.0 0.0 +it 04_res 2 35 2030 0.0 0.0 +it 05_nuclear 2 35 2030 0.0 0.0 +it 06_coal 2 35 2030 0.0 0.0 +it 07_gas 2 35 2030 0.0 0.0 +it 08_non-res 2 35 2030 0.0 0.0 +it 09_hydro_pump 2 35 2030 0.0 0.0 +it 01_solar 2 36 2030 1.0 0.0 +it 02_wind_on 2 36 2030 1.0 0.0 +it 03_wind_off 2 36 2030 0.0 0.0 +it 04_res 2 36 2030 0.0 0.0 +it 05_nuclear 2 36 2030 0.0 0.0 +it 06_coal 2 36 2030 0.0 0.0 +it 07_gas 2 36 2030 0.0 0.0 +it 08_non-res 2 36 2030 0.0 0.0 +it 09_hydro_pump 2 36 2030 0.0 0.0 +it 01_solar 2 37 2030 1.0 0.0 +it 02_wind_on 2 37 2030 1.0 0.0 +it 03_wind_off 2 37 2030 0.0 0.0 +it 04_res 2 37 2030 0.0 0.0 +it 05_nuclear 2 37 2030 0.0 0.0 +it 06_coal 2 37 2030 0.0 0.0 +it 07_gas 2 37 2030 0.0 0.0 +it 08_non-res 2 37 2030 0.0 0.0 +it 09_hydro_pump 2 37 2030 0.0 0.0 +it 01_solar 2 38 2030 1.0 0.0 +it 02_wind_on 2 38 2030 1.0 0.0 +it 03_wind_off 2 38 2030 0.0 0.0 +it 04_res 2 38 2030 0.0 0.0 +it 05_nuclear 2 38 2030 0.0 0.0 +it 06_coal 2 38 2030 0.0 0.0 +it 07_gas 2 38 2030 0.0 0.0 +it 08_non-res 2 38 2030 0.0 0.0 +it 09_hydro_pump 2 38 2030 0.0 0.0 +it 01_solar 2 39 2030 1.0 0.0 +it 02_wind_on 2 39 2030 1.0 0.0 +it 03_wind_off 2 39 2030 0.0 0.0 +it 04_res 2 39 2030 0.0 0.0 +it 05_nuclear 2 39 2030 0.0 0.0 +it 06_coal 2 39 2030 0.0 0.0 +it 07_gas 2 39 2030 0.0 0.0 +it 08_non-res 2 39 2030 0.0 0.0 +it 09_hydro_pump 2 39 2030 0.0 0.0 +it 01_solar 2 40 2030 1.0 0.0 +it 02_wind_on 2 40 2030 1.0 0.0 +it 03_wind_off 2 40 2030 0.0 0.0 +it 04_res 2 40 2030 0.0 0.0 +it 05_nuclear 2 40 2030 0.0 0.0 +it 06_coal 2 40 2030 0.0 0.0 +it 07_gas 2 40 2030 0.0 0.0 +it 08_non-res 2 40 2030 0.0 0.0 +it 09_hydro_pump 2 40 2030 0.0 0.0 +it 01_solar 2 41 2030 1.0 0.0 +it 02_wind_on 2 41 2030 1.0 0.0 +it 03_wind_off 2 41 2030 0.0 0.0 +it 04_res 2 41 2030 0.0 0.0 +it 05_nuclear 2 41 2030 0.0 0.0 +it 06_coal 2 41 2030 0.0 0.0 +it 07_gas 2 41 2030 0.0 0.0 +it 08_non-res 2 41 2030 0.0 0.0 +it 09_hydro_pump 2 41 2030 0.0 0.0 +it 01_solar 2 42 2030 1.0 0.0 +it 02_wind_on 2 42 2030 1.0 0.0 +it 03_wind_off 2 42 2030 1.0 0.0 +it 04_res 2 42 2030 0.0 0.0 +it 05_nuclear 2 42 2030 0.0 0.0 +it 06_coal 2 42 2030 0.0 0.0 +it 07_gas 2 42 2030 0.0 0.0 +it 08_non-res 2 42 2030 0.0 0.0 +it 09_hydro_pump 2 42 2030 0.0 0.0 +it 01_solar 2 43 2030 1.0 0.0 +it 02_wind_on 2 43 2030 1.0 0.0 +it 03_wind_off 2 43 2030 1.0 0.0 +it 04_res 2 43 2030 0.0 0.0 +it 05_nuclear 2 43 2030 0.0 0.0 +it 06_coal 2 43 2030 0.0 0.0 +it 07_gas 2 43 2030 0.0 0.0 +it 08_non-res 2 43 2030 0.0 0.0 +it 09_hydro_pump 2 43 2030 0.0 0.0 +it 01_solar 2 44 2030 1.0 0.0 +it 02_wind_on 2 44 2030 1.0 0.0 +it 03_wind_off 2 44 2030 1.0 0.0 +it 04_res 2 44 2030 0.0 0.0 +it 05_nuclear 2 44 2030 0.0 0.0 +it 06_coal 2 44 2030 0.0 0.0 +it 07_gas 2 44 2030 0.0 0.0 +it 08_non-res 2 44 2030 0.0 0.0 +it 09_hydro_pump 2 44 2030 0.0 0.0 +it 01_solar 2 45 2030 1.0 0.0 +it 02_wind_on 2 45 2030 1.0 0.0 +it 03_wind_off 2 45 2030 1.0 0.0 +it 04_res 2 45 2030 0.0 0.0 +it 05_nuclear 2 45 2030 0.0 0.0 +it 06_coal 2 45 2030 0.0 0.0 +it 07_gas 2 45 2030 0.0 0.0 +it 08_non-res 2 45 2030 0.0 0.0 +it 09_hydro_pump 2 45 2030 0.0 0.0 +it 01_solar 2 46 2030 1.0 0.0 +it 02_wind_on 2 46 2030 1.0 0.0 +it 03_wind_off 2 46 2030 1.0 0.0 +it 04_res 2 46 2030 0.0 0.0 +it 05_nuclear 2 46 2030 0.0 0.0 +it 06_coal 2 46 2030 0.0 0.0 +it 07_gas 2 46 2030 0.0 0.0 +it 08_non-res 2 46 2030 0.0 0.0 +it 09_hydro_pump 2 46 2030 0.0 0.0 +it 01_solar 2 47 2030 1.0 0.0 +it 02_wind_on 2 47 2030 1.0 0.0 +it 03_wind_off 2 47 2030 1.0 0.0 +it 04_res 2 47 2030 0.0 0.0 +it 05_nuclear 2 47 2030 0.0 0.0 +it 06_coal 2 47 2030 0.0 0.0 +it 07_gas 2 47 2030 0.0 0.0 +it 08_non-res 2 47 2030 0.0 0.0 +it 09_hydro_pump 2 47 2030 0.0 0.0 +it 01_solar 2 48 2030 1.0 0.0 +it 02_wind_on 2 48 2030 1.0 0.0 +it 03_wind_off 2 48 2030 1.0 0.0 +it 04_res 2 48 2030 0.0 0.0 +it 05_nuclear 2 48 2030 0.0 0.0 +it 06_coal 2 48 2030 0.0 0.0 +it 07_gas 2 48 2030 0.0 0.0 +it 08_non-res 2 48 2030 0.0 0.0 +it 09_hydro_pump 2 48 2030 0.0 0.0 +it 01_solar 2 49 2030 1.0 0.0 +it 02_wind_on 2 49 2030 1.0 0.0 +it 03_wind_off 2 49 2030 1.0 0.0 +it 04_res 2 49 2030 0.0 0.0 +it 05_nuclear 2 49 2030 0.0 0.0 +it 06_coal 2 49 2030 0.0 0.0 +it 07_gas 2 49 2030 0.0 0.0 +it 08_non-res 2 49 2030 0.0 0.0 +it 09_hydro_pump 2 49 2030 0.0 0.0 +it 01_solar 2 50 2030 1.0 0.0 +it 02_wind_on 2 50 2030 1.0 0.0 +it 03_wind_off 2 50 2030 1.0 0.0 +it 04_res 2 50 2030 0.0 0.0 +it 05_nuclear 2 50 2030 0.0 0.0 +it 06_coal 2 50 2030 0.0 0.0 +it 07_gas 2 50 2030 0.0 0.0 +it 08_non-res 2 50 2030 0.0 0.0 +it 09_hydro_pump 2 50 2030 0.0 0.0 +it 01_solar 2 51 2030 1.0 0.0 +it 02_wind_on 2 51 2030 1.0 0.0 +it 03_wind_off 2 51 2030 1.0 0.0 +it 04_res 2 51 2030 0.0 0.0 +it 05_nuclear 2 51 2030 0.0 0.0 +it 06_coal 2 51 2030 0.0 0.0 +it 07_gas 2 51 2030 0.0 0.0 +it 08_non-res 2 51 2030 0.0 0.0 +it 09_hydro_pump 2 51 2030 0.0 0.0 +it 01_solar 2 52 2030 1.0 0.0 +it 02_wind_on 2 52 2030 1.0 0.0 +it 03_wind_off 2 52 2030 1.0 0.0 +it 04_res 2 52 2030 0.0 0.0 +it 05_nuclear 2 52 2030 0.0 0.0 +it 06_coal 2 52 2030 0.0 0.0 +it 07_gas 2 52 2030 0.0 0.0 +it 08_non-res 2 52 2030 0.0 0.0 +it 09_hydro_pump 2 52 2030 0.0 0.0 +it 01_solar 2 53 2030 1.0 0.0 +it 02_wind_on 2 53 2030 1.0 0.0 +it 03_wind_off 2 53 2030 1.0 0.0 +it 04_res 2 53 2030 0.0 0.0 +it 05_nuclear 2 53 2030 0.0 0.0 +it 06_coal 2 53 2030 0.0 0.0 +it 07_gas 2 53 2030 0.0 0.0 +it 08_non-res 2 53 2030 0.0 0.0 +it 09_hydro_pump 2 53 2030 0.0 0.0 +it 01_solar 2 54 2030 1.0 0.0 +it 02_wind_on 2 54 2030 1.0 0.0 +it 03_wind_off 2 54 2030 1.0 0.0 +it 04_res 2 54 2030 0.0 0.0 +it 05_nuclear 2 54 2030 0.0 0.0 +it 06_coal 2 54 2030 0.0 0.0 +it 07_gas 2 54 2030 0.0 0.0 +it 08_non-res 2 54 2030 0.0 0.0 +it 09_hydro_pump 2 54 2030 0.0 0.0 +it 01_solar 2 55 2030 1.0 0.0 +it 02_wind_on 2 55 2030 1.0 0.0 +it 03_wind_off 2 55 2030 1.0 0.0 +it 04_res 2 55 2030 0.0 0.0 +it 05_nuclear 2 55 2030 0.0 0.0 +it 06_coal 2 55 2030 0.0 0.0 +it 07_gas 2 55 2030 0.0 0.0 +it 08_non-res 2 55 2030 0.0 0.0 +it 09_hydro_pump 2 55 2030 0.0 0.0 +it 01_solar 2 56 2030 1.0 0.0 +it 02_wind_on 2 56 2030 1.0 0.0 +it 03_wind_off 2 56 2030 1.0 0.0 +it 04_res 2 56 2030 0.0 0.0 +it 05_nuclear 2 56 2030 0.0 0.0 +it 06_coal 2 56 2030 0.0 0.0 +it 07_gas 2 56 2030 0.0 0.0 +it 08_non-res 2 56 2030 0.0 0.0 +it 09_hydro_pump 2 56 2030 0.0 0.0 +it 01_solar 2 57 2030 1.0 0.0 +it 02_wind_on 2 57 2030 1.0 0.0 +it 03_wind_off 2 57 2030 1.0 0.0 +it 04_res 2 57 2030 0.0 0.0 +it 05_nuclear 2 57 2030 0.0 0.0 +it 06_coal 2 57 2030 0.0 0.0 +it 07_gas 2 57 2030 0.0 0.0 +it 08_non-res 2 57 2030 0.0 0.0 +it 09_hydro_pump 2 57 2030 0.0 0.0 +it 01_solar 2 58 2030 1.0 0.0 +it 02_wind_on 2 58 2030 1.0 0.0 +it 03_wind_off 2 58 2030 1.0 0.0 +it 04_res 2 58 2030 0.0 0.0 +it 05_nuclear 2 58 2030 0.0 0.0 +it 06_coal 2 58 2030 0.0 0.0 +it 07_gas 2 58 2030 0.0 0.0 +it 08_non-res 2 58 2030 0.0 0.0 +it 09_hydro_pump 2 58 2030 0.0 0.0 +it 01_solar 2 59 2030 1.0 0.0 +it 02_wind_on 2 59 2030 1.0 0.0 +it 03_wind_off 2 59 2030 1.0 0.0 +it 04_res 2 59 2030 0.0 0.0 +it 05_nuclear 2 59 2030 0.0 0.0 +it 06_coal 2 59 2030 0.0 0.0 +it 07_gas 2 59 2030 0.0 0.0 +it 08_non-res 2 59 2030 0.0 0.0 +it 09_hydro_pump 2 59 2030 0.0 0.0 +it 01_solar 2 60 2030 1.0 0.0 +it 02_wind_on 2 60 2030 1.0 0.0 +it 03_wind_off 2 60 2030 1.0 0.0 +it 04_res 2 60 2030 0.0 0.0 +it 05_nuclear 2 60 2030 0.0 0.0 +it 06_coal 2 60 2030 0.0 0.0 +it 07_gas 2 60 2030 0.0 0.0 +it 08_non-res 2 60 2030 0.0 0.0 +it 09_hydro_pump 2 60 2030 0.0 0.0 +it 01_solar 2 61 2030 1.0 0.0 +it 02_wind_on 2 61 2030 1.0 0.0 +it 03_wind_off 2 61 2030 1.0 0.0 +it 04_res 2 61 2030 0.0 0.0 +it 05_nuclear 2 61 2030 0.0 0.0 +it 06_coal 2 61 2030 0.0 0.0 +it 07_gas 2 61 2030 0.0 0.0 +it 08_non-res 2 61 2030 0.0 0.0 +it 09_hydro_pump 2 61 2030 0.0 0.0 +it 01_solar 2 62 2030 1.0 0.0 +it 02_wind_on 2 62 2030 1.0 0.0 +it 03_wind_off 2 62 2030 1.0 0.0 +it 04_res 2 62 2030 1.0 0.0 +it 05_nuclear 2 62 2030 0.0 0.0 +it 06_coal 2 62 2030 0.0 0.0 +it 07_gas 2 62 2030 0.0 0.0 +it 08_non-res 2 62 2030 0.0 0.0 +it 09_hydro_pump 2 62 2030 0.0 0.0 +it 01_solar 2 63 2030 1.0 0.0 +it 02_wind_on 2 63 2030 1.0 0.0 +it 03_wind_off 2 63 2030 1.0 0.0 +it 04_res 2 63 2030 1.0 0.0 +it 05_nuclear 2 63 2030 0.0 0.0 +it 06_coal 2 63 2030 0.0 0.0 +it 07_gas 2 63 2030 0.0 0.0 +it 08_non-res 2 63 2030 0.0 0.0 +it 09_hydro_pump 2 63 2030 0.0 0.0 +it 01_solar 2 64 2030 1.0 0.0 +it 02_wind_on 2 64 2030 1.0 0.0 +it 03_wind_off 2 64 2030 1.0 0.0 +it 04_res 2 64 2030 1.0 0.0 +it 05_nuclear 2 64 2030 0.0 0.0 +it 06_coal 2 64 2030 0.0 0.0 +it 07_gas 2 64 2030 0.0 0.0 +it 08_non-res 2 64 2030 0.0 0.0 +it 09_hydro_pump 2 64 2030 0.0 0.0 +it 01_solar 2 65 2030 1.0 0.0 +it 02_wind_on 2 65 2030 1.0 0.0 +it 03_wind_off 2 65 2030 1.0 0.0 +it 04_res 2 65 2030 1.0 0.0 +it 05_nuclear 2 65 2030 0.0 0.0 +it 06_coal 2 65 2030 0.0 0.0 +it 07_gas 2 65 2030 0.0 0.0 +it 08_non-res 2 65 2030 0.0 0.0 +it 09_hydro_pump 2 65 2030 0.0 0.0 +it 01_solar 2 66 2030 1.0 0.0 +it 02_wind_on 2 66 2030 1.0 0.0 +it 03_wind_off 2 66 2030 1.0 0.0 +it 04_res 2 66 2030 1.0 0.0 +it 05_nuclear 2 66 2030 0.0 0.0 +it 06_coal 2 66 2030 0.0 0.0 +it 07_gas 2 66 2030 0.0 0.0 +it 08_non-res 2 66 2030 0.0 0.0 +it 09_hydro_pump 2 66 2030 0.0 0.0 +it 01_solar 2 67 2030 1.0 0.0 +it 02_wind_on 2 67 2030 1.0 0.0 +it 03_wind_off 2 67 2030 1.0 0.0 +it 04_res 2 67 2030 1.0 0.0 +it 05_nuclear 2 67 2030 0.0 0.0 +it 06_coal 2 67 2030 0.0 0.0 +it 07_gas 2 67 2030 0.0 0.0 +it 08_non-res 2 67 2030 0.0 0.0 +it 09_hydro_pump 2 67 2030 0.0 0.0 +it 01_solar 2 68 2030 1.0 0.0 +it 02_wind_on 2 68 2030 1.0 0.0 +it 03_wind_off 2 68 2030 1.0 0.0 +it 04_res 2 68 2030 1.0 0.0 +it 05_nuclear 2 68 2030 0.0 0.0 +it 06_coal 2 68 2030 0.0 0.0 +it 07_gas 2 68 2030 0.0 0.0 +it 08_non-res 2 68 2030 0.0 0.0 +it 09_hydro_pump 2 68 2030 0.0 0.0 +it 01_solar 2 69 2030 1.0 0.0 +it 02_wind_on 2 69 2030 1.0 0.0 +it 03_wind_off 2 69 2030 1.0 0.0 +it 04_res 2 69 2030 1.0 0.0 +it 05_nuclear 2 69 2030 0.0 0.0 +it 06_coal 2 69 2030 0.0 0.0 +it 07_gas 2 69 2030 0.0 0.0 +it 08_non-res 2 69 2030 0.0 0.0 +it 09_hydro_pump 2 69 2030 0.0 0.0 +it 01_solar 2 70 2030 1.0 0.0 +it 02_wind_on 2 70 2030 1.0 0.0 +it 03_wind_off 2 70 2030 1.0 0.0 +it 04_res 2 70 2030 1.0 0.0 +it 05_nuclear 2 70 2030 0.0 0.0 +it 06_coal 2 70 2030 0.0 0.0 +it 07_gas 2 70 2030 0.0 0.0 +it 08_non-res 2 70 2030 0.0 0.0 +it 09_hydro_pump 2 70 2030 0.0 0.0 +it 01_solar 2 71 2030 1.0 0.0 +it 02_wind_on 2 71 2030 1.0 0.0 +it 03_wind_off 2 71 2030 1.0 0.0 +it 04_res 2 71 2030 1.0 0.0 +it 05_nuclear 2 71 2030 0.0 0.0 +it 06_coal 2 71 2030 0.0 0.0 +it 07_gas 2 71 2030 0.0 0.0 +it 08_non-res 2 71 2030 0.0 0.0 +it 09_hydro_pump 2 71 2030 0.0 0.0 +it 01_solar 2 72 2030 1.0 0.0 +it 02_wind_on 2 72 2030 1.0 0.0 +it 03_wind_off 2 72 2030 1.0 0.0 +it 04_res 2 72 2030 1.0 0.0 +it 05_nuclear 2 72 2030 0.0 0.0 +it 06_coal 2 72 2030 0.0 0.0 +it 07_gas 2 72 2030 0.0 0.0 +it 08_non-res 2 72 2030 0.0 0.0 +it 09_hydro_pump 2 72 2030 0.0 0.0 +it 01_solar 2 73 2030 1.0 0.0 +it 02_wind_on 2 73 2030 1.0 0.0 +it 03_wind_off 2 73 2030 1.0 0.0 +it 04_res 2 73 2030 1.0 0.0 +it 05_nuclear 2 73 2030 0.0 0.0 +it 06_coal 2 73 2030 0.0 0.0 +it 07_gas 2 73 2030 0.0 0.0 +it 08_non-res 2 73 2030 0.0 0.0 +it 09_hydro_pump 2 73 2030 0.0 0.0 +it 01_solar 2 74 2030 1.0 0.0 +it 02_wind_on 2 74 2030 1.0 0.0 +it 03_wind_off 2 74 2030 1.0 0.0 +it 04_res 2 74 2030 1.0 0.0 +it 05_nuclear 2 74 2030 0.0 0.0 +it 06_coal 2 74 2030 0.0 0.0 +it 07_gas 2 74 2030 0.0 0.0 +it 08_non-res 2 74 2030 0.0 0.0 +it 09_hydro_pump 2 74 2030 0.0 0.0 +it 01_solar 2 75 2030 1.0 0.0 +it 02_wind_on 2 75 2030 1.0 0.0 +it 03_wind_off 2 75 2030 1.0 0.0 +it 04_res 2 75 2030 1.0 0.0 +it 05_nuclear 2 75 2030 0.0 0.0 +it 06_coal 2 75 2030 0.0 0.0 +it 07_gas 2 75 2030 0.0 0.0 +it 08_non-res 2 75 2030 0.0 0.0 +it 09_hydro_pump 2 75 2030 0.0 0.0 +it 01_solar 2 76 2030 1.0 0.0 +it 02_wind_on 2 76 2030 1.0 0.0 +it 03_wind_off 2 76 2030 1.0 0.0 +it 04_res 2 76 2030 1.0 0.0 +it 05_nuclear 2 76 2030 0.0 0.0 +it 06_coal 2 76 2030 0.0 0.0 +it 07_gas 2 76 2030 0.0 0.0 +it 08_non-res 2 76 2030 0.0 0.0 +it 09_hydro_pump 2 76 2030 0.0 0.0 +it 01_solar 2 77 2030 1.0 0.0 +it 02_wind_on 2 77 2030 1.0 0.0 +it 03_wind_off 2 77 2030 1.0 0.0 +it 04_res 2 77 2030 1.0 0.0 +it 05_nuclear 2 77 2030 0.0 0.0 +it 06_coal 2 77 2030 0.0 0.0 +it 07_gas 2 77 2030 0.0 0.0 +it 08_non-res 2 77 2030 0.0 0.0 +it 09_hydro_pump 2 77 2030 0.0 0.0 +it 01_solar 2 78 2030 1.0 0.0 +it 02_wind_on 2 78 2030 1.0 0.0 +it 03_wind_off 2 78 2030 1.0 0.0 +it 04_res 2 78 2030 1.0 0.0 +it 05_nuclear 2 78 2030 0.0 0.0 +it 06_coal 2 78 2030 0.0 0.0 +it 07_gas 2 78 2030 0.0 0.0 +it 08_non-res 2 78 2030 0.0 0.0 +it 09_hydro_pump 2 78 2030 0.0 0.0 +it 01_solar 2 79 2030 1.0 0.0 +it 02_wind_on 2 79 2030 1.0 0.0 +it 03_wind_off 2 79 2030 1.0 0.0 +it 04_res 2 79 2030 1.0 0.0 +it 05_nuclear 2 79 2030 0.0 0.0 +it 06_coal 2 79 2030 0.0 0.0 +it 07_gas 2 79 2030 0.0 0.0 +it 08_non-res 2 79 2030 0.0 0.0 +it 09_hydro_pump 2 79 2030 0.0 0.0 +it 01_solar 2 80 2030 1.0 0.0 +it 02_wind_on 2 80 2030 1.0 0.0 +it 03_wind_off 2 80 2030 1.0 0.0 +it 04_res 2 80 2030 1.0 0.0 +it 05_nuclear 2 80 2030 0.0 0.0 +it 06_coal 2 80 2030 0.0 0.0 +it 07_gas 2 80 2030 0.0 0.0 +it 08_non-res 2 80 2030 0.0 0.0 +it 09_hydro_pump 2 80 2030 0.0 0.0 +it 01_solar 2 81 2030 1.0 0.0 +it 02_wind_on 2 81 2030 1.0 0.0 +it 03_wind_off 2 81 2030 1.0 0.0 +it 04_res 2 81 2030 1.0 0.0 +it 05_nuclear 2 81 2030 0.0 0.0 +it 06_coal 2 81 2030 0.0 0.0 +it 07_gas 2 81 2030 0.0 0.0 +it 08_non-res 2 81 2030 0.0 0.0 +it 09_hydro_pump 2 81 2030 0.0 0.0 +it 01_solar 2 82 2030 1.0 0.0 +it 02_wind_on 2 82 2030 1.0 0.0 +it 03_wind_off 2 82 2030 1.0 0.0 +it 04_res 2 82 2030 1.0 0.0 +it 05_nuclear 2 82 2030 1.0 0.0 +it 06_coal 2 82 2030 0.0 0.0 +it 07_gas 2 82 2030 0.0 0.0 +it 08_non-res 2 82 2030 0.0 0.0 +it 09_hydro_pump 2 82 2030 0.0 0.0 +it 01_solar 2 83 2030 1.0 0.0 +it 02_wind_on 2 83 2030 1.0 0.0 +it 03_wind_off 2 83 2030 1.0 0.0 +it 04_res 2 83 2030 1.0 0.0 +it 05_nuclear 2 83 2030 1.0 0.0 +it 06_coal 2 83 2030 0.0 0.0 +it 07_gas 2 83 2030 0.0 0.0 +it 08_non-res 2 83 2030 0.0 0.0 +it 09_hydro_pump 2 83 2030 0.0 0.0 +it 01_solar 2 84 2030 1.0 0.0 +it 02_wind_on 2 84 2030 1.0 0.0 +it 03_wind_off 2 84 2030 1.0 0.0 +it 04_res 2 84 2030 1.0 0.0 +it 05_nuclear 2 84 2030 1.0 0.0 +it 06_coal 2 84 2030 0.0 0.0 +it 07_gas 2 84 2030 0.0 0.0 +it 08_non-res 2 84 2030 0.0 0.0 +it 09_hydro_pump 2 84 2030 0.0 0.0 +it 01_solar 2 85 2030 1.0 0.0 +it 02_wind_on 2 85 2030 1.0 0.0 +it 03_wind_off 2 85 2030 1.0 0.0 +it 04_res 2 85 2030 1.0 0.0 +it 05_nuclear 2 85 2030 1.0 0.0 +it 06_coal 2 85 2030 0.0 0.0 +it 07_gas 2 85 2030 0.0 0.0 +it 08_non-res 2 85 2030 0.0 0.0 +it 09_hydro_pump 2 85 2030 0.0 0.0 +it 01_solar 2 86 2030 1.0 0.0 +it 02_wind_on 2 86 2030 1.0 0.0 +it 03_wind_off 2 86 2030 1.0 0.0 +it 04_res 2 86 2030 1.0 0.0 +it 05_nuclear 2 86 2030 1.0 0.0 +it 06_coal 2 86 2030 0.0 0.0 +it 07_gas 2 86 2030 0.0 0.0 +it 08_non-res 2 86 2030 0.0 0.0 +it 09_hydro_pump 2 86 2030 0.0 0.0 +it 01_solar 2 87 2030 1.0 0.0 +it 02_wind_on 2 87 2030 1.0 0.0 +it 03_wind_off 2 87 2030 1.0 0.0 +it 04_res 2 87 2030 1.0 0.0 +it 05_nuclear 2 87 2030 1.0 0.0 +it 06_coal 2 87 2030 0.0 0.0 +it 07_gas 2 87 2030 0.0 0.0 +it 08_non-res 2 87 2030 0.0 0.0 +it 09_hydro_pump 2 87 2030 0.0 0.0 +it 01_solar 2 88 2030 1.0 0.0 +it 02_wind_on 2 88 2030 1.0 0.0 +it 03_wind_off 2 88 2030 1.0 0.0 +it 04_res 2 88 2030 1.0 0.0 +it 05_nuclear 2 88 2030 1.0 0.0 +it 06_coal 2 88 2030 0.0 0.0 +it 07_gas 2 88 2030 0.0 0.0 +it 08_non-res 2 88 2030 0.0 0.0 +it 09_hydro_pump 2 88 2030 0.0 0.0 +it 01_solar 2 89 2030 1.0 0.0 +it 02_wind_on 2 89 2030 1.0 0.0 +it 03_wind_off 2 89 2030 1.0 0.0 +it 04_res 2 89 2030 1.0 0.0 +it 05_nuclear 2 89 2030 1.0 0.0 +it 06_coal 2 89 2030 0.0 0.0 +it 07_gas 2 89 2030 0.0 0.0 +it 08_non-res 2 89 2030 0.0 0.0 +it 09_hydro_pump 2 89 2030 0.0 0.0 +it 01_solar 2 90 2030 1.0 0.0 +it 02_wind_on 2 90 2030 1.0 0.0 +it 03_wind_off 2 90 2030 1.0 0.0 +it 04_res 2 90 2030 1.0 0.0 +it 05_nuclear 2 90 2030 1.0 0.0 +it 06_coal 2 90 2030 0.0 0.0 +it 07_gas 2 90 2030 0.0 0.0 +it 08_non-res 2 90 2030 0.0 0.0 +it 09_hydro_pump 2 90 2030 0.0 0.0 +it 01_solar 2 91 2030 1.0 0.0 +it 02_wind_on 2 91 2030 1.0 0.0 +it 03_wind_off 2 91 2030 1.0 0.0 +it 04_res 2 91 2030 1.0 0.0 +it 05_nuclear 2 91 2030 1.0 0.0 +it 06_coal 2 91 2030 0.0 0.0 +it 07_gas 2 91 2030 0.0 0.0 +it 08_non-res 2 91 2030 0.0 0.0 +it 09_hydro_pump 2 91 2030 0.0 0.0 +it 01_solar 2 92 2030 1.0 0.0 +it 02_wind_on 2 92 2030 1.0 0.0 +it 03_wind_off 2 92 2030 1.0 0.0 +it 04_res 2 92 2030 1.0 0.0 +it 05_nuclear 2 92 2030 1.0 0.0 +it 06_coal 2 92 2030 0.0 0.0 +it 07_gas 2 92 2030 0.0 0.0 +it 08_non-res 2 92 2030 0.0 0.0 +it 09_hydro_pump 2 92 2030 0.0 0.0 +it 01_solar 2 93 2030 1.0 0.0 +it 02_wind_on 2 93 2030 1.0 0.0 +it 03_wind_off 2 93 2030 1.0 0.0 +it 04_res 2 93 2030 1.0 0.0 +it 05_nuclear 2 93 2030 1.0 0.0 +it 06_coal 2 93 2030 0.0 0.0 +it 07_gas 2 93 2030 0.0 0.0 +it 08_non-res 2 93 2030 0.0 0.0 +it 09_hydro_pump 2 93 2030 0.0 0.0 +it 01_solar 2 94 2030 1.0 0.0 +it 02_wind_on 2 94 2030 1.0 0.0 +it 03_wind_off 2 94 2030 1.0 0.0 +it 04_res 2 94 2030 1.0 0.0 +it 05_nuclear 2 94 2030 1.0 0.0 +it 06_coal 2 94 2030 0.0 0.0 +it 07_gas 2 94 2030 0.0 0.0 +it 08_non-res 2 94 2030 0.0 0.0 +it 09_hydro_pump 2 94 2030 0.0 0.0 +it 01_solar 2 95 2030 1.0 0.0 +it 02_wind_on 2 95 2030 1.0 0.0 +it 03_wind_off 2 95 2030 1.0 0.0 +it 04_res 2 95 2030 1.0 0.0 +it 05_nuclear 2 95 2030 1.0 0.0 +it 06_coal 2 95 2030 0.0 0.0 +it 07_gas 2 95 2030 0.0 0.0 +it 08_non-res 2 95 2030 0.0 0.0 +it 09_hydro_pump 2 95 2030 0.0 0.0 +it 01_solar 2 96 2030 1.0 0.0 +it 02_wind_on 2 96 2030 1.0 0.0 +it 03_wind_off 2 96 2030 1.0 0.0 +it 04_res 2 96 2030 1.0 0.0 +it 05_nuclear 2 96 2030 1.0 0.0 +it 06_coal 2 96 2030 0.0 0.0 +it 07_gas 2 96 2030 0.0 0.0 +it 08_non-res 2 96 2030 0.0 0.0 +it 09_hydro_pump 2 96 2030 0.0 0.0 +it 01_solar 2 97 2030 1.0 0.0 +it 02_wind_on 2 97 2030 1.0 0.0 +it 03_wind_off 2 97 2030 1.0 0.0 +it 04_res 2 97 2030 1.0 0.0 +it 05_nuclear 2 97 2030 1.0 0.0 +it 06_coal 2 97 2030 0.0 0.0 +it 07_gas 2 97 2030 0.0 0.0 +it 08_non-res 2 97 2030 0.0 0.0 +it 09_hydro_pump 2 97 2030 0.0 0.0 +it 01_solar 2 98 2030 1.0 0.0 +it 02_wind_on 2 98 2030 1.0 0.0 +it 03_wind_off 2 98 2030 1.0 0.0 +it 04_res 2 98 2030 1.0 0.0 +it 05_nuclear 2 98 2030 1.0 0.0 +it 06_coal 2 98 2030 0.0 0.0 +it 07_gas 2 98 2030 0.0 0.0 +it 08_non-res 2 98 2030 0.0 0.0 +it 09_hydro_pump 2 98 2030 0.0 0.0 +it 01_solar 2 99 2030 1.0 0.0 +it 02_wind_on 2 99 2030 1.0 0.0 +it 03_wind_off 2 99 2030 1.0 0.0 +it 04_res 2 99 2030 1.0 0.0 +it 05_nuclear 2 99 2030 1.0 0.0 +it 06_coal 2 99 2030 0.0 0.0 +it 07_gas 2 99 2030 0.0 0.0 +it 08_non-res 2 99 2030 0.0 0.0 +it 09_hydro_pump 2 99 2030 0.0 0.0 +it 01_solar 2 100 2030 1.0 0.0 +it 02_wind_on 2 100 2030 1.0 0.0 +it 03_wind_off 2 100 2030 1.0 0.0 +it 04_res 2 100 2030 1.0 0.0 +it 05_nuclear 2 100 2030 1.0 0.0 +it 06_coal 2 100 2030 0.0 0.0 +it 07_gas 2 100 2030 0.0 0.0 +it 08_non-res 2 100 2030 0.0 0.0 +it 09_hydro_pump 2 100 2030 0.0 0.0 +it 01_solar 2 101 2030 1.0 0.0 +it 02_wind_on 2 101 2030 1.0 0.0 +it 03_wind_off 2 101 2030 1.0 0.0 +it 04_res 2 101 2030 1.0 0.0 +it 05_nuclear 2 101 2030 1.0 0.0 +it 06_coal 2 101 2030 0.0 0.0 +it 07_gas 2 101 2030 0.0 0.0 +it 08_non-res 2 101 2030 0.0 0.0 +it 09_hydro_pump 2 101 2030 0.0 0.0 +it 01_solar 2 102 2030 1.0 0.0 +it 02_wind_on 2 102 2030 1.0 0.0 +it 03_wind_off 2 102 2030 1.0 0.0 +it 04_res 2 102 2030 1.0 0.0 +it 05_nuclear 2 102 2030 1.0 0.0 +it 06_coal 2 102 2030 1.0 0.0 +it 07_gas 2 102 2030 0.0 0.0 +it 08_non-res 2 102 2030 0.0 0.0 +it 09_hydro_pump 2 102 2030 0.0 0.0 +it 01_solar 2 103 2030 1.0 0.0 +it 02_wind_on 2 103 2030 1.0 0.0 +it 03_wind_off 2 103 2030 1.0 0.0 +it 04_res 2 103 2030 1.0 0.0 +it 05_nuclear 2 103 2030 1.0 0.0 +it 06_coal 2 103 2030 1.0 0.0 +it 07_gas 2 103 2030 0.0 0.0 +it 08_non-res 2 103 2030 0.0 0.0 +it 09_hydro_pump 2 103 2030 0.0 0.0 +it 01_solar 2 104 2030 1.0 0.0 +it 02_wind_on 2 104 2030 1.0 0.0 +it 03_wind_off 2 104 2030 1.0 0.0 +it 04_res 2 104 2030 1.0 0.0 +it 05_nuclear 2 104 2030 1.0 0.0 +it 06_coal 2 104 2030 1.0 0.0 +it 07_gas 2 104 2030 0.0 0.0 +it 08_non-res 2 104 2030 0.0 0.0 +it 09_hydro_pump 2 104 2030 0.0 0.0 +it 01_solar 2 105 2030 1.0 0.0 +it 02_wind_on 2 105 2030 1.0 0.0 +it 03_wind_off 2 105 2030 1.0 0.0 +it 04_res 2 105 2030 1.0 0.0 +it 05_nuclear 2 105 2030 1.0 0.0 +it 06_coal 2 105 2030 1.0 0.0 +it 07_gas 2 105 2030 0.0 0.0 +it 08_non-res 2 105 2030 0.0 0.0 +it 09_hydro_pump 2 105 2030 0.0 0.0 +it 01_solar 2 106 2030 1.0 0.0 +it 02_wind_on 2 106 2030 1.0 0.0 +it 03_wind_off 2 106 2030 1.0 0.0 +it 04_res 2 106 2030 1.0 0.0 +it 05_nuclear 2 106 2030 1.0 0.0 +it 06_coal 2 106 2030 1.0 0.0 +it 07_gas 2 106 2030 0.0 0.0 +it 08_non-res 2 106 2030 0.0 0.0 +it 09_hydro_pump 2 106 2030 0.0 0.0 +it 01_solar 2 107 2030 1.0 0.0 +it 02_wind_on 2 107 2030 1.0 0.0 +it 03_wind_off 2 107 2030 1.0 0.0 +it 04_res 2 107 2030 1.0 0.0 +it 05_nuclear 2 107 2030 1.0 0.0 +it 06_coal 2 107 2030 1.0 0.0 +it 07_gas 2 107 2030 0.0 0.0 +it 08_non-res 2 107 2030 0.0 0.0 +it 09_hydro_pump 2 107 2030 0.0 0.0 +it 01_solar 2 108 2030 1.0 0.0 +it 02_wind_on 2 108 2030 1.0 0.0 +it 03_wind_off 2 108 2030 1.0 0.0 +it 04_res 2 108 2030 1.0 0.0 +it 05_nuclear 2 108 2030 1.0 0.0 +it 06_coal 2 108 2030 1.0 0.0 +it 07_gas 2 108 2030 0.0 0.0 +it 08_non-res 2 108 2030 0.0 0.0 +it 09_hydro_pump 2 108 2030 0.0 0.0 +it 01_solar 2 109 2030 1.0 0.0 +it 02_wind_on 2 109 2030 1.0 0.0 +it 03_wind_off 2 109 2030 1.0 0.0 +it 04_res 2 109 2030 1.0 0.0 +it 05_nuclear 2 109 2030 1.0 0.0 +it 06_coal 2 109 2030 1.0 0.0 +it 07_gas 2 109 2030 0.0 0.0 +it 08_non-res 2 109 2030 0.0 0.0 +it 09_hydro_pump 2 109 2030 0.0 0.0 +it 01_solar 2 110 2030 1.0 0.0 +it 02_wind_on 2 110 2030 1.0 0.0 +it 03_wind_off 2 110 2030 1.0 0.0 +it 04_res 2 110 2030 1.0 0.0 +it 05_nuclear 2 110 2030 1.0 0.0 +it 06_coal 2 110 2030 1.0 0.0 +it 07_gas 2 110 2030 0.0 0.0 +it 08_non-res 2 110 2030 0.0 0.0 +it 09_hydro_pump 2 110 2030 0.0 0.0 +it 01_solar 2 111 2030 1.0 0.0 +it 02_wind_on 2 111 2030 1.0 0.0 +it 03_wind_off 2 111 2030 1.0 0.0 +it 04_res 2 111 2030 1.0 0.0 +it 05_nuclear 2 111 2030 1.0 0.0 +it 06_coal 2 111 2030 1.0 0.0 +it 07_gas 2 111 2030 0.0 0.0 +it 08_non-res 2 111 2030 0.0 0.0 +it 09_hydro_pump 2 111 2030 0.0 0.0 +it 01_solar 2 112 2030 1.0 0.0 +it 02_wind_on 2 112 2030 1.0 0.0 +it 03_wind_off 2 112 2030 1.0 0.0 +it 04_res 2 112 2030 1.0 0.0 +it 05_nuclear 2 112 2030 1.0 0.0 +it 06_coal 2 112 2030 1.0 0.0 +it 07_gas 2 112 2030 0.0 0.0 +it 08_non-res 2 112 2030 0.0 0.0 +it 09_hydro_pump 2 112 2030 0.0 0.0 +it 01_solar 2 113 2030 1.0 0.0 +it 02_wind_on 2 113 2030 1.0 0.0 +it 03_wind_off 2 113 2030 1.0 0.0 +it 04_res 2 113 2030 1.0 0.0 +it 05_nuclear 2 113 2030 1.0 0.0 +it 06_coal 2 113 2030 1.0 0.0 +it 07_gas 2 113 2030 0.0 0.0 +it 08_non-res 2 113 2030 0.0 0.0 +it 09_hydro_pump 2 113 2030 0.0 0.0 +it 01_solar 2 114 2030 1.0 0.0 +it 02_wind_on 2 114 2030 1.0 0.0 +it 03_wind_off 2 114 2030 1.0 0.0 +it 04_res 2 114 2030 1.0 0.0 +it 05_nuclear 2 114 2030 1.0 0.0 +it 06_coal 2 114 2030 1.0 0.0 +it 07_gas 2 114 2030 0.0 0.0 +it 08_non-res 2 114 2030 0.0 0.0 +it 09_hydro_pump 2 114 2030 0.0 0.0 +it 01_solar 2 115 2030 1.0 0.0 +it 02_wind_on 2 115 2030 1.0 0.0 +it 03_wind_off 2 115 2030 1.0 0.0 +it 04_res 2 115 2030 1.0 0.0 +it 05_nuclear 2 115 2030 1.0 0.0 +it 06_coal 2 115 2030 1.0 0.0 +it 07_gas 2 115 2030 0.0 0.0 +it 08_non-res 2 115 2030 0.0 0.0 +it 09_hydro_pump 2 115 2030 0.0 0.0 +it 01_solar 2 116 2030 1.0 0.0 +it 02_wind_on 2 116 2030 1.0 0.0 +it 03_wind_off 2 116 2030 1.0 0.0 +it 04_res 2 116 2030 1.0 0.0 +it 05_nuclear 2 116 2030 1.0 0.0 +it 06_coal 2 116 2030 1.0 0.0 +it 07_gas 2 116 2030 0.0 0.0 +it 08_non-res 2 116 2030 0.0 0.0 +it 09_hydro_pump 2 116 2030 0.0 0.0 +it 01_solar 2 117 2030 1.0 0.0 +it 02_wind_on 2 117 2030 1.0 0.0 +it 03_wind_off 2 117 2030 1.0 0.0 +it 04_res 2 117 2030 1.0 0.0 +it 05_nuclear 2 117 2030 1.0 0.0 +it 06_coal 2 117 2030 1.0 0.0 +it 07_gas 2 117 2030 0.0 0.0 +it 08_non-res 2 117 2030 0.0 0.0 +it 09_hydro_pump 2 117 2030 0.0 0.0 +it 01_solar 2 118 2030 1.0 0.0 +it 02_wind_on 2 118 2030 1.0 0.0 +it 03_wind_off 2 118 2030 1.0 0.0 +it 04_res 2 118 2030 1.0 0.0 +it 05_nuclear 2 118 2030 1.0 0.0 +it 06_coal 2 118 2030 1.0 0.0 +it 07_gas 2 118 2030 0.0 0.0 +it 08_non-res 2 118 2030 0.0 0.0 +it 09_hydro_pump 2 118 2030 0.0 0.0 +it 01_solar 2 119 2030 1.0 0.0 +it 02_wind_on 2 119 2030 1.0 0.0 +it 03_wind_off 2 119 2030 1.0 0.0 +it 04_res 2 119 2030 1.0 0.0 +it 05_nuclear 2 119 2030 1.0 0.0 +it 06_coal 2 119 2030 1.0 0.0 +it 07_gas 2 119 2030 0.0 0.0 +it 08_non-res 2 119 2030 0.0 0.0 +it 09_hydro_pump 2 119 2030 0.0 0.0 +it 01_solar 2 120 2030 1.0 0.0 +it 02_wind_on 2 120 2030 1.0 0.0 +it 03_wind_off 2 120 2030 1.0 0.0 +it 04_res 2 120 2030 1.0 0.0 +it 05_nuclear 2 120 2030 1.0 0.0 +it 06_coal 2 120 2030 1.0 0.0 +it 07_gas 2 120 2030 0.0 0.0 +it 08_non-res 2 120 2030 0.0 0.0 +it 09_hydro_pump 2 120 2030 0.0 0.0 +it 01_solar 2 121 2030 1.0 0.0 +it 02_wind_on 2 121 2030 1.0 0.0 +it 03_wind_off 2 121 2030 1.0 0.0 +it 04_res 2 121 2030 1.0 0.0 +it 05_nuclear 2 121 2030 1.0 0.0 +it 06_coal 2 121 2030 1.0 0.0 +it 07_gas 2 121 2030 0.0 0.0 +it 08_non-res 2 121 2030 0.0 0.0 +it 09_hydro_pump 2 121 2030 0.0 0.0 +it 01_solar 2 122 2030 1.0 0.0 +it 02_wind_on 2 122 2030 1.0 0.0 +it 03_wind_off 2 122 2030 1.0 0.0 +it 04_res 2 122 2030 1.0 0.0 +it 05_nuclear 2 122 2030 1.0 0.0 +it 06_coal 2 122 2030 1.0 0.0 +it 07_gas 2 122 2030 1.0 0.0 +it 08_non-res 2 122 2030 0.0 0.0 +it 09_hydro_pump 2 122 2030 0.0 0.0 +it 01_solar 2 123 2030 1.0 0.0 +it 02_wind_on 2 123 2030 1.0 0.0 +it 03_wind_off 2 123 2030 1.0 0.0 +it 04_res 2 123 2030 1.0 0.0 +it 05_nuclear 2 123 2030 1.0 0.0 +it 06_coal 2 123 2030 1.0 0.0 +it 07_gas 2 123 2030 1.0 0.0 +it 08_non-res 2 123 2030 0.0 0.0 +it 09_hydro_pump 2 123 2030 0.0 0.0 +it 01_solar 2 124 2030 1.0 0.0 +it 02_wind_on 2 124 2030 1.0 0.0 +it 03_wind_off 2 124 2030 1.0 0.0 +it 04_res 2 124 2030 1.0 0.0 +it 05_nuclear 2 124 2030 1.0 0.0 +it 06_coal 2 124 2030 1.0 0.0 +it 07_gas 2 124 2030 1.0 0.0 +it 08_non-res 2 124 2030 0.0 0.0 +it 09_hydro_pump 2 124 2030 0.0 0.0 +it 01_solar 2 125 2030 1.0 0.0 +it 02_wind_on 2 125 2030 1.0 0.0 +it 03_wind_off 2 125 2030 1.0 0.0 +it 04_res 2 125 2030 1.0 0.0 +it 05_nuclear 2 125 2030 1.0 0.0 +it 06_coal 2 125 2030 1.0 0.0 +it 07_gas 2 125 2030 1.0 0.0 +it 08_non-res 2 125 2030 0.0 0.0 +it 09_hydro_pump 2 125 2030 0.0 0.0 +it 01_solar 2 126 2030 1.0 0.0 +it 02_wind_on 2 126 2030 1.0 0.0 +it 03_wind_off 2 126 2030 1.0 0.0 +it 04_res 2 126 2030 1.0 0.0 +it 05_nuclear 2 126 2030 1.0 0.0 +it 06_coal 2 126 2030 1.0 0.0 +it 07_gas 2 126 2030 1.0 0.0 +it 08_non-res 2 126 2030 0.0 0.0 +it 09_hydro_pump 2 126 2030 0.0 0.0 +it 01_solar 2 127 2030 1.0 0.0 +it 02_wind_on 2 127 2030 1.0 0.0 +it 03_wind_off 2 127 2030 1.0 0.0 +it 04_res 2 127 2030 1.0 0.0 +it 05_nuclear 2 127 2030 1.0 0.0 +it 06_coal 2 127 2030 1.0 0.0 +it 07_gas 2 127 2030 1.0 0.0 +it 08_non-res 2 127 2030 0.0 0.0 +it 09_hydro_pump 2 127 2030 0.0 0.0 +it 01_solar 2 128 2030 1.0 0.0 +it 02_wind_on 2 128 2030 1.0 0.0 +it 03_wind_off 2 128 2030 1.0 0.0 +it 04_res 2 128 2030 1.0 0.0 +it 05_nuclear 2 128 2030 1.0 0.0 +it 06_coal 2 128 2030 1.0 0.0 +it 07_gas 2 128 2030 1.0 0.0 +it 08_non-res 2 128 2030 0.0 0.0 +it 09_hydro_pump 2 128 2030 0.0 0.0 +it 01_solar 2 129 2030 1.0 0.0 +it 02_wind_on 2 129 2030 1.0 0.0 +it 03_wind_off 2 129 2030 1.0 0.0 +it 04_res 2 129 2030 1.0 0.0 +it 05_nuclear 2 129 2030 1.0 0.0 +it 06_coal 2 129 2030 1.0 0.0 +it 07_gas 2 129 2030 1.0 0.0 +it 08_non-res 2 129 2030 0.0 0.0 +it 09_hydro_pump 2 129 2030 0.0 0.0 +it 01_solar 2 130 2030 1.0 0.0 +it 02_wind_on 2 130 2030 1.0 0.0 +it 03_wind_off 2 130 2030 1.0 0.0 +it 04_res 2 130 2030 1.0 0.0 +it 05_nuclear 2 130 2030 1.0 0.0 +it 06_coal 2 130 2030 1.0 0.0 +it 07_gas 2 130 2030 1.0 0.0 +it 08_non-res 2 130 2030 0.0 0.0 +it 09_hydro_pump 2 130 2030 0.0 0.0 +it 01_solar 2 131 2030 1.0 0.0 +it 02_wind_on 2 131 2030 1.0 0.0 +it 03_wind_off 2 131 2030 1.0 0.0 +it 04_res 2 131 2030 1.0 0.0 +it 05_nuclear 2 131 2030 1.0 0.0 +it 06_coal 2 131 2030 1.0 0.0 +it 07_gas 2 131 2030 1.0 0.0 +it 08_non-res 2 131 2030 0.0 0.0 +it 09_hydro_pump 2 131 2030 0.0 0.0 +it 01_solar 2 132 2030 1.0 0.0 +it 02_wind_on 2 132 2030 1.0 0.0 +it 03_wind_off 2 132 2030 1.0 0.0 +it 04_res 2 132 2030 1.0 0.0 +it 05_nuclear 2 132 2030 1.0 0.0 +it 06_coal 2 132 2030 1.0 0.0 +it 07_gas 2 132 2030 1.0 0.0 +it 08_non-res 2 132 2030 0.0 0.0 +it 09_hydro_pump 2 132 2030 0.0 0.0 +it 01_solar 2 133 2030 1.0 0.0 +it 02_wind_on 2 133 2030 1.0 0.0 +it 03_wind_off 2 133 2030 1.0 0.0 +it 04_res 2 133 2030 1.0 0.0 +it 05_nuclear 2 133 2030 1.0 0.0 +it 06_coal 2 133 2030 1.0 0.0 +it 07_gas 2 133 2030 1.0 0.0 +it 08_non-res 2 133 2030 0.0 0.0 +it 09_hydro_pump 2 133 2030 0.0 0.0 +it 01_solar 2 134 2030 1.0 0.0 +it 02_wind_on 2 134 2030 1.0 0.0 +it 03_wind_off 2 134 2030 1.0 0.0 +it 04_res 2 134 2030 1.0 0.0 +it 05_nuclear 2 134 2030 1.0 0.0 +it 06_coal 2 134 2030 1.0 0.0 +it 07_gas 2 134 2030 1.0 0.0 +it 08_non-res 2 134 2030 0.0 0.0 +it 09_hydro_pump 2 134 2030 0.0 0.0 +it 01_solar 2 135 2030 1.0 0.0 +it 02_wind_on 2 135 2030 1.0 0.0 +it 03_wind_off 2 135 2030 1.0 0.0 +it 04_res 2 135 2030 1.0 0.0 +it 05_nuclear 2 135 2030 1.0 0.0 +it 06_coal 2 135 2030 1.0 0.0 +it 07_gas 2 135 2030 1.0 0.0 +it 08_non-res 2 135 2030 0.0 0.0 +it 09_hydro_pump 2 135 2030 0.0 0.0 +it 01_solar 2 136 2030 1.0 0.0 +it 02_wind_on 2 136 2030 1.0 0.0 +it 03_wind_off 2 136 2030 1.0 0.0 +it 04_res 2 136 2030 1.0 0.0 +it 05_nuclear 2 136 2030 1.0 0.0 +it 06_coal 2 136 2030 1.0 0.0 +it 07_gas 2 136 2030 1.0 0.0 +it 08_non-res 2 136 2030 0.0 0.0 +it 09_hydro_pump 2 136 2030 0.0 0.0 +it 01_solar 2 137 2030 1.0 0.0 +it 02_wind_on 2 137 2030 1.0 0.0 +it 03_wind_off 2 137 2030 1.0 0.0 +it 04_res 2 137 2030 1.0 0.0 +it 05_nuclear 2 137 2030 1.0 0.0 +it 06_coal 2 137 2030 1.0 0.0 +it 07_gas 2 137 2030 1.0 0.0 +it 08_non-res 2 137 2030 0.0 0.0 +it 09_hydro_pump 2 137 2030 0.0 0.0 +it 01_solar 2 138 2030 1.0 0.0 +it 02_wind_on 2 138 2030 1.0 0.0 +it 03_wind_off 2 138 2030 1.0 0.0 +it 04_res 2 138 2030 1.0 0.0 +it 05_nuclear 2 138 2030 1.0 0.0 +it 06_coal 2 138 2030 1.0 0.0 +it 07_gas 2 138 2030 1.0 0.0 +it 08_non-res 2 138 2030 0.0 0.0 +it 09_hydro_pump 2 138 2030 0.0 0.0 +it 01_solar 2 139 2030 1.0 0.0 +it 02_wind_on 2 139 2030 1.0 0.0 +it 03_wind_off 2 139 2030 1.0 0.0 +it 04_res 2 139 2030 1.0 0.0 +it 05_nuclear 2 139 2030 1.0 0.0 +it 06_coal 2 139 2030 1.0 0.0 +it 07_gas 2 139 2030 1.0 0.0 +it 08_non-res 2 139 2030 0.0 0.0 +it 09_hydro_pump 2 139 2030 0.0 0.0 +it 01_solar 2 140 2030 1.0 0.0 +it 02_wind_on 2 140 2030 1.0 0.0 +it 03_wind_off 2 140 2030 1.0 0.0 +it 04_res 2 140 2030 1.0 0.0 +it 05_nuclear 2 140 2030 1.0 0.0 +it 06_coal 2 140 2030 1.0 0.0 +it 07_gas 2 140 2030 1.0 0.0 +it 08_non-res 2 140 2030 0.0 0.0 +it 09_hydro_pump 2 140 2030 0.0 0.0 +it 01_solar 2 141 2030 1.0 0.0 +it 02_wind_on 2 141 2030 1.0 0.0 +it 03_wind_off 2 141 2030 1.0 0.0 +it 04_res 2 141 2030 1.0 0.0 +it 05_nuclear 2 141 2030 1.0 0.0 +it 06_coal 2 141 2030 1.0 0.0 +it 07_gas 2 141 2030 1.0 0.0 +it 08_non-res 2 141 2030 0.0 0.0 +it 09_hydro_pump 2 141 2030 0.0 0.0 +it 01_solar 2 142 2030 1.0 0.0 +it 02_wind_on 2 142 2030 1.0 0.0 +it 03_wind_off 2 142 2030 1.0 0.0 +it 04_res 2 142 2030 1.0 0.0 +it 05_nuclear 2 142 2030 1.0 0.0 +it 06_coal 2 142 2030 1.0 0.0 +it 07_gas 2 142 2030 1.0 0.0 +it 08_non-res 2 142 2030 1.0 0.0 +it 09_hydro_pump 2 142 2030 0.0 0.0 +it 01_solar 2 143 2030 1.0 0.0 +it 02_wind_on 2 143 2030 1.0 0.0 +it 03_wind_off 2 143 2030 1.0 0.0 +it 04_res 2 143 2030 1.0 0.0 +it 05_nuclear 2 143 2030 1.0 0.0 +it 06_coal 2 143 2030 1.0 0.0 +it 07_gas 2 143 2030 1.0 0.0 +it 08_non-res 2 143 2030 1.0 0.0 +it 09_hydro_pump 2 143 2030 0.0 0.0 +it 01_solar 2 144 2030 1.0 0.0 +it 02_wind_on 2 144 2030 1.0 0.0 +it 03_wind_off 2 144 2030 1.0 0.0 +it 04_res 2 144 2030 1.0 0.0 +it 05_nuclear 2 144 2030 1.0 0.0 +it 06_coal 2 144 2030 1.0 0.0 +it 07_gas 2 144 2030 1.0 0.0 +it 08_non-res 2 144 2030 1.0 0.0 +it 09_hydro_pump 2 144 2030 0.0 0.0 +it 01_solar 2 145 2030 1.0 0.0 +it 02_wind_on 2 145 2030 1.0 0.0 +it 03_wind_off 2 145 2030 1.0 0.0 +it 04_res 2 145 2030 1.0 0.0 +it 05_nuclear 2 145 2030 1.0 0.0 +it 06_coal 2 145 2030 1.0 0.0 +it 07_gas 2 145 2030 1.0 0.0 +it 08_non-res 2 145 2030 1.0 0.0 +it 09_hydro_pump 2 145 2030 0.0 0.0 +it 01_solar 2 146 2030 1.0 0.0 +it 02_wind_on 2 146 2030 1.0 0.0 +it 03_wind_off 2 146 2030 1.0 0.0 +it 04_res 2 146 2030 1.0 0.0 +it 05_nuclear 2 146 2030 1.0 0.0 +it 06_coal 2 146 2030 1.0 0.0 +it 07_gas 2 146 2030 1.0 0.0 +it 08_non-res 2 146 2030 1.0 0.0 +it 09_hydro_pump 2 146 2030 0.0 0.0 +it 01_solar 2 147 2030 1.0 0.0 +it 02_wind_on 2 147 2030 1.0 0.0 +it 03_wind_off 2 147 2030 1.0 0.0 +it 04_res 2 147 2030 1.0 0.0 +it 05_nuclear 2 147 2030 1.0 0.0 +it 06_coal 2 147 2030 1.0 0.0 +it 07_gas 2 147 2030 1.0 0.0 +it 08_non-res 2 147 2030 1.0 0.0 +it 09_hydro_pump 2 147 2030 0.0 0.0 +it 01_solar 2 148 2030 1.0 0.0 +it 02_wind_on 2 148 2030 1.0 0.0 +it 03_wind_off 2 148 2030 1.0 0.0 +it 04_res 2 148 2030 1.0 0.0 +it 05_nuclear 2 148 2030 1.0 0.0 +it 06_coal 2 148 2030 1.0 0.0 +it 07_gas 2 148 2030 1.0 0.0 +it 08_non-res 2 148 2030 1.0 0.0 +it 09_hydro_pump 2 148 2030 0.0 0.0 +it 01_solar 2 149 2030 1.0 0.0 +it 02_wind_on 2 149 2030 1.0 0.0 +it 03_wind_off 2 149 2030 1.0 0.0 +it 04_res 2 149 2030 1.0 0.0 +it 05_nuclear 2 149 2030 1.0 0.0 +it 06_coal 2 149 2030 1.0 0.0 +it 07_gas 2 149 2030 1.0 0.0 +it 08_non-res 2 149 2030 1.0 0.0 +it 09_hydro_pump 2 149 2030 0.0 0.0 +it 01_solar 2 150 2030 1.0 0.0 +it 02_wind_on 2 150 2030 1.0 0.0 +it 03_wind_off 2 150 2030 1.0 0.0 +it 04_res 2 150 2030 1.0 0.0 +it 05_nuclear 2 150 2030 1.0 0.0 +it 06_coal 2 150 2030 1.0 0.0 +it 07_gas 2 150 2030 1.0 0.0 +it 08_non-res 2 150 2030 1.0 0.0 +it 09_hydro_pump 2 150 2030 0.0 0.0 +it 01_solar 2 151 2030 1.0 0.0 +it 02_wind_on 2 151 2030 1.0 0.0 +it 03_wind_off 2 151 2030 1.0 0.0 +it 04_res 2 151 2030 1.0 0.0 +it 05_nuclear 2 151 2030 1.0 0.0 +it 06_coal 2 151 2030 1.0 0.0 +it 07_gas 2 151 2030 1.0 0.0 +it 08_non-res 2 151 2030 1.0 0.0 +it 09_hydro_pump 2 151 2030 0.0 0.0 +it 01_solar 2 152 2030 1.0 0.0 +it 02_wind_on 2 152 2030 1.0 0.0 +it 03_wind_off 2 152 2030 1.0 0.0 +it 04_res 2 152 2030 1.0 0.0 +it 05_nuclear 2 152 2030 1.0 0.0 +it 06_coal 2 152 2030 1.0 0.0 +it 07_gas 2 152 2030 1.0 0.0 +it 08_non-res 2 152 2030 1.0 0.0 +it 09_hydro_pump 2 152 2030 0.0 0.0 +it 01_solar 2 153 2030 1.0 0.0 +it 02_wind_on 2 153 2030 1.0 0.0 +it 03_wind_off 2 153 2030 1.0 0.0 +it 04_res 2 153 2030 1.0 0.0 +it 05_nuclear 2 153 2030 1.0 0.0 +it 06_coal 2 153 2030 1.0 0.0 +it 07_gas 2 153 2030 1.0 0.0 +it 08_non-res 2 153 2030 1.0 0.0 +it 09_hydro_pump 2 153 2030 0.0 0.0 +it 01_solar 2 154 2030 1.0 0.0 +it 02_wind_on 2 154 2030 1.0 0.0 +it 03_wind_off 2 154 2030 1.0 0.0 +it 04_res 2 154 2030 1.0 0.0 +it 05_nuclear 2 154 2030 1.0 0.0 +it 06_coal 2 154 2030 1.0 0.0 +it 07_gas 2 154 2030 1.0 0.0 +it 08_non-res 2 154 2030 1.0 0.0 +it 09_hydro_pump 2 154 2030 0.0 0.0 +it 01_solar 2 155 2030 1.0 0.0 +it 02_wind_on 2 155 2030 1.0 0.0 +it 03_wind_off 2 155 2030 1.0 0.0 +it 04_res 2 155 2030 1.0 0.0 +it 05_nuclear 2 155 2030 1.0 0.0 +it 06_coal 2 155 2030 1.0 0.0 +it 07_gas 2 155 2030 1.0 0.0 +it 08_non-res 2 155 2030 1.0 0.0 +it 09_hydro_pump 2 155 2030 0.0 0.0 +it 01_solar 2 156 2030 1.0 0.0 +it 02_wind_on 2 156 2030 1.0 0.0 +it 03_wind_off 2 156 2030 1.0 0.0 +it 04_res 2 156 2030 1.0 0.0 +it 05_nuclear 2 156 2030 1.0 0.0 +it 06_coal 2 156 2030 1.0 0.0 +it 07_gas 2 156 2030 1.0 0.0 +it 08_non-res 2 156 2030 1.0 0.0 +it 09_hydro_pump 2 156 2030 0.0 0.0 +it 01_solar 2 157 2030 1.0 0.0 +it 02_wind_on 2 157 2030 1.0 0.0 +it 03_wind_off 2 157 2030 1.0 0.0 +it 04_res 2 157 2030 1.0 0.0 +it 05_nuclear 2 157 2030 1.0 0.0 +it 06_coal 2 157 2030 1.0 0.0 +it 07_gas 2 157 2030 1.0 0.0 +it 08_non-res 2 157 2030 1.0 0.0 +it 09_hydro_pump 2 157 2030 0.0 0.0 +it 01_solar 2 158 2030 1.0 0.0 +it 02_wind_on 2 158 2030 1.0 0.0 +it 03_wind_off 2 158 2030 1.0 0.0 +it 04_res 2 158 2030 1.0 0.0 +it 05_nuclear 2 158 2030 1.0 0.0 +it 06_coal 2 158 2030 1.0 0.0 +it 07_gas 2 158 2030 1.0 0.0 +it 08_non-res 2 158 2030 1.0 0.0 +it 09_hydro_pump 2 158 2030 0.0 0.0 +it 01_solar 2 159 2030 1.0 0.0 +it 02_wind_on 2 159 2030 1.0 0.0 +it 03_wind_off 2 159 2030 1.0 0.0 +it 04_res 2 159 2030 1.0 0.0 +it 05_nuclear 2 159 2030 1.0 0.0 +it 06_coal 2 159 2030 1.0 0.0 +it 07_gas 2 159 2030 1.0 0.0 +it 08_non-res 2 159 2030 1.0 0.0 +it 09_hydro_pump 2 159 2030 0.0 0.0 +it 01_solar 2 160 2030 1.0 0.0 +it 02_wind_on 2 160 2030 1.0 0.0 +it 03_wind_off 2 160 2030 1.0 0.0 +it 04_res 2 160 2030 1.0 0.0 +it 05_nuclear 2 160 2030 1.0 0.0 +it 06_coal 2 160 2030 1.0 0.0 +it 07_gas 2 160 2030 1.0 0.0 +it 08_non-res 2 160 2030 1.0 0.0 +it 09_hydro_pump 2 160 2030 0.0 0.0 +it 01_solar 2 161 2030 1.0 0.0 +it 02_wind_on 2 161 2030 1.0 0.0 +it 03_wind_off 2 161 2030 1.0 0.0 +it 04_res 2 161 2030 1.0 0.0 +it 05_nuclear 2 161 2030 1.0 0.0 +it 06_coal 2 161 2030 1.0 0.0 +it 07_gas 2 161 2030 1.0 0.0 +it 08_non-res 2 161 2030 1.0 0.0 +it 09_hydro_pump 2 161 2030 0.0 0.0 +it 01_solar 2 162 2030 1.0 0.0 +it 02_wind_on 2 162 2030 1.0 0.0 +it 03_wind_off 2 162 2030 1.0 0.0 +it 04_res 2 162 2030 1.0 0.0 +it 05_nuclear 2 162 2030 1.0 0.0 +it 06_coal 2 162 2030 1.0 0.0 +it 07_gas 2 162 2030 1.0 0.0 +it 08_non-res 2 162 2030 1.0 0.0 +it 09_hydro_pump 2 162 2030 1.0 0.0 +it 01_solar 2 163 2030 1.0 0.0 +it 02_wind_on 2 163 2030 1.0 0.0 +it 03_wind_off 2 163 2030 1.0 0.0 +it 04_res 2 163 2030 1.0 0.0 +it 05_nuclear 2 163 2030 1.0 0.0 +it 06_coal 2 163 2030 1.0 0.0 +it 07_gas 2 163 2030 1.0 0.0 +it 08_non-res 2 163 2030 1.0 0.0 +it 09_hydro_pump 2 163 2030 1.0 0.0 +it 01_solar 2 164 2030 1.0 0.0 +it 02_wind_on 2 164 2030 1.0 0.0 +it 03_wind_off 2 164 2030 1.0 0.0 +it 04_res 2 164 2030 1.0 0.0 +it 05_nuclear 2 164 2030 1.0 0.0 +it 06_coal 2 164 2030 1.0 0.0 +it 07_gas 2 164 2030 1.0 0.0 +it 08_non-res 2 164 2030 1.0 0.0 +it 09_hydro_pump 2 164 2030 1.0 0.0 +it 01_solar 2 165 2030 1.0 0.0 +it 02_wind_on 2 165 2030 1.0 0.0 +it 03_wind_off 2 165 2030 1.0 0.0 +it 04_res 2 165 2030 1.0 0.0 +it 05_nuclear 2 165 2030 1.0 0.0 +it 06_coal 2 165 2030 1.0 0.0 +it 07_gas 2 165 2030 1.0 0.0 +it 08_non-res 2 165 2030 1.0 0.0 +it 09_hydro_pump 2 165 2030 1.0 0.0 +it 01_solar 2 166 2030 1.0 0.0 +it 02_wind_on 2 166 2030 1.0 0.0 +it 03_wind_off 2 166 2030 1.0 0.0 +it 04_res 2 166 2030 1.0 0.0 +it 05_nuclear 2 166 2030 1.0 0.0 +it 06_coal 2 166 2030 1.0 0.0 +it 07_gas 2 166 2030 1.0 0.0 +it 08_non-res 2 166 2030 1.0 0.0 +it 09_hydro_pump 2 166 2030 1.0 0.0 +it 01_solar 2 167 2030 1.0 0.0 +it 02_wind_on 2 167 2030 1.0 0.0 +it 03_wind_off 2 167 2030 1.0 0.0 +it 04_res 2 167 2030 1.0 0.0 +it 05_nuclear 2 167 2030 1.0 0.0 +it 06_coal 2 167 2030 1.0 0.0 +it 07_gas 2 167 2030 1.0 0.0 +it 08_non-res 2 167 2030 1.0 0.0 +it 09_hydro_pump 2 167 2030 1.0 0.0 +it 01_solar 2 168 2030 1.0 0.0 +it 02_wind_on 2 168 2030 1.0 0.0 +it 03_wind_off 2 168 2030 1.0 0.0 +it 04_res 2 168 2030 1.0 0.0 +it 05_nuclear 2 168 2030 1.0 0.0 +it 06_coal 2 168 2030 1.0 0.0 +it 07_gas 2 168 2030 1.0 0.0 +it 08_non-res 2 168 2030 1.0 0.0 +it 09_hydro_pump 2 168 2030 1.0 0.0 +it 01_solar 2 169 2030 0.0 0.0 +it 02_wind_on 2 169 2030 0.0 0.0 +it 03_wind_off 2 169 2030 0.0 0.0 +it 04_res 2 169 2030 0.0 0.0 +it 05_nuclear 2 169 2030 0.0 0.0 +it 06_coal 2 169 2030 0.0 0.0 +it 07_gas 2 169 2030 0.0 0.0 +it 08_non-res 2 169 2030 0.0 0.0 +it 09_hydro_pump 2 169 2030 0.0 0.0 +it 01_solar 2 170 2030 1.0 0.0 +it 02_wind_on 2 170 2030 0.0 0.0 +it 03_wind_off 2 170 2030 0.0 0.0 +it 04_res 2 170 2030 0.0 0.0 +it 05_nuclear 2 170 2030 0.0 0.0 +it 06_coal 2 170 2030 0.0 0.0 +it 07_gas 2 170 2030 0.0 0.0 +it 08_non-res 2 170 2030 0.0 0.0 +it 09_hydro_pump 2 170 2030 0.0 0.0 +it 01_solar 2 171 2030 1.0 0.0 +it 02_wind_on 2 171 2030 0.0 0.0 +it 03_wind_off 2 171 2030 0.0 0.0 +it 04_res 2 171 2030 0.0 0.0 +it 05_nuclear 2 171 2030 0.0 0.0 +it 06_coal 2 171 2030 0.0 0.0 +it 07_gas 2 171 2030 0.0 0.0 +it 08_non-res 2 171 2030 0.0 0.0 +it 09_hydro_pump 2 171 2030 0.0 0.0 +it 01_solar 2 172 2030 1.0 0.0 +it 02_wind_on 2 172 2030 0.0 0.0 +it 03_wind_off 2 172 2030 0.0 0.0 +it 04_res 2 172 2030 0.0 0.0 +it 05_nuclear 2 172 2030 0.0 0.0 +it 06_coal 2 172 2030 0.0 0.0 +it 07_gas 2 172 2030 0.0 0.0 +it 08_non-res 2 172 2030 0.0 0.0 +it 09_hydro_pump 2 172 2030 0.0 0.0 +it 01_solar 2 173 2030 1.0 0.0 +it 02_wind_on 2 173 2030 0.0 0.0 +it 03_wind_off 2 173 2030 0.0 0.0 +it 04_res 2 173 2030 0.0 0.0 +it 05_nuclear 2 173 2030 0.0 0.0 +it 06_coal 2 173 2030 0.0 0.0 +it 07_gas 2 173 2030 0.0 0.0 +it 08_non-res 2 173 2030 0.0 0.0 +it 09_hydro_pump 2 173 2030 0.0 0.0 +it 01_solar 2 174 2030 1.0 0.0 +it 02_wind_on 2 174 2030 0.0 0.0 +it 03_wind_off 2 174 2030 0.0 0.0 +it 04_res 2 174 2030 0.0 0.0 +it 05_nuclear 2 174 2030 0.0 0.0 +it 06_coal 2 174 2030 0.0 0.0 +it 07_gas 2 174 2030 0.0 0.0 +it 08_non-res 2 174 2030 0.0 0.0 +it 09_hydro_pump 2 174 2030 0.0 0.0 +it 01_solar 2 175 2030 1.0 0.0 +it 02_wind_on 2 175 2030 0.0 0.0 +it 03_wind_off 2 175 2030 0.0 0.0 +it 04_res 2 175 2030 0.0 0.0 +it 05_nuclear 2 175 2030 0.0 0.0 +it 06_coal 2 175 2030 0.0 0.0 +it 07_gas 2 175 2030 0.0 0.0 +it 08_non-res 2 175 2030 0.0 0.0 +it 09_hydro_pump 2 175 2030 0.0 0.0 +it 01_solar 2 176 2030 1.0 0.0 +it 02_wind_on 2 176 2030 0.0 0.0 +it 03_wind_off 2 176 2030 0.0 0.0 +it 04_res 2 176 2030 0.0 0.0 +it 05_nuclear 2 176 2030 0.0 0.0 +it 06_coal 2 176 2030 0.0 0.0 +it 07_gas 2 176 2030 0.0 0.0 +it 08_non-res 2 176 2030 0.0 0.0 +it 09_hydro_pump 2 176 2030 0.0 0.0 +it 01_solar 2 177 2030 1.0 0.0 +it 02_wind_on 2 177 2030 0.0 0.0 +it 03_wind_off 2 177 2030 0.0 0.0 +it 04_res 2 177 2030 0.0 0.0 +it 05_nuclear 2 177 2030 0.0 0.0 +it 06_coal 2 177 2030 0.0 0.0 +it 07_gas 2 177 2030 0.0 0.0 +it 08_non-res 2 177 2030 0.0 0.0 +it 09_hydro_pump 2 177 2030 0.0 0.0 +it 01_solar 2 178 2030 1.0 0.0 +it 02_wind_on 2 178 2030 0.0 0.0 +it 03_wind_off 2 178 2030 0.0 0.0 +it 04_res 2 178 2030 0.0 0.0 +it 05_nuclear 2 178 2030 0.0 0.0 +it 06_coal 2 178 2030 0.0 0.0 +it 07_gas 2 178 2030 0.0 0.0 +it 08_non-res 2 178 2030 0.0 0.0 +it 09_hydro_pump 2 178 2030 0.0 0.0 +it 01_solar 2 179 2030 1.0 0.0 +it 02_wind_on 2 179 2030 0.0 0.0 +it 03_wind_off 2 179 2030 0.0 0.0 +it 04_res 2 179 2030 0.0 0.0 +it 05_nuclear 2 179 2030 0.0 0.0 +it 06_coal 2 179 2030 0.0 0.0 +it 07_gas 2 179 2030 0.0 0.0 +it 08_non-res 2 179 2030 0.0 0.0 +it 09_hydro_pump 2 179 2030 0.0 0.0 +it 01_solar 2 180 2030 1.0 0.0 +it 02_wind_on 2 180 2030 0.0 0.0 +it 03_wind_off 2 180 2030 0.0 0.0 +it 04_res 2 180 2030 0.0 0.0 +it 05_nuclear 2 180 2030 0.0 0.0 +it 06_coal 2 180 2030 0.0 0.0 +it 07_gas 2 180 2030 0.0 0.0 +it 08_non-res 2 180 2030 0.0 0.0 +it 09_hydro_pump 2 180 2030 0.0 0.0 +it 01_solar 2 181 2030 1.0 0.0 +it 02_wind_on 2 181 2030 0.0 0.0 +it 03_wind_off 2 181 2030 0.0 0.0 +it 04_res 2 181 2030 0.0 0.0 +it 05_nuclear 2 181 2030 0.0 0.0 +it 06_coal 2 181 2030 0.0 0.0 +it 07_gas 2 181 2030 0.0 0.0 +it 08_non-res 2 181 2030 0.0 0.0 +it 09_hydro_pump 2 181 2030 0.0 0.0 +it 01_solar 2 182 2030 1.0 0.0 +it 02_wind_on 2 182 2030 0.0 0.0 +it 03_wind_off 2 182 2030 0.0 0.0 +it 04_res 2 182 2030 0.0 0.0 +it 05_nuclear 2 182 2030 0.0 0.0 +it 06_coal 2 182 2030 0.0 0.0 +it 07_gas 2 182 2030 0.0 0.0 +it 08_non-res 2 182 2030 0.0 0.0 +it 09_hydro_pump 2 182 2030 0.0 0.0 +it 01_solar 2 183 2030 1.0 0.0 +it 02_wind_on 2 183 2030 0.0 0.0 +it 03_wind_off 2 183 2030 0.0 0.0 +it 04_res 2 183 2030 0.0 0.0 +it 05_nuclear 2 183 2030 0.0 0.0 +it 06_coal 2 183 2030 0.0 0.0 +it 07_gas 2 183 2030 0.0 0.0 +it 08_non-res 2 183 2030 0.0 0.0 +it 09_hydro_pump 2 183 2030 0.0 0.0 +it 01_solar 2 184 2030 1.0 0.0 +it 02_wind_on 2 184 2030 0.0 0.0 +it 03_wind_off 2 184 2030 0.0 0.0 +it 04_res 2 184 2030 0.0 0.0 +it 05_nuclear 2 184 2030 0.0 0.0 +it 06_coal 2 184 2030 0.0 0.0 +it 07_gas 2 184 2030 0.0 0.0 +it 08_non-res 2 184 2030 0.0 0.0 +it 09_hydro_pump 2 184 2030 0.0 0.0 +it 01_solar 2 185 2030 1.0 0.0 +it 02_wind_on 2 185 2030 0.0 0.0 +it 03_wind_off 2 185 2030 0.0 0.0 +it 04_res 2 185 2030 0.0 0.0 +it 05_nuclear 2 185 2030 0.0 0.0 +it 06_coal 2 185 2030 0.0 0.0 +it 07_gas 2 185 2030 0.0 0.0 +it 08_non-res 2 185 2030 0.0 0.0 +it 09_hydro_pump 2 185 2030 0.0 0.0 +it 01_solar 2 186 2030 1.0 0.0 +it 02_wind_on 2 186 2030 0.0 0.0 +it 03_wind_off 2 186 2030 0.0 0.0 +it 04_res 2 186 2030 0.0 0.0 +it 05_nuclear 2 186 2030 0.0 0.0 +it 06_coal 2 186 2030 0.0 0.0 +it 07_gas 2 186 2030 0.0 0.0 +it 08_non-res 2 186 2030 0.0 0.0 +it 09_hydro_pump 2 186 2030 0.0 0.0 +it 01_solar 2 187 2030 1.0 0.0 +it 02_wind_on 2 187 2030 0.0 0.0 +it 03_wind_off 2 187 2030 0.0 0.0 +it 04_res 2 187 2030 0.0 0.0 +it 05_nuclear 2 187 2030 0.0 0.0 +it 06_coal 2 187 2030 0.0 0.0 +it 07_gas 2 187 2030 0.0 0.0 +it 08_non-res 2 187 2030 0.0 0.0 +it 09_hydro_pump 2 187 2030 0.0 0.0 +it 01_solar 2 188 2030 1.0 0.0 +it 02_wind_on 2 188 2030 0.0 0.0 +it 03_wind_off 2 188 2030 0.0 0.0 +it 04_res 2 188 2030 0.0 0.0 +it 05_nuclear 2 188 2030 0.0 0.0 +it 06_coal 2 188 2030 0.0 0.0 +it 07_gas 2 188 2030 0.0 0.0 +it 08_non-res 2 188 2030 0.0 0.0 +it 09_hydro_pump 2 188 2030 0.0 0.0 +it 01_solar 2 189 2030 1.0 0.0 +it 02_wind_on 2 189 2030 0.0 0.0 +it 03_wind_off 2 189 2030 0.0 0.0 +it 04_res 2 189 2030 0.0 0.0 +it 05_nuclear 2 189 2030 0.0 0.0 +it 06_coal 2 189 2030 0.0 0.0 +it 07_gas 2 189 2030 0.0 0.0 +it 08_non-res 2 189 2030 0.0 0.0 +it 09_hydro_pump 2 189 2030 0.0 0.0 +it 01_solar 2 190 2030 1.0 0.0 +it 02_wind_on 2 190 2030 1.0 0.0 +it 03_wind_off 2 190 2030 0.0 0.0 +it 04_res 2 190 2030 0.0 0.0 +it 05_nuclear 2 190 2030 0.0 0.0 +it 06_coal 2 190 2030 0.0 0.0 +it 07_gas 2 190 2030 0.0 0.0 +it 08_non-res 2 190 2030 0.0 0.0 +it 09_hydro_pump 2 190 2030 0.0 0.0 +it 01_solar 2 191 2030 1.0 0.0 +it 02_wind_on 2 191 2030 1.0 0.0 +it 03_wind_off 2 191 2030 0.0 0.0 +it 04_res 2 191 2030 0.0 0.0 +it 05_nuclear 2 191 2030 0.0 0.0 +it 06_coal 2 191 2030 0.0 0.0 +it 07_gas 2 191 2030 0.0 0.0 +it 08_non-res 2 191 2030 0.0 0.0 +it 09_hydro_pump 2 191 2030 0.0 0.0 +it 01_solar 2 192 2030 1.0 0.0 +it 02_wind_on 2 192 2030 1.0 0.0 +it 03_wind_off 2 192 2030 0.0 0.0 +it 04_res 2 192 2030 0.0 0.0 +it 05_nuclear 2 192 2030 0.0 0.0 +it 06_coal 2 192 2030 0.0 0.0 +it 07_gas 2 192 2030 0.0 0.0 +it 08_non-res 2 192 2030 0.0 0.0 +it 09_hydro_pump 2 192 2030 0.0 0.0 +it 01_solar 2 193 2030 1.0 0.0 +it 02_wind_on 2 193 2030 1.0 0.0 +it 03_wind_off 2 193 2030 0.0 0.0 +it 04_res 2 193 2030 0.0 0.0 +it 05_nuclear 2 193 2030 0.0 0.0 +it 06_coal 2 193 2030 0.0 0.0 +it 07_gas 2 193 2030 0.0 0.0 +it 08_non-res 2 193 2030 0.0 0.0 +it 09_hydro_pump 2 193 2030 0.0 0.0 +it 01_solar 2 194 2030 1.0 0.0 +it 02_wind_on 2 194 2030 1.0 0.0 +it 03_wind_off 2 194 2030 0.0 0.0 +it 04_res 2 194 2030 0.0 0.0 +it 05_nuclear 2 194 2030 0.0 0.0 +it 06_coal 2 194 2030 0.0 0.0 +it 07_gas 2 194 2030 0.0 0.0 +it 08_non-res 2 194 2030 0.0 0.0 +it 09_hydro_pump 2 194 2030 0.0 0.0 +it 01_solar 2 195 2030 1.0 0.0 +it 02_wind_on 2 195 2030 1.0 0.0 +it 03_wind_off 2 195 2030 0.0 0.0 +it 04_res 2 195 2030 0.0 0.0 +it 05_nuclear 2 195 2030 0.0 0.0 +it 06_coal 2 195 2030 0.0 0.0 +it 07_gas 2 195 2030 0.0 0.0 +it 08_non-res 2 195 2030 0.0 0.0 +it 09_hydro_pump 2 195 2030 0.0 0.0 +it 01_solar 2 196 2030 1.0 0.0 +it 02_wind_on 2 196 2030 1.0 0.0 +it 03_wind_off 2 196 2030 0.0 0.0 +it 04_res 2 196 2030 0.0 0.0 +it 05_nuclear 2 196 2030 0.0 0.0 +it 06_coal 2 196 2030 0.0 0.0 +it 07_gas 2 196 2030 0.0 0.0 +it 08_non-res 2 196 2030 0.0 0.0 +it 09_hydro_pump 2 196 2030 0.0 0.0 +it 01_solar 2 197 2030 1.0 0.0 +it 02_wind_on 2 197 2030 1.0 0.0 +it 03_wind_off 2 197 2030 0.0 0.0 +it 04_res 2 197 2030 0.0 0.0 +it 05_nuclear 2 197 2030 0.0 0.0 +it 06_coal 2 197 2030 0.0 0.0 +it 07_gas 2 197 2030 0.0 0.0 +it 08_non-res 2 197 2030 0.0 0.0 +it 09_hydro_pump 2 197 2030 0.0 0.0 +it 01_solar 2 198 2030 1.0 0.0 +it 02_wind_on 2 198 2030 1.0 0.0 +it 03_wind_off 2 198 2030 0.0 0.0 +it 04_res 2 198 2030 0.0 0.0 +it 05_nuclear 2 198 2030 0.0 0.0 +it 06_coal 2 198 2030 0.0 0.0 +it 07_gas 2 198 2030 0.0 0.0 +it 08_non-res 2 198 2030 0.0 0.0 +it 09_hydro_pump 2 198 2030 0.0 0.0 +it 01_solar 2 199 2030 1.0 0.0 +it 02_wind_on 2 199 2030 1.0 0.0 +it 03_wind_off 2 199 2030 0.0 0.0 +it 04_res 2 199 2030 0.0 0.0 +it 05_nuclear 2 199 2030 0.0 0.0 +it 06_coal 2 199 2030 0.0 0.0 +it 07_gas 2 199 2030 0.0 0.0 +it 08_non-res 2 199 2030 0.0 0.0 +it 09_hydro_pump 2 199 2030 0.0 0.0 +it 01_solar 2 200 2030 1.0 0.0 +it 02_wind_on 2 200 2030 1.0 0.0 +it 03_wind_off 2 200 2030 0.0 0.0 +it 04_res 2 200 2030 0.0 0.0 +it 05_nuclear 2 200 2030 0.0 0.0 +it 06_coal 2 200 2030 0.0 0.0 +it 07_gas 2 200 2030 0.0 0.0 +it 08_non-res 2 200 2030 0.0 0.0 +it 09_hydro_pump 2 200 2030 0.0 0.0 +it 01_solar 2 201 2030 1.0 0.0 +it 02_wind_on 2 201 2030 1.0 0.0 +it 03_wind_off 2 201 2030 0.0 0.0 +it 04_res 2 201 2030 0.0 0.0 +it 05_nuclear 2 201 2030 0.0 0.0 +it 06_coal 2 201 2030 0.0 0.0 +it 07_gas 2 201 2030 0.0 0.0 +it 08_non-res 2 201 2030 0.0 0.0 +it 09_hydro_pump 2 201 2030 0.0 0.0 +it 01_solar 2 202 2030 1.0 0.0 +it 02_wind_on 2 202 2030 1.0 0.0 +it 03_wind_off 2 202 2030 0.0 0.0 +it 04_res 2 202 2030 0.0 0.0 +it 05_nuclear 2 202 2030 0.0 0.0 +it 06_coal 2 202 2030 0.0 0.0 +it 07_gas 2 202 2030 0.0 0.0 +it 08_non-res 2 202 2030 0.0 0.0 +it 09_hydro_pump 2 202 2030 0.0 0.0 +it 01_solar 2 203 2030 1.0 0.0 +it 02_wind_on 2 203 2030 1.0 0.0 +it 03_wind_off 2 203 2030 0.0 0.0 +it 04_res 2 203 2030 0.0 0.0 +it 05_nuclear 2 203 2030 0.0 0.0 +it 06_coal 2 203 2030 0.0 0.0 +it 07_gas 2 203 2030 0.0 0.0 +it 08_non-res 2 203 2030 0.0 0.0 +it 09_hydro_pump 2 203 2030 0.0 0.0 +it 01_solar 2 204 2030 1.0 0.0 +it 02_wind_on 2 204 2030 1.0 0.0 +it 03_wind_off 2 204 2030 0.0 0.0 +it 04_res 2 204 2030 0.0 0.0 +it 05_nuclear 2 204 2030 0.0 0.0 +it 06_coal 2 204 2030 0.0 0.0 +it 07_gas 2 204 2030 0.0 0.0 +it 08_non-res 2 204 2030 0.0 0.0 +it 09_hydro_pump 2 204 2030 0.0 0.0 +it 01_solar 2 205 2030 1.0 0.0 +it 02_wind_on 2 205 2030 1.0 0.0 +it 03_wind_off 2 205 2030 0.0 0.0 +it 04_res 2 205 2030 0.0 0.0 +it 05_nuclear 2 205 2030 0.0 0.0 +it 06_coal 2 205 2030 0.0 0.0 +it 07_gas 2 205 2030 0.0 0.0 +it 08_non-res 2 205 2030 0.0 0.0 +it 09_hydro_pump 2 205 2030 0.0 0.0 +it 01_solar 2 206 2030 1.0 0.0 +it 02_wind_on 2 206 2030 1.0 0.0 +it 03_wind_off 2 206 2030 0.0 0.0 +it 04_res 2 206 2030 0.0 0.0 +it 05_nuclear 2 206 2030 0.0 0.0 +it 06_coal 2 206 2030 0.0 0.0 +it 07_gas 2 206 2030 0.0 0.0 +it 08_non-res 2 206 2030 0.0 0.0 +it 09_hydro_pump 2 206 2030 0.0 0.0 +it 01_solar 2 207 2030 1.0 0.0 +it 02_wind_on 2 207 2030 1.0 0.0 +it 03_wind_off 2 207 2030 0.0 0.0 +it 04_res 2 207 2030 0.0 0.0 +it 05_nuclear 2 207 2030 0.0 0.0 +it 06_coal 2 207 2030 0.0 0.0 +it 07_gas 2 207 2030 0.0 0.0 +it 08_non-res 2 207 2030 0.0 0.0 +it 09_hydro_pump 2 207 2030 0.0 0.0 +it 01_solar 2 208 2030 1.0 0.0 +it 02_wind_on 2 208 2030 1.0 0.0 +it 03_wind_off 2 208 2030 0.0 0.0 +it 04_res 2 208 2030 0.0 0.0 +it 05_nuclear 2 208 2030 0.0 0.0 +it 06_coal 2 208 2030 0.0 0.0 +it 07_gas 2 208 2030 0.0 0.0 +it 08_non-res 2 208 2030 0.0 0.0 +it 09_hydro_pump 2 208 2030 0.0 0.0 +it 01_solar 2 209 2030 1.0 0.0 +it 02_wind_on 2 209 2030 1.0 0.0 +it 03_wind_off 2 209 2030 0.0 0.0 +it 04_res 2 209 2030 0.0 0.0 +it 05_nuclear 2 209 2030 0.0 0.0 +it 06_coal 2 209 2030 0.0 0.0 +it 07_gas 2 209 2030 0.0 0.0 +it 08_non-res 2 209 2030 0.0 0.0 +it 09_hydro_pump 2 209 2030 0.0 0.0 +it 01_solar 2 210 2030 1.0 0.0 +it 02_wind_on 2 210 2030 1.0 0.0 +it 03_wind_off 2 210 2030 1.0 0.0 +it 04_res 2 210 2030 0.0 0.0 +it 05_nuclear 2 210 2030 0.0 0.0 +it 06_coal 2 210 2030 0.0 0.0 +it 07_gas 2 210 2030 0.0 0.0 +it 08_non-res 2 210 2030 0.0 0.0 +it 09_hydro_pump 2 210 2030 0.0 0.0 +it 01_solar 2 211 2030 1.0 0.0 +it 02_wind_on 2 211 2030 1.0 0.0 +it 03_wind_off 2 211 2030 1.0 0.0 +it 04_res 2 211 2030 0.0 0.0 +it 05_nuclear 2 211 2030 0.0 0.0 +it 06_coal 2 211 2030 0.0 0.0 +it 07_gas 2 211 2030 0.0 0.0 +it 08_non-res 2 211 2030 0.0 0.0 +it 09_hydro_pump 2 211 2030 0.0 0.0 +it 01_solar 2 212 2030 1.0 0.0 +it 02_wind_on 2 212 2030 1.0 0.0 +it 03_wind_off 2 212 2030 1.0 0.0 +it 04_res 2 212 2030 0.0 0.0 +it 05_nuclear 2 212 2030 0.0 0.0 +it 06_coal 2 212 2030 0.0 0.0 +it 07_gas 2 212 2030 0.0 0.0 +it 08_non-res 2 212 2030 0.0 0.0 +it 09_hydro_pump 2 212 2030 0.0 0.0 +it 01_solar 2 213 2030 1.0 0.0 +it 02_wind_on 2 213 2030 1.0 0.0 +it 03_wind_off 2 213 2030 1.0 0.0 +it 04_res 2 213 2030 0.0 0.0 +it 05_nuclear 2 213 2030 0.0 0.0 +it 06_coal 2 213 2030 0.0 0.0 +it 07_gas 2 213 2030 0.0 0.0 +it 08_non-res 2 213 2030 0.0 0.0 +it 09_hydro_pump 2 213 2030 0.0 0.0 +it 01_solar 2 214 2030 1.0 0.0 +it 02_wind_on 2 214 2030 1.0 0.0 +it 03_wind_off 2 214 2030 1.0 0.0 +it 04_res 2 214 2030 0.0 0.0 +it 05_nuclear 2 214 2030 0.0 0.0 +it 06_coal 2 214 2030 0.0 0.0 +it 07_gas 2 214 2030 0.0 0.0 +it 08_non-res 2 214 2030 0.0 0.0 +it 09_hydro_pump 2 214 2030 0.0 0.0 +it 01_solar 2 215 2030 1.0 0.0 +it 02_wind_on 2 215 2030 1.0 0.0 +it 03_wind_off 2 215 2030 1.0 0.0 +it 04_res 2 215 2030 0.0 0.0 +it 05_nuclear 2 215 2030 0.0 0.0 +it 06_coal 2 215 2030 0.0 0.0 +it 07_gas 2 215 2030 0.0 0.0 +it 08_non-res 2 215 2030 0.0 0.0 +it 09_hydro_pump 2 215 2030 0.0 0.0 +it 01_solar 2 216 2030 1.0 0.0 +it 02_wind_on 2 216 2030 1.0 0.0 +it 03_wind_off 2 216 2030 1.0 0.0 +it 04_res 2 216 2030 0.0 0.0 +it 05_nuclear 2 216 2030 0.0 0.0 +it 06_coal 2 216 2030 0.0 0.0 +it 07_gas 2 216 2030 0.0 0.0 +it 08_non-res 2 216 2030 0.0 0.0 +it 09_hydro_pump 2 216 2030 0.0 0.0 +it 01_solar 2 217 2030 1.0 0.0 +it 02_wind_on 2 217 2030 1.0 0.0 +it 03_wind_off 2 217 2030 1.0 0.0 +it 04_res 2 217 2030 0.0 0.0 +it 05_nuclear 2 217 2030 0.0 0.0 +it 06_coal 2 217 2030 0.0 0.0 +it 07_gas 2 217 2030 0.0 0.0 +it 08_non-res 2 217 2030 0.0 0.0 +it 09_hydro_pump 2 217 2030 0.0 0.0 +it 01_solar 2 218 2030 1.0 0.0 +it 02_wind_on 2 218 2030 1.0 0.0 +it 03_wind_off 2 218 2030 1.0 0.0 +it 04_res 2 218 2030 0.0 0.0 +it 05_nuclear 2 218 2030 0.0 0.0 +it 06_coal 2 218 2030 0.0 0.0 +it 07_gas 2 218 2030 0.0 0.0 +it 08_non-res 2 218 2030 0.0 0.0 +it 09_hydro_pump 2 218 2030 0.0 0.0 +it 01_solar 2 219 2030 1.0 0.0 +it 02_wind_on 2 219 2030 1.0 0.0 +it 03_wind_off 2 219 2030 1.0 0.0 +it 04_res 2 219 2030 0.0 0.0 +it 05_nuclear 2 219 2030 0.0 0.0 +it 06_coal 2 219 2030 0.0 0.0 +it 07_gas 2 219 2030 0.0 0.0 +it 08_non-res 2 219 2030 0.0 0.0 +it 09_hydro_pump 2 219 2030 0.0 0.0 +it 01_solar 2 220 2030 1.0 0.0 +it 02_wind_on 2 220 2030 1.0 0.0 +it 03_wind_off 2 220 2030 1.0 0.0 +it 04_res 2 220 2030 0.0 0.0 +it 05_nuclear 2 220 2030 0.0 0.0 +it 06_coal 2 220 2030 0.0 0.0 +it 07_gas 2 220 2030 0.0 0.0 +it 08_non-res 2 220 2030 0.0 0.0 +it 09_hydro_pump 2 220 2030 0.0 0.0 +it 01_solar 2 221 2030 1.0 0.0 +it 02_wind_on 2 221 2030 1.0 0.0 +it 03_wind_off 2 221 2030 1.0 0.0 +it 04_res 2 221 2030 0.0 0.0 +it 05_nuclear 2 221 2030 0.0 0.0 +it 06_coal 2 221 2030 0.0 0.0 +it 07_gas 2 221 2030 0.0 0.0 +it 08_non-res 2 221 2030 0.0 0.0 +it 09_hydro_pump 2 221 2030 0.0 0.0 +it 01_solar 2 222 2030 1.0 0.0 +it 02_wind_on 2 222 2030 1.0 0.0 +it 03_wind_off 2 222 2030 1.0 0.0 +it 04_res 2 222 2030 0.0 0.0 +it 05_nuclear 2 222 2030 0.0 0.0 +it 06_coal 2 222 2030 0.0 0.0 +it 07_gas 2 222 2030 0.0 0.0 +it 08_non-res 2 222 2030 0.0 0.0 +it 09_hydro_pump 2 222 2030 0.0 0.0 +it 01_solar 2 223 2030 1.0 0.0 +it 02_wind_on 2 223 2030 1.0 0.0 +it 03_wind_off 2 223 2030 1.0 0.0 +it 04_res 2 223 2030 0.0 0.0 +it 05_nuclear 2 223 2030 0.0 0.0 +it 06_coal 2 223 2030 0.0 0.0 +it 07_gas 2 223 2030 0.0 0.0 +it 08_non-res 2 223 2030 0.0 0.0 +it 09_hydro_pump 2 223 2030 0.0 0.0 +it 01_solar 2 224 2030 1.0 0.0 +it 02_wind_on 2 224 2030 1.0 0.0 +it 03_wind_off 2 224 2030 1.0 0.0 +it 04_res 2 224 2030 0.0 0.0 +it 05_nuclear 2 224 2030 0.0 0.0 +it 06_coal 2 224 2030 0.0 0.0 +it 07_gas 2 224 2030 0.0 0.0 +it 08_non-res 2 224 2030 0.0 0.0 +it 09_hydro_pump 2 224 2030 0.0 0.0 +it 01_solar 2 225 2030 1.0 0.0 +it 02_wind_on 2 225 2030 1.0 0.0 +it 03_wind_off 2 225 2030 1.0 0.0 +it 04_res 2 225 2030 0.0 0.0 +it 05_nuclear 2 225 2030 0.0 0.0 +it 06_coal 2 225 2030 0.0 0.0 +it 07_gas 2 225 2030 0.0 0.0 +it 08_non-res 2 225 2030 0.0 0.0 +it 09_hydro_pump 2 225 2030 0.0 0.0 +it 01_solar 2 226 2030 1.0 0.0 +it 02_wind_on 2 226 2030 1.0 0.0 +it 03_wind_off 2 226 2030 1.0 0.0 +it 04_res 2 226 2030 0.0 0.0 +it 05_nuclear 2 226 2030 0.0 0.0 +it 06_coal 2 226 2030 0.0 0.0 +it 07_gas 2 226 2030 0.0 0.0 +it 08_non-res 2 226 2030 0.0 0.0 +it 09_hydro_pump 2 226 2030 0.0 0.0 +it 01_solar 2 227 2030 1.0 0.0 +it 02_wind_on 2 227 2030 1.0 0.0 +it 03_wind_off 2 227 2030 1.0 0.0 +it 04_res 2 227 2030 0.0 0.0 +it 05_nuclear 2 227 2030 0.0 0.0 +it 06_coal 2 227 2030 0.0 0.0 +it 07_gas 2 227 2030 0.0 0.0 +it 08_non-res 2 227 2030 0.0 0.0 +it 09_hydro_pump 2 227 2030 0.0 0.0 +it 01_solar 2 228 2030 1.0 0.0 +it 02_wind_on 2 228 2030 1.0 0.0 +it 03_wind_off 2 228 2030 1.0 0.0 +it 04_res 2 228 2030 0.0 0.0 +it 05_nuclear 2 228 2030 0.0 0.0 +it 06_coal 2 228 2030 0.0 0.0 +it 07_gas 2 228 2030 0.0 0.0 +it 08_non-res 2 228 2030 0.0 0.0 +it 09_hydro_pump 2 228 2030 0.0 0.0 +it 01_solar 2 229 2030 1.0 0.0 +it 02_wind_on 2 229 2030 1.0 0.0 +it 03_wind_off 2 229 2030 1.0 0.0 +it 04_res 2 229 2030 0.0 0.0 +it 05_nuclear 2 229 2030 0.0 0.0 +it 06_coal 2 229 2030 0.0 0.0 +it 07_gas 2 229 2030 0.0 0.0 +it 08_non-res 2 229 2030 0.0 0.0 +it 09_hydro_pump 2 229 2030 0.0 0.0 +it 01_solar 2 230 2030 1.0 0.0 +it 02_wind_on 2 230 2030 1.0 0.0 +it 03_wind_off 2 230 2030 1.0 0.0 +it 04_res 2 230 2030 1.0 0.0 +it 05_nuclear 2 230 2030 0.0 0.0 +it 06_coal 2 230 2030 0.0 0.0 +it 07_gas 2 230 2030 0.0 0.0 +it 08_non-res 2 230 2030 0.0 0.0 +it 09_hydro_pump 2 230 2030 0.0 0.0 +it 01_solar 2 231 2030 1.0 0.0 +it 02_wind_on 2 231 2030 1.0 0.0 +it 03_wind_off 2 231 2030 1.0 0.0 +it 04_res 2 231 2030 1.0 0.0 +it 05_nuclear 2 231 2030 0.0 0.0 +it 06_coal 2 231 2030 0.0 0.0 +it 07_gas 2 231 2030 0.0 0.0 +it 08_non-res 2 231 2030 0.0 0.0 +it 09_hydro_pump 2 231 2030 0.0 0.0 +it 01_solar 2 232 2030 1.0 0.0 +it 02_wind_on 2 232 2030 1.0 0.0 +it 03_wind_off 2 232 2030 1.0 0.0 +it 04_res 2 232 2030 1.0 0.0 +it 05_nuclear 2 232 2030 0.0 0.0 +it 06_coal 2 232 2030 0.0 0.0 +it 07_gas 2 232 2030 0.0 0.0 +it 08_non-res 2 232 2030 0.0 0.0 +it 09_hydro_pump 2 232 2030 0.0 0.0 +it 01_solar 2 233 2030 1.0 0.0 +it 02_wind_on 2 233 2030 1.0 0.0 +it 03_wind_off 2 233 2030 1.0 0.0 +it 04_res 2 233 2030 1.0 0.0 +it 05_nuclear 2 233 2030 0.0 0.0 +it 06_coal 2 233 2030 0.0 0.0 +it 07_gas 2 233 2030 0.0 0.0 +it 08_non-res 2 233 2030 0.0 0.0 +it 09_hydro_pump 2 233 2030 0.0 0.0 +it 01_solar 2 234 2030 1.0 0.0 +it 02_wind_on 2 234 2030 1.0 0.0 +it 03_wind_off 2 234 2030 1.0 0.0 +it 04_res 2 234 2030 1.0 0.0 +it 05_nuclear 2 234 2030 0.0 0.0 +it 06_coal 2 234 2030 0.0 0.0 +it 07_gas 2 234 2030 0.0 0.0 +it 08_non-res 2 234 2030 0.0 0.0 +it 09_hydro_pump 2 234 2030 0.0 0.0 +it 01_solar 2 235 2030 1.0 0.0 +it 02_wind_on 2 235 2030 1.0 0.0 +it 03_wind_off 2 235 2030 1.0 0.0 +it 04_res 2 235 2030 1.0 0.0 +it 05_nuclear 2 235 2030 0.0 0.0 +it 06_coal 2 235 2030 0.0 0.0 +it 07_gas 2 235 2030 0.0 0.0 +it 08_non-res 2 235 2030 0.0 0.0 +it 09_hydro_pump 2 235 2030 0.0 0.0 +it 01_solar 2 236 2030 1.0 0.0 +it 02_wind_on 2 236 2030 1.0 0.0 +it 03_wind_off 2 236 2030 1.0 0.0 +it 04_res 2 236 2030 1.0 0.0 +it 05_nuclear 2 236 2030 0.0 0.0 +it 06_coal 2 236 2030 0.0 0.0 +it 07_gas 2 236 2030 0.0 0.0 +it 08_non-res 2 236 2030 0.0 0.0 +it 09_hydro_pump 2 236 2030 0.0 0.0 +it 01_solar 2 237 2030 1.0 0.0 +it 02_wind_on 2 237 2030 1.0 0.0 +it 03_wind_off 2 237 2030 1.0 0.0 +it 04_res 2 237 2030 1.0 0.0 +it 05_nuclear 2 237 2030 0.0 0.0 +it 06_coal 2 237 2030 0.0 0.0 +it 07_gas 2 237 2030 0.0 0.0 +it 08_non-res 2 237 2030 0.0 0.0 +it 09_hydro_pump 2 237 2030 0.0 0.0 +it 01_solar 2 238 2030 1.0 0.0 +it 02_wind_on 2 238 2030 1.0 0.0 +it 03_wind_off 2 238 2030 1.0 0.0 +it 04_res 2 238 2030 1.0 0.0 +it 05_nuclear 2 238 2030 0.0 0.0 +it 06_coal 2 238 2030 0.0 0.0 +it 07_gas 2 238 2030 0.0 0.0 +it 08_non-res 2 238 2030 0.0 0.0 +it 09_hydro_pump 2 238 2030 0.0 0.0 +it 01_solar 2 239 2030 1.0 0.0 +it 02_wind_on 2 239 2030 1.0 0.0 +it 03_wind_off 2 239 2030 1.0 0.0 +it 04_res 2 239 2030 1.0 0.0 +it 05_nuclear 2 239 2030 0.0 0.0 +it 06_coal 2 239 2030 0.0 0.0 +it 07_gas 2 239 2030 0.0 0.0 +it 08_non-res 2 239 2030 0.0 0.0 +it 09_hydro_pump 2 239 2030 0.0 0.0 +it 01_solar 2 240 2030 1.0 0.0 +it 02_wind_on 2 240 2030 1.0 0.0 +it 03_wind_off 2 240 2030 1.0 0.0 +it 04_res 2 240 2030 1.0 0.0 +it 05_nuclear 2 240 2030 0.0 0.0 +it 06_coal 2 240 2030 0.0 0.0 +it 07_gas 2 240 2030 0.0 0.0 +it 08_non-res 2 240 2030 0.0 0.0 +it 09_hydro_pump 2 240 2030 0.0 0.0 +it 01_solar 2 241 2030 1.0 0.0 +it 02_wind_on 2 241 2030 1.0 0.0 +it 03_wind_off 2 241 2030 1.0 0.0 +it 04_res 2 241 2030 1.0 0.0 +it 05_nuclear 2 241 2030 0.0 0.0 +it 06_coal 2 241 2030 0.0 0.0 +it 07_gas 2 241 2030 0.0 0.0 +it 08_non-res 2 241 2030 0.0 0.0 +it 09_hydro_pump 2 241 2030 0.0 0.0 +it 01_solar 2 242 2030 1.0 0.0 +it 02_wind_on 2 242 2030 1.0 0.0 +it 03_wind_off 2 242 2030 1.0 0.0 +it 04_res 2 242 2030 1.0 0.0 +it 05_nuclear 2 242 2030 0.0 0.0 +it 06_coal 2 242 2030 0.0 0.0 +it 07_gas 2 242 2030 0.0 0.0 +it 08_non-res 2 242 2030 0.0 0.0 +it 09_hydro_pump 2 242 2030 0.0 0.0 +it 01_solar 2 243 2030 1.0 0.0 +it 02_wind_on 2 243 2030 1.0 0.0 +it 03_wind_off 2 243 2030 1.0 0.0 +it 04_res 2 243 2030 1.0 0.0 +it 05_nuclear 2 243 2030 0.0 0.0 +it 06_coal 2 243 2030 0.0 0.0 +it 07_gas 2 243 2030 0.0 0.0 +it 08_non-res 2 243 2030 0.0 0.0 +it 09_hydro_pump 2 243 2030 0.0 0.0 +it 01_solar 2 244 2030 1.0 0.0 +it 02_wind_on 2 244 2030 1.0 0.0 +it 03_wind_off 2 244 2030 1.0 0.0 +it 04_res 2 244 2030 1.0 0.0 +it 05_nuclear 2 244 2030 0.0 0.0 +it 06_coal 2 244 2030 0.0 0.0 +it 07_gas 2 244 2030 0.0 0.0 +it 08_non-res 2 244 2030 0.0 0.0 +it 09_hydro_pump 2 244 2030 0.0 0.0 +it 01_solar 2 245 2030 1.0 0.0 +it 02_wind_on 2 245 2030 1.0 0.0 +it 03_wind_off 2 245 2030 1.0 0.0 +it 04_res 2 245 2030 1.0 0.0 +it 05_nuclear 2 245 2030 0.0 0.0 +it 06_coal 2 245 2030 0.0 0.0 +it 07_gas 2 245 2030 0.0 0.0 +it 08_non-res 2 245 2030 0.0 0.0 +it 09_hydro_pump 2 245 2030 0.0 0.0 +it 01_solar 2 246 2030 1.0 0.0 +it 02_wind_on 2 246 2030 1.0 0.0 +it 03_wind_off 2 246 2030 1.0 0.0 +it 04_res 2 246 2030 1.0 0.0 +it 05_nuclear 2 246 2030 0.0 0.0 +it 06_coal 2 246 2030 0.0 0.0 +it 07_gas 2 246 2030 0.0 0.0 +it 08_non-res 2 246 2030 0.0 0.0 +it 09_hydro_pump 2 246 2030 0.0 0.0 +it 01_solar 2 247 2030 1.0 0.0 +it 02_wind_on 2 247 2030 1.0 0.0 +it 03_wind_off 2 247 2030 1.0 0.0 +it 04_res 2 247 2030 1.0 0.0 +it 05_nuclear 2 247 2030 0.0 0.0 +it 06_coal 2 247 2030 0.0 0.0 +it 07_gas 2 247 2030 0.0 0.0 +it 08_non-res 2 247 2030 0.0 0.0 +it 09_hydro_pump 2 247 2030 0.0 0.0 +it 01_solar 2 248 2030 1.0 0.0 +it 02_wind_on 2 248 2030 1.0 0.0 +it 03_wind_off 2 248 2030 1.0 0.0 +it 04_res 2 248 2030 1.0 0.0 +it 05_nuclear 2 248 2030 0.0 0.0 +it 06_coal 2 248 2030 0.0 0.0 +it 07_gas 2 248 2030 0.0 0.0 +it 08_non-res 2 248 2030 0.0 0.0 +it 09_hydro_pump 2 248 2030 0.0 0.0 +it 01_solar 2 249 2030 1.0 0.0 +it 02_wind_on 2 249 2030 1.0 0.0 +it 03_wind_off 2 249 2030 1.0 0.0 +it 04_res 2 249 2030 1.0 0.0 +it 05_nuclear 2 249 2030 0.0 0.0 +it 06_coal 2 249 2030 0.0 0.0 +it 07_gas 2 249 2030 0.0 0.0 +it 08_non-res 2 249 2030 0.0 0.0 +it 09_hydro_pump 2 249 2030 0.0 0.0 +it 01_solar 2 250 2030 1.0 0.0 +it 02_wind_on 2 250 2030 1.0 0.0 +it 03_wind_off 2 250 2030 1.0 0.0 +it 04_res 2 250 2030 1.0 0.0 +it 05_nuclear 2 250 2030 1.0 0.0 +it 06_coal 2 250 2030 0.0 0.0 +it 07_gas 2 250 2030 0.0 0.0 +it 08_non-res 2 250 2030 0.0 0.0 +it 09_hydro_pump 2 250 2030 0.0 0.0 +it 01_solar 2 251 2030 1.0 0.0 +it 02_wind_on 2 251 2030 1.0 0.0 +it 03_wind_off 2 251 2030 1.0 0.0 +it 04_res 2 251 2030 1.0 0.0 +it 05_nuclear 2 251 2030 1.0 0.0 +it 06_coal 2 251 2030 0.0 0.0 +it 07_gas 2 251 2030 0.0 0.0 +it 08_non-res 2 251 2030 0.0 0.0 +it 09_hydro_pump 2 251 2030 0.0 0.0 +it 01_solar 2 252 2030 1.0 0.0 +it 02_wind_on 2 252 2030 1.0 0.0 +it 03_wind_off 2 252 2030 1.0 0.0 +it 04_res 2 252 2030 1.0 0.0 +it 05_nuclear 2 252 2030 1.0 0.0 +it 06_coal 2 252 2030 0.0 0.0 +it 07_gas 2 252 2030 0.0 0.0 +it 08_non-res 2 252 2030 0.0 0.0 +it 09_hydro_pump 2 252 2030 0.0 0.0 +it 01_solar 2 253 2030 1.0 0.0 +it 02_wind_on 2 253 2030 1.0 0.0 +it 03_wind_off 2 253 2030 1.0 0.0 +it 04_res 2 253 2030 1.0 0.0 +it 05_nuclear 2 253 2030 1.0 0.0 +it 06_coal 2 253 2030 0.0 0.0 +it 07_gas 2 253 2030 0.0 0.0 +it 08_non-res 2 253 2030 0.0 0.0 +it 09_hydro_pump 2 253 2030 0.0 0.0 +it 01_solar 2 254 2030 1.0 0.0 +it 02_wind_on 2 254 2030 1.0 0.0 +it 03_wind_off 2 254 2030 1.0 0.0 +it 04_res 2 254 2030 1.0 0.0 +it 05_nuclear 2 254 2030 1.0 0.0 +it 06_coal 2 254 2030 0.0 0.0 +it 07_gas 2 254 2030 0.0 0.0 +it 08_non-res 2 254 2030 0.0 0.0 +it 09_hydro_pump 2 254 2030 0.0 0.0 +it 01_solar 2 255 2030 1.0 0.0 +it 02_wind_on 2 255 2030 1.0 0.0 +it 03_wind_off 2 255 2030 1.0 0.0 +it 04_res 2 255 2030 1.0 0.0 +it 05_nuclear 2 255 2030 1.0 0.0 +it 06_coal 2 255 2030 0.0 0.0 +it 07_gas 2 255 2030 0.0 0.0 +it 08_non-res 2 255 2030 0.0 0.0 +it 09_hydro_pump 2 255 2030 0.0 0.0 +it 01_solar 2 256 2030 1.0 0.0 +it 02_wind_on 2 256 2030 1.0 0.0 +it 03_wind_off 2 256 2030 1.0 0.0 +it 04_res 2 256 2030 1.0 0.0 +it 05_nuclear 2 256 2030 1.0 0.0 +it 06_coal 2 256 2030 0.0 0.0 +it 07_gas 2 256 2030 0.0 0.0 +it 08_non-res 2 256 2030 0.0 0.0 +it 09_hydro_pump 2 256 2030 0.0 0.0 +it 01_solar 2 257 2030 1.0 0.0 +it 02_wind_on 2 257 2030 1.0 0.0 +it 03_wind_off 2 257 2030 1.0 0.0 +it 04_res 2 257 2030 1.0 0.0 +it 05_nuclear 2 257 2030 1.0 0.0 +it 06_coal 2 257 2030 0.0 0.0 +it 07_gas 2 257 2030 0.0 0.0 +it 08_non-res 2 257 2030 0.0 0.0 +it 09_hydro_pump 2 257 2030 0.0 0.0 +it 01_solar 2 258 2030 1.0 0.0 +it 02_wind_on 2 258 2030 1.0 0.0 +it 03_wind_off 2 258 2030 1.0 0.0 +it 04_res 2 258 2030 1.0 0.0 +it 05_nuclear 2 258 2030 1.0 0.0 +it 06_coal 2 258 2030 0.0 0.0 +it 07_gas 2 258 2030 0.0 0.0 +it 08_non-res 2 258 2030 0.0 0.0 +it 09_hydro_pump 2 258 2030 0.0 0.0 +it 01_solar 2 259 2030 1.0 0.0 +it 02_wind_on 2 259 2030 1.0 0.0 +it 03_wind_off 2 259 2030 1.0 0.0 +it 04_res 2 259 2030 1.0 0.0 +it 05_nuclear 2 259 2030 1.0 0.0 +it 06_coal 2 259 2030 0.0 0.0 +it 07_gas 2 259 2030 0.0 0.0 +it 08_non-res 2 259 2030 0.0 0.0 +it 09_hydro_pump 2 259 2030 0.0 0.0 +it 01_solar 2 260 2030 1.0 0.0 +it 02_wind_on 2 260 2030 1.0 0.0 +it 03_wind_off 2 260 2030 1.0 0.0 +it 04_res 2 260 2030 1.0 0.0 +it 05_nuclear 2 260 2030 1.0 0.0 +it 06_coal 2 260 2030 0.0 0.0 +it 07_gas 2 260 2030 0.0 0.0 +it 08_non-res 2 260 2030 0.0 0.0 +it 09_hydro_pump 2 260 2030 0.0 0.0 +it 01_solar 2 261 2030 1.0 0.0 +it 02_wind_on 2 261 2030 1.0 0.0 +it 03_wind_off 2 261 2030 1.0 0.0 +it 04_res 2 261 2030 1.0 0.0 +it 05_nuclear 2 261 2030 1.0 0.0 +it 06_coal 2 261 2030 0.0 0.0 +it 07_gas 2 261 2030 0.0 0.0 +it 08_non-res 2 261 2030 0.0 0.0 +it 09_hydro_pump 2 261 2030 0.0 0.0 +it 01_solar 2 262 2030 1.0 0.0 +it 02_wind_on 2 262 2030 1.0 0.0 +it 03_wind_off 2 262 2030 1.0 0.0 +it 04_res 2 262 2030 1.0 0.0 +it 05_nuclear 2 262 2030 1.0 0.0 +it 06_coal 2 262 2030 0.0 0.0 +it 07_gas 2 262 2030 0.0 0.0 +it 08_non-res 2 262 2030 0.0 0.0 +it 09_hydro_pump 2 262 2030 0.0 0.0 +it 01_solar 2 263 2030 1.0 0.0 +it 02_wind_on 2 263 2030 1.0 0.0 +it 03_wind_off 2 263 2030 1.0 0.0 +it 04_res 2 263 2030 1.0 0.0 +it 05_nuclear 2 263 2030 1.0 0.0 +it 06_coal 2 263 2030 0.0 0.0 +it 07_gas 2 263 2030 0.0 0.0 +it 08_non-res 2 263 2030 0.0 0.0 +it 09_hydro_pump 2 263 2030 0.0 0.0 +it 01_solar 2 264 2030 1.0 0.0 +it 02_wind_on 2 264 2030 1.0 0.0 +it 03_wind_off 2 264 2030 1.0 0.0 +it 04_res 2 264 2030 1.0 0.0 +it 05_nuclear 2 264 2030 1.0 0.0 +it 06_coal 2 264 2030 0.0 0.0 +it 07_gas 2 264 2030 0.0 0.0 +it 08_non-res 2 264 2030 0.0 0.0 +it 09_hydro_pump 2 264 2030 0.0 0.0 +it 01_solar 2 265 2030 1.0 0.0 +it 02_wind_on 2 265 2030 1.0 0.0 +it 03_wind_off 2 265 2030 1.0 0.0 +it 04_res 2 265 2030 1.0 0.0 +it 05_nuclear 2 265 2030 1.0 0.0 +it 06_coal 2 265 2030 0.0 0.0 +it 07_gas 2 265 2030 0.0 0.0 +it 08_non-res 2 265 2030 0.0 0.0 +it 09_hydro_pump 2 265 2030 0.0 0.0 +it 01_solar 2 266 2030 1.0 0.0 +it 02_wind_on 2 266 2030 1.0 0.0 +it 03_wind_off 2 266 2030 1.0 0.0 +it 04_res 2 266 2030 1.0 0.0 +it 05_nuclear 2 266 2030 1.0 0.0 +it 06_coal 2 266 2030 0.0 0.0 +it 07_gas 2 266 2030 0.0 0.0 +it 08_non-res 2 266 2030 0.0 0.0 +it 09_hydro_pump 2 266 2030 0.0 0.0 +it 01_solar 2 267 2030 1.0 0.0 +it 02_wind_on 2 267 2030 1.0 0.0 +it 03_wind_off 2 267 2030 1.0 0.0 +it 04_res 2 267 2030 1.0 0.0 +it 05_nuclear 2 267 2030 1.0 0.0 +it 06_coal 2 267 2030 0.0 0.0 +it 07_gas 2 267 2030 0.0 0.0 +it 08_non-res 2 267 2030 0.0 0.0 +it 09_hydro_pump 2 267 2030 0.0 0.0 +it 01_solar 2 268 2030 1.0 0.0 +it 02_wind_on 2 268 2030 1.0 0.0 +it 03_wind_off 2 268 2030 1.0 0.0 +it 04_res 2 268 2030 1.0 0.0 +it 05_nuclear 2 268 2030 1.0 0.0 +it 06_coal 2 268 2030 0.0 0.0 +it 07_gas 2 268 2030 0.0 0.0 +it 08_non-res 2 268 2030 0.0 0.0 +it 09_hydro_pump 2 268 2030 0.0 0.0 +it 01_solar 2 269 2030 1.0 0.0 +it 02_wind_on 2 269 2030 1.0 0.0 +it 03_wind_off 2 269 2030 1.0 0.0 +it 04_res 2 269 2030 1.0 0.0 +it 05_nuclear 2 269 2030 1.0 0.0 +it 06_coal 2 269 2030 0.0 0.0 +it 07_gas 2 269 2030 0.0 0.0 +it 08_non-res 2 269 2030 0.0 0.0 +it 09_hydro_pump 2 269 2030 0.0 0.0 +it 01_solar 2 270 2030 1.0 0.0 +it 02_wind_on 2 270 2030 1.0 0.0 +it 03_wind_off 2 270 2030 1.0 0.0 +it 04_res 2 270 2030 1.0 0.0 +it 05_nuclear 2 270 2030 1.0 0.0 +it 06_coal 2 270 2030 1.0 0.0 +it 07_gas 2 270 2030 0.0 0.0 +it 08_non-res 2 270 2030 0.0 0.0 +it 09_hydro_pump 2 270 2030 0.0 0.0 +it 01_solar 2 271 2030 1.0 0.0 +it 02_wind_on 2 271 2030 1.0 0.0 +it 03_wind_off 2 271 2030 1.0 0.0 +it 04_res 2 271 2030 1.0 0.0 +it 05_nuclear 2 271 2030 1.0 0.0 +it 06_coal 2 271 2030 1.0 0.0 +it 07_gas 2 271 2030 0.0 0.0 +it 08_non-res 2 271 2030 0.0 0.0 +it 09_hydro_pump 2 271 2030 0.0 0.0 +it 01_solar 2 272 2030 1.0 0.0 +it 02_wind_on 2 272 2030 1.0 0.0 +it 03_wind_off 2 272 2030 1.0 0.0 +it 04_res 2 272 2030 1.0 0.0 +it 05_nuclear 2 272 2030 1.0 0.0 +it 06_coal 2 272 2030 1.0 0.0 +it 07_gas 2 272 2030 0.0 0.0 +it 08_non-res 2 272 2030 0.0 0.0 +it 09_hydro_pump 2 272 2030 0.0 0.0 +it 01_solar 2 273 2030 1.0 0.0 +it 02_wind_on 2 273 2030 1.0 0.0 +it 03_wind_off 2 273 2030 1.0 0.0 +it 04_res 2 273 2030 1.0 0.0 +it 05_nuclear 2 273 2030 1.0 0.0 +it 06_coal 2 273 2030 1.0 0.0 +it 07_gas 2 273 2030 0.0 0.0 +it 08_non-res 2 273 2030 0.0 0.0 +it 09_hydro_pump 2 273 2030 0.0 0.0 +it 01_solar 2 274 2030 1.0 0.0 +it 02_wind_on 2 274 2030 1.0 0.0 +it 03_wind_off 2 274 2030 1.0 0.0 +it 04_res 2 274 2030 1.0 0.0 +it 05_nuclear 2 274 2030 1.0 0.0 +it 06_coal 2 274 2030 1.0 0.0 +it 07_gas 2 274 2030 0.0 0.0 +it 08_non-res 2 274 2030 0.0 0.0 +it 09_hydro_pump 2 274 2030 0.0 0.0 +it 01_solar 2 275 2030 1.0 0.0 +it 02_wind_on 2 275 2030 1.0 0.0 +it 03_wind_off 2 275 2030 1.0 0.0 +it 04_res 2 275 2030 1.0 0.0 +it 05_nuclear 2 275 2030 1.0 0.0 +it 06_coal 2 275 2030 1.0 0.0 +it 07_gas 2 275 2030 0.0 0.0 +it 08_non-res 2 275 2030 0.0 0.0 +it 09_hydro_pump 2 275 2030 0.0 0.0 +it 01_solar 2 276 2030 1.0 0.0 +it 02_wind_on 2 276 2030 1.0 0.0 +it 03_wind_off 2 276 2030 1.0 0.0 +it 04_res 2 276 2030 1.0 0.0 +it 05_nuclear 2 276 2030 1.0 0.0 +it 06_coal 2 276 2030 1.0 0.0 +it 07_gas 2 276 2030 0.0 0.0 +it 08_non-res 2 276 2030 0.0 0.0 +it 09_hydro_pump 2 276 2030 0.0 0.0 +it 01_solar 2 277 2030 1.0 0.0 +it 02_wind_on 2 277 2030 1.0 0.0 +it 03_wind_off 2 277 2030 1.0 0.0 +it 04_res 2 277 2030 1.0 0.0 +it 05_nuclear 2 277 2030 1.0 0.0 +it 06_coal 2 277 2030 1.0 0.0 +it 07_gas 2 277 2030 0.0 0.0 +it 08_non-res 2 277 2030 0.0 0.0 +it 09_hydro_pump 2 277 2030 0.0 0.0 +it 01_solar 2 278 2030 1.0 0.0 +it 02_wind_on 2 278 2030 1.0 0.0 +it 03_wind_off 2 278 2030 1.0 0.0 +it 04_res 2 278 2030 1.0 0.0 +it 05_nuclear 2 278 2030 1.0 0.0 +it 06_coal 2 278 2030 1.0 0.0 +it 07_gas 2 278 2030 0.0 0.0 +it 08_non-res 2 278 2030 0.0 0.0 +it 09_hydro_pump 2 278 2030 0.0 0.0 +it 01_solar 2 279 2030 1.0 0.0 +it 02_wind_on 2 279 2030 1.0 0.0 +it 03_wind_off 2 279 2030 1.0 0.0 +it 04_res 2 279 2030 1.0 0.0 +it 05_nuclear 2 279 2030 1.0 0.0 +it 06_coal 2 279 2030 1.0 0.0 +it 07_gas 2 279 2030 0.0 0.0 +it 08_non-res 2 279 2030 0.0 0.0 +it 09_hydro_pump 2 279 2030 0.0 0.0 +it 01_solar 2 280 2030 1.0 0.0 +it 02_wind_on 2 280 2030 1.0 0.0 +it 03_wind_off 2 280 2030 1.0 0.0 +it 04_res 2 280 2030 1.0 0.0 +it 05_nuclear 2 280 2030 1.0 0.0 +it 06_coal 2 280 2030 1.0 0.0 +it 07_gas 2 280 2030 0.0 0.0 +it 08_non-res 2 280 2030 0.0 0.0 +it 09_hydro_pump 2 280 2030 0.0 0.0 +it 01_solar 2 281 2030 1.0 0.0 +it 02_wind_on 2 281 2030 1.0 0.0 +it 03_wind_off 2 281 2030 1.0 0.0 +it 04_res 2 281 2030 1.0 0.0 +it 05_nuclear 2 281 2030 1.0 0.0 +it 06_coal 2 281 2030 1.0 0.0 +it 07_gas 2 281 2030 0.0 0.0 +it 08_non-res 2 281 2030 0.0 0.0 +it 09_hydro_pump 2 281 2030 0.0 0.0 +it 01_solar 2 282 2030 1.0 0.0 +it 02_wind_on 2 282 2030 1.0 0.0 +it 03_wind_off 2 282 2030 1.0 0.0 +it 04_res 2 282 2030 1.0 0.0 +it 05_nuclear 2 282 2030 1.0 0.0 +it 06_coal 2 282 2030 1.0 0.0 +it 07_gas 2 282 2030 0.0 0.0 +it 08_non-res 2 282 2030 0.0 0.0 +it 09_hydro_pump 2 282 2030 0.0 0.0 +it 01_solar 2 283 2030 1.0 0.0 +it 02_wind_on 2 283 2030 1.0 0.0 +it 03_wind_off 2 283 2030 1.0 0.0 +it 04_res 2 283 2030 1.0 0.0 +it 05_nuclear 2 283 2030 1.0 0.0 +it 06_coal 2 283 2030 1.0 0.0 +it 07_gas 2 283 2030 0.0 0.0 +it 08_non-res 2 283 2030 0.0 0.0 +it 09_hydro_pump 2 283 2030 0.0 0.0 +it 01_solar 2 284 2030 1.0 0.0 +it 02_wind_on 2 284 2030 1.0 0.0 +it 03_wind_off 2 284 2030 1.0 0.0 +it 04_res 2 284 2030 1.0 0.0 +it 05_nuclear 2 284 2030 1.0 0.0 +it 06_coal 2 284 2030 1.0 0.0 +it 07_gas 2 284 2030 0.0 0.0 +it 08_non-res 2 284 2030 0.0 0.0 +it 09_hydro_pump 2 284 2030 0.0 0.0 +it 01_solar 2 285 2030 1.0 0.0 +it 02_wind_on 2 285 2030 1.0 0.0 +it 03_wind_off 2 285 2030 1.0 0.0 +it 04_res 2 285 2030 1.0 0.0 +it 05_nuclear 2 285 2030 1.0 0.0 +it 06_coal 2 285 2030 1.0 0.0 +it 07_gas 2 285 2030 0.0 0.0 +it 08_non-res 2 285 2030 0.0 0.0 +it 09_hydro_pump 2 285 2030 0.0 0.0 +it 01_solar 2 286 2030 1.0 0.0 +it 02_wind_on 2 286 2030 1.0 0.0 +it 03_wind_off 2 286 2030 1.0 0.0 +it 04_res 2 286 2030 1.0 0.0 +it 05_nuclear 2 286 2030 1.0 0.0 +it 06_coal 2 286 2030 1.0 0.0 +it 07_gas 2 286 2030 0.0 0.0 +it 08_non-res 2 286 2030 0.0 0.0 +it 09_hydro_pump 2 286 2030 0.0 0.0 +it 01_solar 2 287 2030 1.0 0.0 +it 02_wind_on 2 287 2030 1.0 0.0 +it 03_wind_off 2 287 2030 1.0 0.0 +it 04_res 2 287 2030 1.0 0.0 +it 05_nuclear 2 287 2030 1.0 0.0 +it 06_coal 2 287 2030 1.0 0.0 +it 07_gas 2 287 2030 0.0 0.0 +it 08_non-res 2 287 2030 0.0 0.0 +it 09_hydro_pump 2 287 2030 0.0 0.0 +it 01_solar 2 288 2030 1.0 0.0 +it 02_wind_on 2 288 2030 1.0 0.0 +it 03_wind_off 2 288 2030 1.0 0.0 +it 04_res 2 288 2030 1.0 0.0 +it 05_nuclear 2 288 2030 1.0 0.0 +it 06_coal 2 288 2030 1.0 0.0 +it 07_gas 2 288 2030 0.0 0.0 +it 08_non-res 2 288 2030 0.0 0.0 +it 09_hydro_pump 2 288 2030 0.0 0.0 +it 01_solar 2 289 2030 1.0 0.0 +it 02_wind_on 2 289 2030 1.0 0.0 +it 03_wind_off 2 289 2030 1.0 0.0 +it 04_res 2 289 2030 1.0 0.0 +it 05_nuclear 2 289 2030 1.0 0.0 +it 06_coal 2 289 2030 1.0 0.0 +it 07_gas 2 289 2030 0.0 0.0 +it 08_non-res 2 289 2030 0.0 0.0 +it 09_hydro_pump 2 289 2030 0.0 0.0 +it 01_solar 2 290 2030 1.0 0.0 +it 02_wind_on 2 290 2030 1.0 0.0 +it 03_wind_off 2 290 2030 1.0 0.0 +it 04_res 2 290 2030 1.0 0.0 +it 05_nuclear 2 290 2030 1.0 0.0 +it 06_coal 2 290 2030 1.0 0.0 +it 07_gas 2 290 2030 1.0 0.0 +it 08_non-res 2 290 2030 0.0 0.0 +it 09_hydro_pump 2 290 2030 0.0 0.0 +it 01_solar 2 291 2030 1.0 0.0 +it 02_wind_on 2 291 2030 1.0 0.0 +it 03_wind_off 2 291 2030 1.0 0.0 +it 04_res 2 291 2030 1.0 0.0 +it 05_nuclear 2 291 2030 1.0 0.0 +it 06_coal 2 291 2030 1.0 0.0 +it 07_gas 2 291 2030 1.0 0.0 +it 08_non-res 2 291 2030 0.0 0.0 +it 09_hydro_pump 2 291 2030 0.0 0.0 +it 01_solar 2 292 2030 1.0 0.0 +it 02_wind_on 2 292 2030 1.0 0.0 +it 03_wind_off 2 292 2030 1.0 0.0 +it 04_res 2 292 2030 1.0 0.0 +it 05_nuclear 2 292 2030 1.0 0.0 +it 06_coal 2 292 2030 1.0 0.0 +it 07_gas 2 292 2030 1.0 0.0 +it 08_non-res 2 292 2030 0.0 0.0 +it 09_hydro_pump 2 292 2030 0.0 0.0 +it 01_solar 2 293 2030 1.0 0.0 +it 02_wind_on 2 293 2030 1.0 0.0 +it 03_wind_off 2 293 2030 1.0 0.0 +it 04_res 2 293 2030 1.0 0.0 +it 05_nuclear 2 293 2030 1.0 0.0 +it 06_coal 2 293 2030 1.0 0.0 +it 07_gas 2 293 2030 1.0 0.0 +it 08_non-res 2 293 2030 0.0 0.0 +it 09_hydro_pump 2 293 2030 0.0 0.0 +it 01_solar 2 294 2030 1.0 0.0 +it 02_wind_on 2 294 2030 1.0 0.0 +it 03_wind_off 2 294 2030 1.0 0.0 +it 04_res 2 294 2030 1.0 0.0 +it 05_nuclear 2 294 2030 1.0 0.0 +it 06_coal 2 294 2030 1.0 0.0 +it 07_gas 2 294 2030 1.0 0.0 +it 08_non-res 2 294 2030 0.0 0.0 +it 09_hydro_pump 2 294 2030 0.0 0.0 +it 01_solar 2 295 2030 1.0 0.0 +it 02_wind_on 2 295 2030 1.0 0.0 +it 03_wind_off 2 295 2030 1.0 0.0 +it 04_res 2 295 2030 1.0 0.0 +it 05_nuclear 2 295 2030 1.0 0.0 +it 06_coal 2 295 2030 1.0 0.0 +it 07_gas 2 295 2030 1.0 0.0 +it 08_non-res 2 295 2030 0.0 0.0 +it 09_hydro_pump 2 295 2030 0.0 0.0 +it 01_solar 2 296 2030 1.0 0.0 +it 02_wind_on 2 296 2030 1.0 0.0 +it 03_wind_off 2 296 2030 1.0 0.0 +it 04_res 2 296 2030 1.0 0.0 +it 05_nuclear 2 296 2030 1.0 0.0 +it 06_coal 2 296 2030 1.0 0.0 +it 07_gas 2 296 2030 1.0 0.0 +it 08_non-res 2 296 2030 0.0 0.0 +it 09_hydro_pump 2 296 2030 0.0 0.0 +it 01_solar 2 297 2030 1.0 0.0 +it 02_wind_on 2 297 2030 1.0 0.0 +it 03_wind_off 2 297 2030 1.0 0.0 +it 04_res 2 297 2030 1.0 0.0 +it 05_nuclear 2 297 2030 1.0 0.0 +it 06_coal 2 297 2030 1.0 0.0 +it 07_gas 2 297 2030 1.0 0.0 +it 08_non-res 2 297 2030 0.0 0.0 +it 09_hydro_pump 2 297 2030 0.0 0.0 +it 01_solar 2 298 2030 1.0 0.0 +it 02_wind_on 2 298 2030 1.0 0.0 +it 03_wind_off 2 298 2030 1.0 0.0 +it 04_res 2 298 2030 1.0 0.0 +it 05_nuclear 2 298 2030 1.0 0.0 +it 06_coal 2 298 2030 1.0 0.0 +it 07_gas 2 298 2030 1.0 0.0 +it 08_non-res 2 298 2030 0.0 0.0 +it 09_hydro_pump 2 298 2030 0.0 0.0 +it 01_solar 2 299 2030 1.0 0.0 +it 02_wind_on 2 299 2030 1.0 0.0 +it 03_wind_off 2 299 2030 1.0 0.0 +it 04_res 2 299 2030 1.0 0.0 +it 05_nuclear 2 299 2030 1.0 0.0 +it 06_coal 2 299 2030 1.0 0.0 +it 07_gas 2 299 2030 1.0 0.0 +it 08_non-res 2 299 2030 0.0 0.0 +it 09_hydro_pump 2 299 2030 0.0 0.0 +it 01_solar 2 300 2030 1.0 0.0 +it 02_wind_on 2 300 2030 1.0 0.0 +it 03_wind_off 2 300 2030 1.0 0.0 +it 04_res 2 300 2030 1.0 0.0 +it 05_nuclear 2 300 2030 1.0 0.0 +it 06_coal 2 300 2030 1.0 0.0 +it 07_gas 2 300 2030 1.0 0.0 +it 08_non-res 2 300 2030 0.0 0.0 +it 09_hydro_pump 2 300 2030 0.0 0.0 +it 01_solar 2 301 2030 1.0 0.0 +it 02_wind_on 2 301 2030 1.0 0.0 +it 03_wind_off 2 301 2030 1.0 0.0 +it 04_res 2 301 2030 1.0 0.0 +it 05_nuclear 2 301 2030 1.0 0.0 +it 06_coal 2 301 2030 1.0 0.0 +it 07_gas 2 301 2030 1.0 0.0 +it 08_non-res 2 301 2030 0.0 0.0 +it 09_hydro_pump 2 301 2030 0.0 0.0 +it 01_solar 2 302 2030 1.0 0.0 +it 02_wind_on 2 302 2030 1.0 0.0 +it 03_wind_off 2 302 2030 1.0 0.0 +it 04_res 2 302 2030 1.0 0.0 +it 05_nuclear 2 302 2030 1.0 0.0 +it 06_coal 2 302 2030 1.0 0.0 +it 07_gas 2 302 2030 1.0 0.0 +it 08_non-res 2 302 2030 0.0 0.0 +it 09_hydro_pump 2 302 2030 0.0 0.0 +it 01_solar 2 303 2030 1.0 0.0 +it 02_wind_on 2 303 2030 1.0 0.0 +it 03_wind_off 2 303 2030 1.0 0.0 +it 04_res 2 303 2030 1.0 0.0 +it 05_nuclear 2 303 2030 1.0 0.0 +it 06_coal 2 303 2030 1.0 0.0 +it 07_gas 2 303 2030 1.0 0.0 +it 08_non-res 2 303 2030 0.0 0.0 +it 09_hydro_pump 2 303 2030 0.0 0.0 +it 01_solar 2 304 2030 1.0 0.0 +it 02_wind_on 2 304 2030 1.0 0.0 +it 03_wind_off 2 304 2030 1.0 0.0 +it 04_res 2 304 2030 1.0 0.0 +it 05_nuclear 2 304 2030 1.0 0.0 +it 06_coal 2 304 2030 1.0 0.0 +it 07_gas 2 304 2030 1.0 0.0 +it 08_non-res 2 304 2030 0.0 0.0 +it 09_hydro_pump 2 304 2030 0.0 0.0 +it 01_solar 2 305 2030 1.0 0.0 +it 02_wind_on 2 305 2030 1.0 0.0 +it 03_wind_off 2 305 2030 1.0 0.0 +it 04_res 2 305 2030 1.0 0.0 +it 05_nuclear 2 305 2030 1.0 0.0 +it 06_coal 2 305 2030 1.0 0.0 +it 07_gas 2 305 2030 1.0 0.0 +it 08_non-res 2 305 2030 0.0 0.0 +it 09_hydro_pump 2 305 2030 0.0 0.0 +it 01_solar 2 306 2030 1.0 0.0 +it 02_wind_on 2 306 2030 1.0 0.0 +it 03_wind_off 2 306 2030 1.0 0.0 +it 04_res 2 306 2030 1.0 0.0 +it 05_nuclear 2 306 2030 1.0 0.0 +it 06_coal 2 306 2030 1.0 0.0 +it 07_gas 2 306 2030 1.0 0.0 +it 08_non-res 2 306 2030 0.0 0.0 +it 09_hydro_pump 2 306 2030 0.0 0.0 +it 01_solar 2 307 2030 1.0 0.0 +it 02_wind_on 2 307 2030 1.0 0.0 +it 03_wind_off 2 307 2030 1.0 0.0 +it 04_res 2 307 2030 1.0 0.0 +it 05_nuclear 2 307 2030 1.0 0.0 +it 06_coal 2 307 2030 1.0 0.0 +it 07_gas 2 307 2030 1.0 0.0 +it 08_non-res 2 307 2030 0.0 0.0 +it 09_hydro_pump 2 307 2030 0.0 0.0 +it 01_solar 2 308 2030 1.0 0.0 +it 02_wind_on 2 308 2030 1.0 0.0 +it 03_wind_off 2 308 2030 1.0 0.0 +it 04_res 2 308 2030 1.0 0.0 +it 05_nuclear 2 308 2030 1.0 0.0 +it 06_coal 2 308 2030 1.0 0.0 +it 07_gas 2 308 2030 1.0 0.0 +it 08_non-res 2 308 2030 0.0 0.0 +it 09_hydro_pump 2 308 2030 0.0 0.0 +it 01_solar 2 309 2030 1.0 0.0 +it 02_wind_on 2 309 2030 1.0 0.0 +it 03_wind_off 2 309 2030 1.0 0.0 +it 04_res 2 309 2030 1.0 0.0 +it 05_nuclear 2 309 2030 1.0 0.0 +it 06_coal 2 309 2030 1.0 0.0 +it 07_gas 2 309 2030 1.0 0.0 +it 08_non-res 2 309 2030 0.0 0.0 +it 09_hydro_pump 2 309 2030 0.0 0.0 +it 01_solar 2 310 2030 1.0 0.0 +it 02_wind_on 2 310 2030 1.0 0.0 +it 03_wind_off 2 310 2030 1.0 0.0 +it 04_res 2 310 2030 1.0 0.0 +it 05_nuclear 2 310 2030 1.0 0.0 +it 06_coal 2 310 2030 1.0 0.0 +it 07_gas 2 310 2030 1.0 0.0 +it 08_non-res 2 310 2030 1.0 0.0 +it 09_hydro_pump 2 310 2030 0.0 0.0 +it 01_solar 2 311 2030 1.0 0.0 +it 02_wind_on 2 311 2030 1.0 0.0 +it 03_wind_off 2 311 2030 1.0 0.0 +it 04_res 2 311 2030 1.0 0.0 +it 05_nuclear 2 311 2030 1.0 0.0 +it 06_coal 2 311 2030 1.0 0.0 +it 07_gas 2 311 2030 1.0 0.0 +it 08_non-res 2 311 2030 1.0 0.0 +it 09_hydro_pump 2 311 2030 0.0 0.0 +it 01_solar 2 312 2030 1.0 0.0 +it 02_wind_on 2 312 2030 1.0 0.0 +it 03_wind_off 2 312 2030 1.0 0.0 +it 04_res 2 312 2030 1.0 0.0 +it 05_nuclear 2 312 2030 1.0 0.0 +it 06_coal 2 312 2030 1.0 0.0 +it 07_gas 2 312 2030 1.0 0.0 +it 08_non-res 2 312 2030 1.0 0.0 +it 09_hydro_pump 2 312 2030 0.0 0.0 +it 01_solar 2 313 2030 1.0 0.0 +it 02_wind_on 2 313 2030 1.0 0.0 +it 03_wind_off 2 313 2030 1.0 0.0 +it 04_res 2 313 2030 1.0 0.0 +it 05_nuclear 2 313 2030 1.0 0.0 +it 06_coal 2 313 2030 1.0 0.0 +it 07_gas 2 313 2030 1.0 0.0 +it 08_non-res 2 313 2030 1.0 0.0 +it 09_hydro_pump 2 313 2030 0.0 0.0 +it 01_solar 2 314 2030 1.0 0.0 +it 02_wind_on 2 314 2030 1.0 0.0 +it 03_wind_off 2 314 2030 1.0 0.0 +it 04_res 2 314 2030 1.0 0.0 +it 05_nuclear 2 314 2030 1.0 0.0 +it 06_coal 2 314 2030 1.0 0.0 +it 07_gas 2 314 2030 1.0 0.0 +it 08_non-res 2 314 2030 1.0 0.0 +it 09_hydro_pump 2 314 2030 0.0 0.0 +it 01_solar 2 315 2030 1.0 0.0 +it 02_wind_on 2 315 2030 1.0 0.0 +it 03_wind_off 2 315 2030 1.0 0.0 +it 04_res 2 315 2030 1.0 0.0 +it 05_nuclear 2 315 2030 1.0 0.0 +it 06_coal 2 315 2030 1.0 0.0 +it 07_gas 2 315 2030 1.0 0.0 +it 08_non-res 2 315 2030 1.0 0.0 +it 09_hydro_pump 2 315 2030 0.0 0.0 +it 01_solar 2 316 2030 1.0 0.0 +it 02_wind_on 2 316 2030 1.0 0.0 +it 03_wind_off 2 316 2030 1.0 0.0 +it 04_res 2 316 2030 1.0 0.0 +it 05_nuclear 2 316 2030 1.0 0.0 +it 06_coal 2 316 2030 1.0 0.0 +it 07_gas 2 316 2030 1.0 0.0 +it 08_non-res 2 316 2030 1.0 0.0 +it 09_hydro_pump 2 316 2030 0.0 0.0 +it 01_solar 2 317 2030 1.0 0.0 +it 02_wind_on 2 317 2030 1.0 0.0 +it 03_wind_off 2 317 2030 1.0 0.0 +it 04_res 2 317 2030 1.0 0.0 +it 05_nuclear 2 317 2030 1.0 0.0 +it 06_coal 2 317 2030 1.0 0.0 +it 07_gas 2 317 2030 1.0 0.0 +it 08_non-res 2 317 2030 1.0 0.0 +it 09_hydro_pump 2 317 2030 0.0 0.0 +it 01_solar 2 318 2030 1.0 0.0 +it 02_wind_on 2 318 2030 1.0 0.0 +it 03_wind_off 2 318 2030 1.0 0.0 +it 04_res 2 318 2030 1.0 0.0 +it 05_nuclear 2 318 2030 1.0 0.0 +it 06_coal 2 318 2030 1.0 0.0 +it 07_gas 2 318 2030 1.0 0.0 +it 08_non-res 2 318 2030 1.0 0.0 +it 09_hydro_pump 2 318 2030 0.0 0.0 +it 01_solar 2 319 2030 1.0 0.0 +it 02_wind_on 2 319 2030 1.0 0.0 +it 03_wind_off 2 319 2030 1.0 0.0 +it 04_res 2 319 2030 1.0 0.0 +it 05_nuclear 2 319 2030 1.0 0.0 +it 06_coal 2 319 2030 1.0 0.0 +it 07_gas 2 319 2030 1.0 0.0 +it 08_non-res 2 319 2030 1.0 0.0 +it 09_hydro_pump 2 319 2030 0.0 0.0 +it 01_solar 2 320 2030 1.0 0.0 +it 02_wind_on 2 320 2030 1.0 0.0 +it 03_wind_off 2 320 2030 1.0 0.0 +it 04_res 2 320 2030 1.0 0.0 +it 05_nuclear 2 320 2030 1.0 0.0 +it 06_coal 2 320 2030 1.0 0.0 +it 07_gas 2 320 2030 1.0 0.0 +it 08_non-res 2 320 2030 1.0 0.0 +it 09_hydro_pump 2 320 2030 0.0 0.0 +it 01_solar 2 321 2030 1.0 0.0 +it 02_wind_on 2 321 2030 1.0 0.0 +it 03_wind_off 2 321 2030 1.0 0.0 +it 04_res 2 321 2030 1.0 0.0 +it 05_nuclear 2 321 2030 1.0 0.0 +it 06_coal 2 321 2030 1.0 0.0 +it 07_gas 2 321 2030 1.0 0.0 +it 08_non-res 2 321 2030 1.0 0.0 +it 09_hydro_pump 2 321 2030 0.0 0.0 +it 01_solar 2 322 2030 1.0 0.0 +it 02_wind_on 2 322 2030 1.0 0.0 +it 03_wind_off 2 322 2030 1.0 0.0 +it 04_res 2 322 2030 1.0 0.0 +it 05_nuclear 2 322 2030 1.0 0.0 +it 06_coal 2 322 2030 1.0 0.0 +it 07_gas 2 322 2030 1.0 0.0 +it 08_non-res 2 322 2030 1.0 0.0 +it 09_hydro_pump 2 322 2030 0.0 0.0 +it 01_solar 2 323 2030 1.0 0.0 +it 02_wind_on 2 323 2030 1.0 0.0 +it 03_wind_off 2 323 2030 1.0 0.0 +it 04_res 2 323 2030 1.0 0.0 +it 05_nuclear 2 323 2030 1.0 0.0 +it 06_coal 2 323 2030 1.0 0.0 +it 07_gas 2 323 2030 1.0 0.0 +it 08_non-res 2 323 2030 1.0 0.0 +it 09_hydro_pump 2 323 2030 0.0 0.0 +it 01_solar 2 324 2030 1.0 0.0 +it 02_wind_on 2 324 2030 1.0 0.0 +it 03_wind_off 2 324 2030 1.0 0.0 +it 04_res 2 324 2030 1.0 0.0 +it 05_nuclear 2 324 2030 1.0 0.0 +it 06_coal 2 324 2030 1.0 0.0 +it 07_gas 2 324 2030 1.0 0.0 +it 08_non-res 2 324 2030 1.0 0.0 +it 09_hydro_pump 2 324 2030 0.0 0.0 +it 01_solar 2 325 2030 1.0 0.0 +it 02_wind_on 2 325 2030 1.0 0.0 +it 03_wind_off 2 325 2030 1.0 0.0 +it 04_res 2 325 2030 1.0 0.0 +it 05_nuclear 2 325 2030 1.0 0.0 +it 06_coal 2 325 2030 1.0 0.0 +it 07_gas 2 325 2030 1.0 0.0 +it 08_non-res 2 325 2030 1.0 0.0 +it 09_hydro_pump 2 325 2030 0.0 0.0 +it 01_solar 2 326 2030 1.0 0.0 +it 02_wind_on 2 326 2030 1.0 0.0 +it 03_wind_off 2 326 2030 1.0 0.0 +it 04_res 2 326 2030 1.0 0.0 +it 05_nuclear 2 326 2030 1.0 0.0 +it 06_coal 2 326 2030 1.0 0.0 +it 07_gas 2 326 2030 1.0 0.0 +it 08_non-res 2 326 2030 1.0 0.0 +it 09_hydro_pump 2 326 2030 0.0 0.0 +it 01_solar 2 327 2030 1.0 0.0 +it 02_wind_on 2 327 2030 1.0 0.0 +it 03_wind_off 2 327 2030 1.0 0.0 +it 04_res 2 327 2030 1.0 0.0 +it 05_nuclear 2 327 2030 1.0 0.0 +it 06_coal 2 327 2030 1.0 0.0 +it 07_gas 2 327 2030 1.0 0.0 +it 08_non-res 2 327 2030 1.0 0.0 +it 09_hydro_pump 2 327 2030 0.0 0.0 +it 01_solar 2 328 2030 1.0 0.0 +it 02_wind_on 2 328 2030 1.0 0.0 +it 03_wind_off 2 328 2030 1.0 0.0 +it 04_res 2 328 2030 1.0 0.0 +it 05_nuclear 2 328 2030 1.0 0.0 +it 06_coal 2 328 2030 1.0 0.0 +it 07_gas 2 328 2030 1.0 0.0 +it 08_non-res 2 328 2030 1.0 0.0 +it 09_hydro_pump 2 328 2030 0.0 0.0 +it 01_solar 2 329 2030 1.0 0.0 +it 02_wind_on 2 329 2030 1.0 0.0 +it 03_wind_off 2 329 2030 1.0 0.0 +it 04_res 2 329 2030 1.0 0.0 +it 05_nuclear 2 329 2030 1.0 0.0 +it 06_coal 2 329 2030 1.0 0.0 +it 07_gas 2 329 2030 1.0 0.0 +it 08_non-res 2 329 2030 1.0 0.0 +it 09_hydro_pump 2 329 2030 0.0 0.0 +it 01_solar 2 330 2030 1.0 0.0 +it 02_wind_on 2 330 2030 1.0 0.0 +it 03_wind_off 2 330 2030 1.0 0.0 +it 04_res 2 330 2030 1.0 0.0 +it 05_nuclear 2 330 2030 1.0 0.0 +it 06_coal 2 330 2030 1.0 0.0 +it 07_gas 2 330 2030 1.0 0.0 +it 08_non-res 2 330 2030 1.0 0.0 +it 09_hydro_pump 2 330 2030 1.0 0.0 +it 01_solar 2 331 2030 1.0 0.0 +it 02_wind_on 2 331 2030 1.0 0.0 +it 03_wind_off 2 331 2030 1.0 0.0 +it 04_res 2 331 2030 1.0 0.0 +it 05_nuclear 2 331 2030 1.0 0.0 +it 06_coal 2 331 2030 1.0 0.0 +it 07_gas 2 331 2030 1.0 0.0 +it 08_non-res 2 331 2030 1.0 0.0 +it 09_hydro_pump 2 331 2030 1.0 0.0 +it 01_solar 2 332 2030 1.0 0.0 +it 02_wind_on 2 332 2030 1.0 0.0 +it 03_wind_off 2 332 2030 1.0 0.0 +it 04_res 2 332 2030 1.0 0.0 +it 05_nuclear 2 332 2030 1.0 0.0 +it 06_coal 2 332 2030 1.0 0.0 +it 07_gas 2 332 2030 1.0 0.0 +it 08_non-res 2 332 2030 1.0 0.0 +it 09_hydro_pump 2 332 2030 1.0 0.0 +it 01_solar 2 333 2030 1.0 0.0 +it 02_wind_on 2 333 2030 1.0 0.0 +it 03_wind_off 2 333 2030 1.0 0.0 +it 04_res 2 333 2030 1.0 0.0 +it 05_nuclear 2 333 2030 1.0 0.0 +it 06_coal 2 333 2030 1.0 0.0 +it 07_gas 2 333 2030 1.0 0.0 +it 08_non-res 2 333 2030 1.0 0.0 +it 09_hydro_pump 2 333 2030 1.0 0.0 +it 01_solar 2 334 2030 1.0 0.0 +it 02_wind_on 2 334 2030 1.0 0.0 +it 03_wind_off 2 334 2030 1.0 0.0 +it 04_res 2 334 2030 1.0 0.0 +it 05_nuclear 2 334 2030 1.0 0.0 +it 06_coal 2 334 2030 1.0 0.0 +it 07_gas 2 334 2030 1.0 0.0 +it 08_non-res 2 334 2030 1.0 0.0 +it 09_hydro_pump 2 334 2030 1.0 0.0 +it 01_solar 2 335 2030 1.0 0.0 +it 02_wind_on 2 335 2030 1.0 0.0 +it 03_wind_off 2 335 2030 1.0 0.0 +it 04_res 2 335 2030 1.0 0.0 +it 05_nuclear 2 335 2030 1.0 0.0 +it 06_coal 2 335 2030 1.0 0.0 +it 07_gas 2 335 2030 1.0 0.0 +it 08_non-res 2 335 2030 1.0 0.0 +it 09_hydro_pump 2 335 2030 1.0 0.0 +it 01_solar 2 336 2030 1.0 0.0 +it 02_wind_on 2 336 2030 1.0 0.0 +it 03_wind_off 2 336 2030 1.0 0.0 +it 04_res 2 336 2030 1.0 0.0 +it 05_nuclear 2 336 2030 1.0 0.0 +it 06_coal 2 336 2030 1.0 0.0 +it 07_gas 2 336 2030 1.0 0.0 +it 08_non-res 2 336 2030 1.0 0.0 +it 09_hydro_pump 2 336 2030 1.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-08-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-08-all.result.tsv new file mode 100644 index 0000000000..565b614f8e --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_areas_raw_data/test-08-all.result.tsv @@ -0,0 +1,19 @@ +area cluster timeId time NODU NP Cost - Euro +de 01_solar 1 2030 167.0 0.0 +de 02_wind_on 1 2030 147.0 0.0 +de 03_wind_off 1 2030 127.0 0.0 +de 04_res 1 2030 107.0 0.0 +de 05_nuclear 1 2030 87.0 0.0 +de 06_coal 1 2030 67.0 0.0 +de 07_gas 1 2030 47.0 0.0 +de 08_non-res 1 2030 27.0 0.0 +de 09_hydro_pump 1 2030 7.0 0.0 +es 01_solar 1 2030 167.0 0.0 +es 02_wind_on 1 2030 147.0 0.0 +es 03_wind_off 1 2030 127.0 0.0 +es 04_res 1 2030 107.0 0.0 +es 05_nuclear 1 2030 87.0 0.0 +es 06_coal 1 2030 67.0 0.0 +es 07_gas 1 2030 47.0 0.0 +es 08_non-res 1 2030 27.0 0.0 +es 09_hydro_pump 1 2030 7.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-01-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-01-all.result.tsv new file mode 100644 index 0000000000..a7e863a3ee --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-01-all.result.tsv @@ -0,0 +1,365 @@ +link timeId time FLOW LIN. EXP FLOW LIN. STD FLOW LIN. MIN FLOW LIN. MAX UCAP LIN. EXP UCAP LIN. STD UCAP LIN. MIN UCAP LIN. MAX LOOP FLOW VALUES FLOW QUAD. VALUES CONG. FEE (ALG.) EXP CONG. FEE (ALG.) STD CONG. FEE (ALG.) MIN CONG. FEE (ALG.) MAX CONG. FEE (ABS.) EXP CONG. FEE (ABS.) STD CONG. FEE (ABS.) MIN CONG. FEE (ABS.) MAX MARG. COST EXP MARG. COST STD MARG. COST MIN MARG. COST MAX CONG. PROB + VALUES CONG. PROB - VALUES HURDLE COST EXP HURDLE COST STD HURDLE COST MIN HURDLE COST MAX +de - fr 1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 11 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 12 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 13 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 14 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 16 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 17 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 18 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 19 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 21 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 22 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 23 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 24 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 26 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 27 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 28 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 29 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 31 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 34 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 35 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 36 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 37 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 38 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 39 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 40 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 41 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 42 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 43 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 44 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 45 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 46 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 47 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 48 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 49 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 50 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 51 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 52 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 53 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 54 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 55 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 56 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 57 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 58 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 59 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 60 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 61 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 62 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 63 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 65 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 66 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 68 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 69 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 70 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 71 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 72 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 73 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 74 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 75 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 76 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 77 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 78 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 79 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 80 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 81 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 82 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 83 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 84 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 85 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 86 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 87 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 88 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 89 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 90 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 91 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 92 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 93 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 94 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 95 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 96 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 97 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 98 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 99 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 100 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 101 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 102 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 103 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 104 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 105 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 106 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 107 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 108 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 109 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 110 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 111 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 112 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 113 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 114 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 115 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 116 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 117 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 118 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 119 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 120 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 121 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 122 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 123 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 124 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 125 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 126 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 127 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 128 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 129 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 130 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 131 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 132 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 133 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 134 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 135 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 136 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 137 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 138 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 139 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 140 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 141 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 142 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 143 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 144 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 145 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 146 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 147 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 148 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 149 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 150 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 151 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 152 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 153 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 154 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 155 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 156 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 157 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 158 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 159 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 160 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 161 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 162 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 163 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 164 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 165 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 166 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 167 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 168 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 169 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 170 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 171 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 172 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 173 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 174 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 175 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 176 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 177 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 178 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 179 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 180 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 181 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 182 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 183 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 184 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 185 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 186 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 187 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 188 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 189 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 190 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 191 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 192 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 193 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 194 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 195 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 196 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 197 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 198 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 199 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 200 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 201 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 202 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 203 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 204 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 205 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 206 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 207 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 208 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 209 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 210 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 211 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 212 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 213 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 214 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 215 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 216 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 217 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 218 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 219 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 220 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 221 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 222 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 223 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 224 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 225 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 226 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 227 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 228 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 229 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 230 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 231 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 232 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 233 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 234 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 235 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 236 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 237 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 238 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 239 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 240 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 241 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 242 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 243 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 244 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 245 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 246 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 247 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 248 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 249 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 250 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 251 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 252 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 253 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 254 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 255 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 256 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 257 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 258 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 259 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 260 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 261 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 262 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 263 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 264 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 265 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 266 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 267 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 268 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 269 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 270 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 271 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 272 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 273 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 274 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 275 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 276 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 277 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 278 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 279 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 280 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 281 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 282 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 283 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 284 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 285 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 286 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 287 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 288 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 289 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 290 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 291 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 292 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 293 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 294 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 295 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 296 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 297 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 298 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 299 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 300 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 301 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 302 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 303 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 304 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 305 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 306 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 307 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 308 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 309 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 310 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 311 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 312 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 313 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 314 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 315 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 316 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 317 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 318 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 319 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 320 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 321 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 322 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 323 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 324 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 325 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 326 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 327 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 328 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 329 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 330 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 331 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 332 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 333 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 334 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 335 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 336 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 337 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 338 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 339 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 340 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 341 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 343 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 344 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 345 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 346 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 347 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 348 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 349 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 350 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 351 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 352 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 353 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 354 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 355 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 356 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 357 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 358 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 359 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 360 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 361 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 362 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 363 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 364 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-02-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-02-all.result.tsv new file mode 100644 index 0000000000..c57daa2450 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-02-all.result.tsv @@ -0,0 +1,13 @@ +link timeId time FLOW LIN. EXP FLOW LIN. STD FLOW LIN. MIN FLOW LIN. MAX UCAP LIN. EXP UCAP LIN. STD UCAP LIN. MIN UCAP LIN. MAX LOOP FLOW VALUES FLOW QUAD. VALUES CONG. FEE (ALG.) EXP CONG. FEE (ALG.) STD CONG. FEE (ALG.) MIN CONG. FEE (ALG.) MAX CONG. FEE (ABS.) EXP CONG. FEE (ABS.) STD CONG. FEE (ABS.) MIN CONG. FEE (ABS.) MAX MARG. COST EXP MARG. COST STD MARG. COST MIN MARG. COST MAX CONG. PROB + VALUES CONG. PROB - VALUES HURDLE COST EXP HURDLE COST STD HURDLE COST MIN HURDLE COST MAX +de - fr 1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 11 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 12 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-03-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-03-all.result.tsv new file mode 100644 index 0000000000..a7e863a3ee --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-03-all.result.tsv @@ -0,0 +1,365 @@ +link timeId time FLOW LIN. EXP FLOW LIN. STD FLOW LIN. MIN FLOW LIN. MAX UCAP LIN. EXP UCAP LIN. STD UCAP LIN. MIN UCAP LIN. MAX LOOP FLOW VALUES FLOW QUAD. VALUES CONG. FEE (ALG.) EXP CONG. FEE (ALG.) STD CONG. FEE (ALG.) MIN CONG. FEE (ALG.) MAX CONG. FEE (ABS.) EXP CONG. FEE (ABS.) STD CONG. FEE (ABS.) MIN CONG. FEE (ABS.) MAX MARG. COST EXP MARG. COST STD MARG. COST MIN MARG. COST MAX CONG. PROB + VALUES CONG. PROB - VALUES HURDLE COST EXP HURDLE COST STD HURDLE COST MIN HURDLE COST MAX +de - fr 1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 11 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 12 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 13 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 14 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 16 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 17 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 18 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 19 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 21 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 22 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 23 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 24 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 26 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 27 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 28 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 29 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 31 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 33 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 34 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 35 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 36 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 37 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 38 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 39 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 40 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 41 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 42 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 43 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 44 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 45 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 46 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 47 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 48 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 49 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 50 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 51 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 52 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 53 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 54 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 55 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 56 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 57 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 58 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 59 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 60 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 61 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 62 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 63 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 65 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 66 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 67 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 68 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 69 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 70 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 71 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 72 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 73 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 74 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 75 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 76 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 77 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 78 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 79 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 80 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 81 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 82 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 83 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 84 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 85 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 86 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 87 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 88 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 89 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 90 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 91 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 92 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 93 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 94 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 95 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 96 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 97 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 98 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 99 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 100 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 101 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 102 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 103 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 104 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 105 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 106 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 107 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 108 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 109 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 110 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 111 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 112 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 113 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 114 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 115 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 116 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 117 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 118 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 119 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 120 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 121 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 122 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 123 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 124 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 125 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 126 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 127 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 128 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 129 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 130 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 131 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 132 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 133 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 134 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 135 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 136 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 137 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 138 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 139 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 140 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 141 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 142 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 143 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 144 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 145 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 146 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 147 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 148 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 149 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 150 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 151 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 152 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 153 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 154 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 155 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 156 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 157 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 158 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 159 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 160 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 161 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 162 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 163 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 164 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 165 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 166 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 167 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 168 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 169 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 170 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 171 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 172 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 173 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 174 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 175 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 176 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 177 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 178 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 179 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 180 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 181 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 182 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 183 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 184 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 185 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 186 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 187 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 188 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 189 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 190 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 191 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 192 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 193 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 194 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 195 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 196 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 197 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 198 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 199 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 200 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 201 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 202 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 203 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 204 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 205 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 206 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 207 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 208 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 209 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 210 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 211 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 212 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 213 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 214 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 215 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 216 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 217 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 218 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 219 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 220 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 221 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 222 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 223 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 224 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 225 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 226 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 227 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 228 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 229 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 230 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 231 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 232 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 233 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 234 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 235 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 236 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 237 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 238 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 239 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 240 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 241 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 242 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 243 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 244 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 245 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 246 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 247 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 248 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 249 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 250 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 251 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 252 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 253 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 254 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 255 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 256 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 257 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 258 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 259 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 260 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 261 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 262 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 263 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 264 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 265 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 266 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 267 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 268 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 269 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 270 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 271 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 272 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 273 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 274 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 275 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 276 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 277 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 278 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 279 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 280 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 281 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 282 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 283 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 284 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 285 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 286 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 287 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 288 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 289 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 290 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 291 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 292 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 293 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 294 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 295 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 296 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 297 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 298 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 299 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 300 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 301 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 302 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 303 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 304 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 305 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 306 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 307 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 308 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 309 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 310 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 311 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 312 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 313 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 314 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 315 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 316 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 317 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 318 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 319 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 320 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 321 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 322 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 323 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 324 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 325 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 326 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 327 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 328 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 329 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 330 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 331 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 332 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 333 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 334 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 335 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 336 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 337 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 338 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 339 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 340 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 341 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 343 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 344 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 345 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 346 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 347 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 348 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 349 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 350 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 351 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 352 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 353 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 354 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 355 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 356 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 357 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 358 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 359 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 360 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 361 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 362 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 363 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 364 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-04-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-04-all.result.tsv new file mode 100644 index 0000000000..c57daa2450 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-04-all.result.tsv @@ -0,0 +1,13 @@ +link timeId time FLOW LIN. EXP FLOW LIN. STD FLOW LIN. MIN FLOW LIN. MAX UCAP LIN. EXP UCAP LIN. STD UCAP LIN. MIN UCAP LIN. MAX LOOP FLOW VALUES FLOW QUAD. VALUES CONG. FEE (ALG.) EXP CONG. FEE (ALG.) STD CONG. FEE (ALG.) MIN CONG. FEE (ALG.) MAX CONG. FEE (ABS.) EXP CONG. FEE (ABS.) STD CONG. FEE (ABS.) MIN CONG. FEE (ABS.) MAX MARG. COST EXP MARG. COST STD MARG. COST MIN MARG. COST MAX CONG. PROB + VALUES CONG. PROB - VALUES HURDLE COST EXP HURDLE COST STD HURDLE COST MIN HURDLE COST MAX +de - fr 1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 11 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +de - fr 12 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-05-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-05-all.result.tsv new file mode 100644 index 0000000000..504ad467d7 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-05-all.result.tsv @@ -0,0 +1,365 @@ +link timeId time FLOW LIN. MIN FLOW LIN. MAX UCAP LIN. MIN UCAP LIN. MAX CONG. FEE (ALG.) MIN CONG. FEE (ALG.) MAX CONG. FEE (ABS.) MIN CONG. FEE (ABS.) MAX MARG. COST MIN MARG. COST MAX HURDLE COST MIN HURDLE COST MAX +de - fr 1 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 2 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 3 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 4 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 5 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 6 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 7 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 8 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 9 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 10 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 11 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 12 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 13 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 14 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 15 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 16 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 17 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 18 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 19 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 20 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 21 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 22 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 23 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 24 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 25 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 26 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 27 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 28 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 29 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 30 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 31 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 32 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 33 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 34 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 35 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 36 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 37 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 38 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 39 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 40 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 41 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 42 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 43 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 44 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 45 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 46 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 47 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 48 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 49 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 50 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 51 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 52 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 53 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 54 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 55 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 56 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 57 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 58 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 59 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 60 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 61 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 62 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 63 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 64 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 65 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 66 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 67 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 68 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 69 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 70 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 71 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 72 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 73 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 74 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 75 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 76 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 77 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 78 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 79 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 80 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 81 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 82 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 83 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 84 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 85 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 86 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 87 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 88 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 89 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 90 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 91 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 92 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 93 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 94 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 95 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 96 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 97 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 98 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 99 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 100 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 101 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 102 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 103 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 104 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 105 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 106 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 107 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 108 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 109 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 110 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 111 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 112 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 113 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 114 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 115 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 116 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 117 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 118 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 119 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 120 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 121 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 122 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 123 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 124 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 125 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 126 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 127 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 128 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 129 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 130 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 131 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 132 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 133 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 134 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 135 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 136 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 137 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 138 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 139 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 140 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 141 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 142 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 143 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 144 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 145 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 146 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 147 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 148 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 149 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 150 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 151 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 152 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 153 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 154 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 155 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 156 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 157 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 158 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 159 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 160 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 161 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 162 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 163 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 164 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 165 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 166 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 167 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 168 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 169 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 170 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 171 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 172 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 173 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 174 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 175 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 176 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 177 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 178 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 179 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 180 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 181 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 182 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 183 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 184 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 185 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 186 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 187 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 188 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 189 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 190 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 191 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 192 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 193 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 194 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 195 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 196 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 197 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 198 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 199 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 200 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 201 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 202 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 203 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 204 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 205 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 206 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 207 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 208 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 209 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 210 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 211 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 212 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 213 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 214 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 215 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 216 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 217 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 218 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 219 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 220 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 221 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 222 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 223 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 224 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 225 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 226 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 227 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 228 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 229 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 230 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 231 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 232 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 233 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 234 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 235 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 236 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 237 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 238 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 239 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 240 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 241 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 242 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 243 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 244 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 245 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 246 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 247 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 248 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 249 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 250 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 251 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 252 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 253 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 254 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 255 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 256 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 257 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 258 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 259 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 260 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 261 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 262 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 263 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 264 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 265 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 266 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 267 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 268 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 269 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 270 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 271 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 272 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 273 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 274 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 275 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 276 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 277 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 278 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 279 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 280 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 281 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 282 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 283 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 284 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 285 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 286 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 287 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 288 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 289 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 290 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 291 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 292 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 293 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 294 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 295 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 296 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 297 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 298 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 299 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 300 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 301 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 302 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 303 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 304 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 305 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 306 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 307 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 308 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 309 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 310 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 311 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 312 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 313 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 314 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 315 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 316 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 317 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 318 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 319 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 320 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 321 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 322 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 323 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 324 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 325 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 326 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 327 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 328 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 329 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 330 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 331 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 332 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 333 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 334 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 335 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 336 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 337 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 338 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 339 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 340 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 341 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 342 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 343 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 344 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 345 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 346 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 347 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 348 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 349 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 350 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 351 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 352 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 353 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 354 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 355 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 356 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 357 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 358 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 359 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 360 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 361 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 362 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 363 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 +de - fr 364 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-05.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-05.result.tsv new file mode 100644 index 0000000000..0e9a836a1c --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-05.result.tsv @@ -0,0 +1,2017 @@ +link mcYear timeId time MARG. COST CONG. PROB + +de - fr 1 1 2030 0.0 0.0 +de - fr 1 2 2030 0.0 0.0 +de - fr 1 3 2030 0.0 0.0 +de - fr 1 4 2030 0.0 0.0 +de - fr 1 5 2030 0.0 0.0 +de - fr 1 6 2030 0.0 0.0 +de - fr 1 7 2030 0.0 0.0 +de - fr 1 8 2030 0.0 0.0 +de - fr 1 9 2030 0.0 0.0 +de - fr 1 10 2030 0.0 0.0 +de - fr 1 11 2030 0.0 0.0 +de - fr 1 12 2030 0.0 0.0 +de - fr 1 13 2030 0.0 0.0 +de - fr 1 14 2030 0.0 0.0 +de - fr 1 15 2030 0.0 0.0 +de - fr 1 16 2030 0.0 0.0 +de - fr 1 17 2030 0.0 0.0 +de - fr 1 18 2030 0.0 0.0 +de - fr 1 19 2030 0.0 0.0 +de - fr 1 20 2030 0.0 0.0 +de - fr 1 21 2030 0.0 0.0 +de - fr 1 22 2030 0.0 0.0 +de - fr 1 23 2030 0.0 0.0 +de - fr 1 24 2030 0.0 0.0 +de - fr 1 25 2030 0.0 0.0 +de - fr 1 26 2030 0.0 0.0 +de - fr 1 27 2030 0.0 0.0 +de - fr 1 28 2030 0.0 0.0 +de - fr 1 29 2030 0.0 0.0 +de - fr 1 30 2030 0.0 0.0 +de - fr 1 31 2030 0.0 0.0 +de - fr 1 32 2030 0.0 0.0 +de - fr 1 33 2030 0.0 0.0 +de - fr 1 34 2030 0.0 0.0 +de - fr 1 35 2030 0.0 0.0 +de - fr 1 36 2030 0.0 0.0 +de - fr 1 37 2030 0.0 0.0 +de - fr 1 38 2030 0.0 0.0 +de - fr 1 39 2030 0.0 0.0 +de - fr 1 40 2030 0.0 0.0 +de - fr 1 41 2030 0.0 0.0 +de - fr 1 42 2030 0.0 0.0 +de - fr 1 43 2030 0.0 0.0 +de - fr 1 44 2030 0.0 0.0 +de - fr 1 45 2030 0.0 0.0 +de - fr 1 46 2030 0.0 0.0 +de - fr 1 47 2030 0.0 0.0 +de - fr 1 48 2030 0.0 0.0 +de - fr 1 49 2030 0.0 0.0 +de - fr 1 50 2030 0.0 0.0 +de - fr 1 51 2030 0.0 0.0 +de - fr 1 52 2030 0.0 0.0 +de - fr 1 53 2030 0.0 0.0 +de - fr 1 54 2030 0.0 0.0 +de - fr 1 55 2030 0.0 0.0 +de - fr 1 56 2030 0.0 0.0 +de - fr 1 57 2030 0.0 0.0 +de - fr 1 58 2030 0.0 0.0 +de - fr 1 59 2030 0.0 0.0 +de - fr 1 60 2030 0.0 0.0 +de - fr 1 61 2030 0.0 0.0 +de - fr 1 62 2030 0.0 0.0 +de - fr 1 63 2030 0.0 0.0 +de - fr 1 64 2030 0.0 0.0 +de - fr 1 65 2030 0.0 0.0 +de - fr 1 66 2030 0.0 0.0 +de - fr 1 67 2030 0.0 0.0 +de - fr 1 68 2030 0.0 0.0 +de - fr 1 69 2030 0.0 0.0 +de - fr 1 70 2030 0.0 0.0 +de - fr 1 71 2030 0.0 0.0 +de - fr 1 72 2030 0.0 0.0 +de - fr 1 73 2030 0.0 0.0 +de - fr 1 74 2030 0.0 0.0 +de - fr 1 75 2030 0.0 0.0 +de - fr 1 76 2030 0.0 0.0 +de - fr 1 77 2030 0.0 0.0 +de - fr 1 78 2030 0.0 0.0 +de - fr 1 79 2030 0.0 0.0 +de - fr 1 80 2030 0.0 0.0 +de - fr 1 81 2030 0.0 0.0 +de - fr 1 82 2030 0.0 0.0 +de - fr 1 83 2030 0.0 0.0 +de - fr 1 84 2030 0.0 0.0 +de - fr 1 85 2030 0.0 0.0 +de - fr 1 86 2030 0.0 0.0 +de - fr 1 87 2030 0.0 0.0 +de - fr 1 88 2030 0.0 0.0 +de - fr 1 89 2030 0.0 0.0 +de - fr 1 90 2030 0.0 0.0 +de - fr 1 91 2030 0.0 0.0 +de - fr 1 92 2030 0.0 0.0 +de - fr 1 93 2030 0.0 0.0 +de - fr 1 94 2030 0.0 0.0 +de - fr 1 95 2030 0.0 0.0 +de - fr 1 96 2030 0.0 0.0 +de - fr 1 97 2030 0.0 0.0 +de - fr 1 98 2030 0.0 0.0 +de - fr 1 99 2030 0.0 0.0 +de - fr 1 100 2030 0.0 0.0 +de - fr 1 101 2030 0.0 0.0 +de - fr 1 102 2030 0.0 0.0 +de - fr 1 103 2030 0.0 0.0 +de - fr 1 104 2030 0.0 0.0 +de - fr 1 105 2030 0.0 0.0 +de - fr 1 106 2030 0.0 0.0 +de - fr 1 107 2030 0.0 0.0 +de - fr 1 108 2030 0.0 0.0 +de - fr 1 109 2030 0.0 0.0 +de - fr 1 110 2030 0.0 0.0 +de - fr 1 111 2030 0.0 0.0 +de - fr 1 112 2030 0.0 0.0 +de - fr 1 113 2030 0.0 0.0 +de - fr 1 114 2030 0.0 0.0 +de - fr 1 115 2030 0.0 0.0 +de - fr 1 116 2030 0.0 0.0 +de - fr 1 117 2030 0.0 0.0 +de - fr 1 118 2030 0.0 0.0 +de - fr 1 119 2030 0.0 0.0 +de - fr 1 120 2030 0.0 0.0 +de - fr 1 121 2030 0.0 0.0 +de - fr 1 122 2030 0.0 0.0 +de - fr 1 123 2030 0.0 0.0 +de - fr 1 124 2030 0.0 0.0 +de - fr 1 125 2030 0.0 0.0 +de - fr 1 126 2030 0.0 0.0 +de - fr 1 127 2030 0.0 0.0 +de - fr 1 128 2030 0.0 0.0 +de - fr 1 129 2030 0.0 0.0 +de - fr 1 130 2030 0.0 0.0 +de - fr 1 131 2030 0.0 0.0 +de - fr 1 132 2030 0.0 0.0 +de - fr 1 133 2030 0.0 0.0 +de - fr 1 134 2030 0.0 0.0 +de - fr 1 135 2030 0.0 0.0 +de - fr 1 136 2030 0.0 0.0 +de - fr 1 137 2030 0.0 0.0 +de - fr 1 138 2030 0.0 0.0 +de - fr 1 139 2030 0.0 0.0 +de - fr 1 140 2030 0.0 0.0 +de - fr 1 141 2030 0.0 0.0 +de - fr 1 142 2030 0.0 0.0 +de - fr 1 143 2030 0.0 0.0 +de - fr 1 144 2030 0.0 0.0 +de - fr 1 145 2030 0.0 0.0 +de - fr 1 146 2030 0.0 0.0 +de - fr 1 147 2030 0.0 0.0 +de - fr 1 148 2030 0.0 0.0 +de - fr 1 149 2030 0.0 0.0 +de - fr 1 150 2030 0.0 0.0 +de - fr 1 151 2030 0.0 0.0 +de - fr 1 152 2030 0.0 0.0 +de - fr 1 153 2030 0.0 0.0 +de - fr 1 154 2030 0.0 0.0 +de - fr 1 155 2030 0.0 0.0 +de - fr 1 156 2030 0.0 0.0 +de - fr 1 157 2030 0.0 0.0 +de - fr 1 158 2030 0.0 0.0 +de - fr 1 159 2030 0.0 0.0 +de - fr 1 160 2030 0.0 0.0 +de - fr 1 161 2030 0.0 0.0 +de - fr 1 162 2030 0.0 0.0 +de - fr 1 163 2030 0.0 0.0 +de - fr 1 164 2030 0.0 0.0 +de - fr 1 165 2030 0.0 0.0 +de - fr 1 166 2030 0.0 0.0 +de - fr 1 167 2030 0.0 0.0 +de - fr 1 168 2030 0.0 0.0 +de - fr 1 169 2030 0.0 0.0 +de - fr 1 170 2030 0.0 0.0 +de - fr 1 171 2030 0.0 0.0 +de - fr 1 172 2030 0.0 0.0 +de - fr 1 173 2030 0.0 0.0 +de - fr 1 174 2030 0.0 0.0 +de - fr 1 175 2030 0.0 0.0 +de - fr 1 176 2030 0.0 0.0 +de - fr 1 177 2030 0.0 0.0 +de - fr 1 178 2030 0.0 0.0 +de - fr 1 179 2030 0.0 0.0 +de - fr 1 180 2030 0.0 0.0 +de - fr 1 181 2030 0.0 0.0 +de - fr 1 182 2030 0.0 0.0 +de - fr 1 183 2030 0.0 0.0 +de - fr 1 184 2030 0.0 0.0 +de - fr 1 185 2030 0.0 0.0 +de - fr 1 186 2030 0.0 0.0 +de - fr 1 187 2030 0.0 0.0 +de - fr 1 188 2030 0.0 0.0 +de - fr 1 189 2030 0.0 0.0 +de - fr 1 190 2030 0.0 0.0 +de - fr 1 191 2030 0.0 0.0 +de - fr 1 192 2030 0.0 0.0 +de - fr 1 193 2030 0.0 0.0 +de - fr 1 194 2030 0.0 0.0 +de - fr 1 195 2030 0.0 0.0 +de - fr 1 196 2030 0.0 0.0 +de - fr 1 197 2030 0.0 0.0 +de - fr 1 198 2030 0.0 0.0 +de - fr 1 199 2030 0.0 0.0 +de - fr 1 200 2030 0.0 0.0 +de - fr 1 201 2030 0.0 0.0 +de - fr 1 202 2030 0.0 0.0 +de - fr 1 203 2030 0.0 0.0 +de - fr 1 204 2030 0.0 0.0 +de - fr 1 205 2030 0.0 0.0 +de - fr 1 206 2030 0.0 0.0 +de - fr 1 207 2030 0.0 0.0 +de - fr 1 208 2030 0.0 0.0 +de - fr 1 209 2030 0.0 0.0 +de - fr 1 210 2030 0.0 0.0 +de - fr 1 211 2030 0.0 0.0 +de - fr 1 212 2030 0.0 0.0 +de - fr 1 213 2030 0.0 0.0 +de - fr 1 214 2030 0.0 0.0 +de - fr 1 215 2030 0.0 0.0 +de - fr 1 216 2030 0.0 0.0 +de - fr 1 217 2030 0.0 0.0 +de - fr 1 218 2030 0.0 0.0 +de - fr 1 219 2030 0.0 0.0 +de - fr 1 220 2030 0.0 0.0 +de - fr 1 221 2030 0.0 0.0 +de - fr 1 222 2030 0.0 0.0 +de - fr 1 223 2030 0.0 0.0 +de - fr 1 224 2030 0.0 0.0 +de - fr 1 225 2030 0.0 0.0 +de - fr 1 226 2030 0.0 0.0 +de - fr 1 227 2030 0.0 0.0 +de - fr 1 228 2030 0.0 0.0 +de - fr 1 229 2030 0.0 0.0 +de - fr 1 230 2030 0.0 0.0 +de - fr 1 231 2030 0.0 0.0 +de - fr 1 232 2030 0.0 0.0 +de - fr 1 233 2030 0.0 0.0 +de - fr 1 234 2030 0.0 0.0 +de - fr 1 235 2030 0.0 0.0 +de - fr 1 236 2030 0.0 0.0 +de - fr 1 237 2030 0.0 0.0 +de - fr 1 238 2030 0.0 0.0 +de - fr 1 239 2030 0.0 0.0 +de - fr 1 240 2030 0.0 0.0 +de - fr 1 241 2030 0.0 0.0 +de - fr 1 242 2030 0.0 0.0 +de - fr 1 243 2030 0.0 0.0 +de - fr 1 244 2030 0.0 0.0 +de - fr 1 245 2030 0.0 0.0 +de - fr 1 246 2030 0.0 0.0 +de - fr 1 247 2030 0.0 0.0 +de - fr 1 248 2030 0.0 0.0 +de - fr 1 249 2030 0.0 0.0 +de - fr 1 250 2030 0.0 0.0 +de - fr 1 251 2030 0.0 0.0 +de - fr 1 252 2030 0.0 0.0 +de - fr 1 253 2030 0.0 0.0 +de - fr 1 254 2030 0.0 0.0 +de - fr 1 255 2030 0.0 0.0 +de - fr 1 256 2030 0.0 0.0 +de - fr 1 257 2030 0.0 0.0 +de - fr 1 258 2030 0.0 0.0 +de - fr 1 259 2030 0.0 0.0 +de - fr 1 260 2030 0.0 0.0 +de - fr 1 261 2030 0.0 0.0 +de - fr 1 262 2030 0.0 0.0 +de - fr 1 263 2030 0.0 0.0 +de - fr 1 264 2030 0.0 0.0 +de - fr 1 265 2030 0.0 0.0 +de - fr 1 266 2030 0.0 0.0 +de - fr 1 267 2030 0.0 0.0 +de - fr 1 268 2030 0.0 0.0 +de - fr 1 269 2030 0.0 0.0 +de - fr 1 270 2030 0.0 0.0 +de - fr 1 271 2030 0.0 0.0 +de - fr 1 272 2030 0.0 0.0 +de - fr 1 273 2030 0.0 0.0 +de - fr 1 274 2030 0.0 0.0 +de - fr 1 275 2030 0.0 0.0 +de - fr 1 276 2030 0.0 0.0 +de - fr 1 277 2030 0.0 0.0 +de - fr 1 278 2030 0.0 0.0 +de - fr 1 279 2030 0.0 0.0 +de - fr 1 280 2030 0.0 0.0 +de - fr 1 281 2030 0.0 0.0 +de - fr 1 282 2030 0.0 0.0 +de - fr 1 283 2030 0.0 0.0 +de - fr 1 284 2030 0.0 0.0 +de - fr 1 285 2030 0.0 0.0 +de - fr 1 286 2030 0.0 0.0 +de - fr 1 287 2030 0.0 0.0 +de - fr 1 288 2030 0.0 0.0 +de - fr 1 289 2030 0.0 0.0 +de - fr 1 290 2030 0.0 0.0 +de - fr 1 291 2030 0.0 0.0 +de - fr 1 292 2030 0.0 0.0 +de - fr 1 293 2030 0.0 0.0 +de - fr 1 294 2030 0.0 0.0 +de - fr 1 295 2030 0.0 0.0 +de - fr 1 296 2030 0.0 0.0 +de - fr 1 297 2030 0.0 0.0 +de - fr 1 298 2030 0.0 0.0 +de - fr 1 299 2030 0.0 0.0 +de - fr 1 300 2030 0.0 0.0 +de - fr 1 301 2030 0.0 0.0 +de - fr 1 302 2030 0.0 0.0 +de - fr 1 303 2030 0.0 0.0 +de - fr 1 304 2030 0.0 0.0 +de - fr 1 305 2030 0.0 0.0 +de - fr 1 306 2030 0.0 0.0 +de - fr 1 307 2030 0.0 0.0 +de - fr 1 308 2030 0.0 0.0 +de - fr 1 309 2030 0.0 0.0 +de - fr 1 310 2030 0.0 0.0 +de - fr 1 311 2030 0.0 0.0 +de - fr 1 312 2030 0.0 0.0 +de - fr 1 313 2030 0.0 0.0 +de - fr 1 314 2030 0.0 0.0 +de - fr 1 315 2030 0.0 0.0 +de - fr 1 316 2030 0.0 0.0 +de - fr 1 317 2030 0.0 0.0 +de - fr 1 318 2030 0.0 0.0 +de - fr 1 319 2030 0.0 0.0 +de - fr 1 320 2030 0.0 0.0 +de - fr 1 321 2030 0.0 0.0 +de - fr 1 322 2030 0.0 0.0 +de - fr 1 323 2030 0.0 0.0 +de - fr 1 324 2030 0.0 0.0 +de - fr 1 325 2030 0.0 0.0 +de - fr 1 326 2030 0.0 0.0 +de - fr 1 327 2030 0.0 0.0 +de - fr 1 328 2030 0.0 0.0 +de - fr 1 329 2030 0.0 0.0 +de - fr 1 330 2030 0.0 0.0 +de - fr 1 331 2030 0.0 0.0 +de - fr 1 332 2030 0.0 0.0 +de - fr 1 333 2030 0.0 0.0 +de - fr 1 334 2030 0.0 0.0 +de - fr 1 335 2030 0.0 0.0 +de - fr 1 336 2030 0.0 0.0 +es - fr 1 1 2030 0.0 0.0 +es - fr 1 2 2030 0.0 0.0 +es - fr 1 3 2030 0.0 0.0 +es - fr 1 4 2030 0.0 0.0 +es - fr 1 5 2030 0.0 0.0 +es - fr 1 6 2030 0.0 0.0 +es - fr 1 7 2030 0.0 0.0 +es - fr 1 8 2030 0.0 0.0 +es - fr 1 9 2030 0.0 0.0 +es - fr 1 10 2030 0.0 0.0 +es - fr 1 11 2030 0.0 0.0 +es - fr 1 12 2030 0.0 0.0 +es - fr 1 13 2030 0.0 0.0 +es - fr 1 14 2030 0.0 0.0 +es - fr 1 15 2030 0.0 0.0 +es - fr 1 16 2030 0.0 0.0 +es - fr 1 17 2030 0.0 0.0 +es - fr 1 18 2030 0.0 0.0 +es - fr 1 19 2030 0.0 0.0 +es - fr 1 20 2030 0.0 0.0 +es - fr 1 21 2030 0.0 0.0 +es - fr 1 22 2030 0.0 0.0 +es - fr 1 23 2030 0.0 0.0 +es - fr 1 24 2030 0.0 0.0 +es - fr 1 25 2030 0.0 0.0 +es - fr 1 26 2030 0.0 0.0 +es - fr 1 27 2030 0.0 0.0 +es - fr 1 28 2030 0.0 0.0 +es - fr 1 29 2030 0.0 0.0 +es - fr 1 30 2030 0.0 0.0 +es - fr 1 31 2030 0.0 0.0 +es - fr 1 32 2030 0.0 0.0 +es - fr 1 33 2030 0.0 0.0 +es - fr 1 34 2030 0.0 0.0 +es - fr 1 35 2030 0.0 0.0 +es - fr 1 36 2030 0.0 0.0 +es - fr 1 37 2030 0.0 0.0 +es - fr 1 38 2030 0.0 0.0 +es - fr 1 39 2030 0.0 0.0 +es - fr 1 40 2030 0.0 0.0 +es - fr 1 41 2030 0.0 0.0 +es - fr 1 42 2030 0.0 0.0 +es - fr 1 43 2030 0.0 0.0 +es - fr 1 44 2030 0.0 0.0 +es - fr 1 45 2030 0.0 0.0 +es - fr 1 46 2030 0.0 0.0 +es - fr 1 47 2030 0.0 0.0 +es - fr 1 48 2030 0.0 0.0 +es - fr 1 49 2030 0.0 0.0 +es - fr 1 50 2030 0.0 0.0 +es - fr 1 51 2030 0.0 0.0 +es - fr 1 52 2030 0.0 0.0 +es - fr 1 53 2030 0.0 0.0 +es - fr 1 54 2030 0.0 0.0 +es - fr 1 55 2030 0.0 0.0 +es - fr 1 56 2030 0.0 0.0 +es - fr 1 57 2030 0.0 0.0 +es - fr 1 58 2030 0.0 0.0 +es - fr 1 59 2030 0.0 0.0 +es - fr 1 60 2030 0.0 0.0 +es - fr 1 61 2030 0.0 0.0 +es - fr 1 62 2030 0.0 0.0 +es - fr 1 63 2030 0.0 0.0 +es - fr 1 64 2030 0.0 0.0 +es - fr 1 65 2030 0.0 0.0 +es - fr 1 66 2030 0.0 0.0 +es - fr 1 67 2030 0.0 0.0 +es - fr 1 68 2030 0.0 0.0 +es - fr 1 69 2030 0.0 0.0 +es - fr 1 70 2030 0.0 0.0 +es - fr 1 71 2030 0.0 0.0 +es - fr 1 72 2030 0.0 0.0 +es - fr 1 73 2030 0.0 0.0 +es - fr 1 74 2030 0.0 0.0 +es - fr 1 75 2030 0.0 0.0 +es - fr 1 76 2030 0.0 0.0 +es - fr 1 77 2030 0.0 0.0 +es - fr 1 78 2030 0.0 0.0 +es - fr 1 79 2030 0.0 0.0 +es - fr 1 80 2030 0.0 0.0 +es - fr 1 81 2030 0.0 0.0 +es - fr 1 82 2030 0.0 0.0 +es - fr 1 83 2030 0.0 0.0 +es - fr 1 84 2030 0.0 0.0 +es - fr 1 85 2030 0.0 0.0 +es - fr 1 86 2030 0.0 0.0 +es - fr 1 87 2030 0.0 0.0 +es - fr 1 88 2030 0.0 0.0 +es - fr 1 89 2030 0.0 0.0 +es - fr 1 90 2030 0.0 0.0 +es - fr 1 91 2030 0.0 0.0 +es - fr 1 92 2030 0.0 0.0 +es - fr 1 93 2030 0.0 0.0 +es - fr 1 94 2030 0.0 0.0 +es - fr 1 95 2030 0.0 0.0 +es - fr 1 96 2030 0.0 0.0 +es - fr 1 97 2030 0.0 0.0 +es - fr 1 98 2030 0.0 0.0 +es - fr 1 99 2030 0.0 0.0 +es - fr 1 100 2030 0.0 0.0 +es - fr 1 101 2030 0.0 0.0 +es - fr 1 102 2030 0.0 0.0 +es - fr 1 103 2030 0.0 0.0 +es - fr 1 104 2030 0.0 0.0 +es - fr 1 105 2030 0.0 0.0 +es - fr 1 106 2030 0.0 0.0 +es - fr 1 107 2030 0.0 0.0 +es - fr 1 108 2030 0.0 0.0 +es - fr 1 109 2030 0.0 0.0 +es - fr 1 110 2030 0.0 0.0 +es - fr 1 111 2030 0.0 0.0 +es - fr 1 112 2030 0.0 0.0 +es - fr 1 113 2030 0.0 0.0 +es - fr 1 114 2030 0.0 0.0 +es - fr 1 115 2030 0.0 0.0 +es - fr 1 116 2030 0.0 0.0 +es - fr 1 117 2030 0.0 0.0 +es - fr 1 118 2030 0.0 0.0 +es - fr 1 119 2030 0.0 0.0 +es - fr 1 120 2030 0.0 0.0 +es - fr 1 121 2030 0.0 0.0 +es - fr 1 122 2030 0.0 0.0 +es - fr 1 123 2030 0.0 0.0 +es - fr 1 124 2030 0.0 0.0 +es - fr 1 125 2030 0.0 0.0 +es - fr 1 126 2030 0.0 0.0 +es - fr 1 127 2030 0.0 0.0 +es - fr 1 128 2030 0.0 0.0 +es - fr 1 129 2030 0.0 0.0 +es - fr 1 130 2030 0.0 0.0 +es - fr 1 131 2030 0.0 0.0 +es - fr 1 132 2030 0.0 0.0 +es - fr 1 133 2030 0.0 0.0 +es - fr 1 134 2030 0.0 0.0 +es - fr 1 135 2030 0.0 0.0 +es - fr 1 136 2030 0.0 0.0 +es - fr 1 137 2030 0.0 0.0 +es - fr 1 138 2030 0.0 0.0 +es - fr 1 139 2030 0.0 0.0 +es - fr 1 140 2030 0.0 0.0 +es - fr 1 141 2030 0.0 0.0 +es - fr 1 142 2030 0.0 0.0 +es - fr 1 143 2030 0.0 0.0 +es - fr 1 144 2030 0.0 0.0 +es - fr 1 145 2030 0.0 0.0 +es - fr 1 146 2030 0.0 0.0 +es - fr 1 147 2030 0.0 0.0 +es - fr 1 148 2030 0.0 0.0 +es - fr 1 149 2030 0.0 0.0 +es - fr 1 150 2030 0.0 0.0 +es - fr 1 151 2030 0.0 0.0 +es - fr 1 152 2030 0.0 0.0 +es - fr 1 153 2030 0.0 0.0 +es - fr 1 154 2030 0.0 0.0 +es - fr 1 155 2030 0.0 0.0 +es - fr 1 156 2030 0.0 0.0 +es - fr 1 157 2030 0.0 0.0 +es - fr 1 158 2030 0.0 0.0 +es - fr 1 159 2030 0.0 0.0 +es - fr 1 160 2030 0.0 0.0 +es - fr 1 161 2030 0.0 0.0 +es - fr 1 162 2030 0.0 0.0 +es - fr 1 163 2030 0.0 0.0 +es - fr 1 164 2030 0.0 0.0 +es - fr 1 165 2030 0.0 0.0 +es - fr 1 166 2030 0.0 0.0 +es - fr 1 167 2030 0.0 0.0 +es - fr 1 168 2030 0.0 0.0 +es - fr 1 169 2030 0.0 0.0 +es - fr 1 170 2030 0.0 0.0 +es - fr 1 171 2030 0.0 0.0 +es - fr 1 172 2030 0.0 0.0 +es - fr 1 173 2030 0.0 0.0 +es - fr 1 174 2030 0.0 0.0 +es - fr 1 175 2030 0.0 0.0 +es - fr 1 176 2030 0.0 0.0 +es - fr 1 177 2030 0.0 0.0 +es - fr 1 178 2030 0.0 0.0 +es - fr 1 179 2030 0.0 0.0 +es - fr 1 180 2030 0.0 0.0 +es - fr 1 181 2030 0.0 0.0 +es - fr 1 182 2030 0.0 0.0 +es - fr 1 183 2030 0.0 0.0 +es - fr 1 184 2030 0.0 0.0 +es - fr 1 185 2030 0.0 0.0 +es - fr 1 186 2030 0.0 0.0 +es - fr 1 187 2030 0.0 0.0 +es - fr 1 188 2030 0.0 0.0 +es - fr 1 189 2030 0.0 0.0 +es - fr 1 190 2030 0.0 0.0 +es - fr 1 191 2030 0.0 0.0 +es - fr 1 192 2030 0.0 0.0 +es - fr 1 193 2030 0.0 0.0 +es - fr 1 194 2030 0.0 0.0 +es - fr 1 195 2030 0.0 0.0 +es - fr 1 196 2030 0.0 0.0 +es - fr 1 197 2030 0.0 0.0 +es - fr 1 198 2030 0.0 0.0 +es - fr 1 199 2030 0.0 0.0 +es - fr 1 200 2030 0.0 0.0 +es - fr 1 201 2030 0.0 0.0 +es - fr 1 202 2030 0.0 0.0 +es - fr 1 203 2030 0.0 0.0 +es - fr 1 204 2030 0.0 0.0 +es - fr 1 205 2030 0.0 0.0 +es - fr 1 206 2030 0.0 0.0 +es - fr 1 207 2030 0.0 0.0 +es - fr 1 208 2030 0.0 0.0 +es - fr 1 209 2030 0.0 0.0 +es - fr 1 210 2030 0.0 0.0 +es - fr 1 211 2030 0.0 0.0 +es - fr 1 212 2030 0.0 0.0 +es - fr 1 213 2030 0.0 0.0 +es - fr 1 214 2030 0.0 0.0 +es - fr 1 215 2030 0.0 0.0 +es - fr 1 216 2030 0.0 0.0 +es - fr 1 217 2030 0.0 0.0 +es - fr 1 218 2030 0.0 0.0 +es - fr 1 219 2030 0.0 0.0 +es - fr 1 220 2030 0.0 0.0 +es - fr 1 221 2030 0.0 0.0 +es - fr 1 222 2030 0.0 0.0 +es - fr 1 223 2030 0.0 0.0 +es - fr 1 224 2030 0.0 0.0 +es - fr 1 225 2030 0.0 0.0 +es - fr 1 226 2030 0.0 0.0 +es - fr 1 227 2030 0.0 0.0 +es - fr 1 228 2030 0.0 0.0 +es - fr 1 229 2030 0.0 0.0 +es - fr 1 230 2030 0.0 0.0 +es - fr 1 231 2030 0.0 0.0 +es - fr 1 232 2030 0.0 0.0 +es - fr 1 233 2030 0.0 0.0 +es - fr 1 234 2030 0.0 0.0 +es - fr 1 235 2030 0.0 0.0 +es - fr 1 236 2030 0.0 0.0 +es - fr 1 237 2030 0.0 0.0 +es - fr 1 238 2030 0.0 0.0 +es - fr 1 239 2030 0.0 0.0 +es - fr 1 240 2030 0.0 0.0 +es - fr 1 241 2030 0.0 0.0 +es - fr 1 242 2030 0.0 0.0 +es - fr 1 243 2030 0.0 0.0 +es - fr 1 244 2030 0.0 0.0 +es - fr 1 245 2030 0.0 0.0 +es - fr 1 246 2030 0.0 0.0 +es - fr 1 247 2030 0.0 0.0 +es - fr 1 248 2030 0.0 0.0 +es - fr 1 249 2030 0.0 0.0 +es - fr 1 250 2030 0.0 0.0 +es - fr 1 251 2030 0.0 0.0 +es - fr 1 252 2030 0.0 0.0 +es - fr 1 253 2030 0.0 0.0 +es - fr 1 254 2030 0.0 0.0 +es - fr 1 255 2030 0.0 0.0 +es - fr 1 256 2030 0.0 0.0 +es - fr 1 257 2030 0.0 0.0 +es - fr 1 258 2030 0.0 0.0 +es - fr 1 259 2030 0.0 0.0 +es - fr 1 260 2030 0.0 0.0 +es - fr 1 261 2030 0.0 0.0 +es - fr 1 262 2030 0.0 0.0 +es - fr 1 263 2030 0.0 0.0 +es - fr 1 264 2030 0.0 0.0 +es - fr 1 265 2030 0.0 0.0 +es - fr 1 266 2030 0.0 0.0 +es - fr 1 267 2030 0.0 0.0 +es - fr 1 268 2030 0.0 0.0 +es - fr 1 269 2030 0.0 0.0 +es - fr 1 270 2030 0.0 0.0 +es - fr 1 271 2030 0.0 0.0 +es - fr 1 272 2030 0.0 0.0 +es - fr 1 273 2030 0.0 0.0 +es - fr 1 274 2030 0.0 0.0 +es - fr 1 275 2030 0.0 0.0 +es - fr 1 276 2030 0.0 0.0 +es - fr 1 277 2030 0.0 0.0 +es - fr 1 278 2030 0.0 0.0 +es - fr 1 279 2030 0.0 0.0 +es - fr 1 280 2030 0.0 0.0 +es - fr 1 281 2030 0.0 0.0 +es - fr 1 282 2030 0.0 0.0 +es - fr 1 283 2030 0.0 0.0 +es - fr 1 284 2030 0.0 0.0 +es - fr 1 285 2030 0.0 0.0 +es - fr 1 286 2030 0.0 0.0 +es - fr 1 287 2030 0.0 0.0 +es - fr 1 288 2030 0.0 0.0 +es - fr 1 289 2030 0.0 0.0 +es - fr 1 290 2030 0.0 0.0 +es - fr 1 291 2030 0.0 0.0 +es - fr 1 292 2030 0.0 0.0 +es - fr 1 293 2030 0.0 0.0 +es - fr 1 294 2030 0.0 0.0 +es - fr 1 295 2030 0.0 0.0 +es - fr 1 296 2030 0.0 0.0 +es - fr 1 297 2030 0.0 0.0 +es - fr 1 298 2030 0.0 0.0 +es - fr 1 299 2030 0.0 0.0 +es - fr 1 300 2030 0.0 0.0 +es - fr 1 301 2030 0.0 0.0 +es - fr 1 302 2030 0.0 0.0 +es - fr 1 303 2030 0.0 0.0 +es - fr 1 304 2030 0.0 0.0 +es - fr 1 305 2030 0.0 0.0 +es - fr 1 306 2030 0.0 0.0 +es - fr 1 307 2030 0.0 0.0 +es - fr 1 308 2030 0.0 0.0 +es - fr 1 309 2030 0.0 0.0 +es - fr 1 310 2030 0.0 0.0 +es - fr 1 311 2030 0.0 0.0 +es - fr 1 312 2030 0.0 0.0 +es - fr 1 313 2030 0.0 0.0 +es - fr 1 314 2030 0.0 0.0 +es - fr 1 315 2030 0.0 0.0 +es - fr 1 316 2030 0.0 0.0 +es - fr 1 317 2030 0.0 0.0 +es - fr 1 318 2030 0.0 0.0 +es - fr 1 319 2030 0.0 0.0 +es - fr 1 320 2030 0.0 0.0 +es - fr 1 321 2030 0.0 0.0 +es - fr 1 322 2030 0.0 0.0 +es - fr 1 323 2030 0.0 0.0 +es - fr 1 324 2030 0.0 0.0 +es - fr 1 325 2030 0.0 0.0 +es - fr 1 326 2030 0.0 0.0 +es - fr 1 327 2030 0.0 0.0 +es - fr 1 328 2030 0.0 0.0 +es - fr 1 329 2030 0.0 0.0 +es - fr 1 330 2030 0.0 0.0 +es - fr 1 331 2030 0.0 0.0 +es - fr 1 332 2030 0.0 0.0 +es - fr 1 333 2030 0.0 0.0 +es - fr 1 334 2030 0.0 0.0 +es - fr 1 335 2030 0.0 0.0 +es - fr 1 336 2030 0.0 0.0 +fr - it 1 1 2030 0.0 0.0 +fr - it 1 2 2030 0.0 0.0 +fr - it 1 3 2030 0.0 0.0 +fr - it 1 4 2030 0.0 0.0 +fr - it 1 5 2030 0.0 0.0 +fr - it 1 6 2030 0.0 0.0 +fr - it 1 7 2030 0.0 0.0 +fr - it 1 8 2030 0.0 0.0 +fr - it 1 9 2030 0.0 0.0 +fr - it 1 10 2030 0.0 0.0 +fr - it 1 11 2030 0.0 0.0 +fr - it 1 12 2030 0.0 0.0 +fr - it 1 13 2030 0.0 0.0 +fr - it 1 14 2030 0.0 0.0 +fr - it 1 15 2030 0.0 0.0 +fr - it 1 16 2030 0.0 0.0 +fr - it 1 17 2030 0.0 0.0 +fr - it 1 18 2030 0.0 0.0 +fr - it 1 19 2030 0.0 0.0 +fr - it 1 20 2030 0.0 0.0 +fr - it 1 21 2030 0.0 0.0 +fr - it 1 22 2030 0.0 0.0 +fr - it 1 23 2030 0.0 0.0 +fr - it 1 24 2030 0.0 0.0 +fr - it 1 25 2030 0.0 0.0 +fr - it 1 26 2030 0.0 0.0 +fr - it 1 27 2030 0.0 0.0 +fr - it 1 28 2030 0.0 0.0 +fr - it 1 29 2030 0.0 0.0 +fr - it 1 30 2030 0.0 0.0 +fr - it 1 31 2030 0.0 0.0 +fr - it 1 32 2030 0.0 0.0 +fr - it 1 33 2030 0.0 0.0 +fr - it 1 34 2030 0.0 0.0 +fr - it 1 35 2030 0.0 0.0 +fr - it 1 36 2030 0.0 0.0 +fr - it 1 37 2030 0.0 0.0 +fr - it 1 38 2030 0.0 0.0 +fr - it 1 39 2030 0.0 0.0 +fr - it 1 40 2030 0.0 0.0 +fr - it 1 41 2030 0.0 0.0 +fr - it 1 42 2030 0.0 0.0 +fr - it 1 43 2030 0.0 0.0 +fr - it 1 44 2030 0.0 0.0 +fr - it 1 45 2030 0.0 0.0 +fr - it 1 46 2030 0.0 0.0 +fr - it 1 47 2030 0.0 0.0 +fr - it 1 48 2030 0.0 0.0 +fr - it 1 49 2030 0.0 0.0 +fr - it 1 50 2030 0.0 0.0 +fr - it 1 51 2030 0.0 0.0 +fr - it 1 52 2030 0.0 0.0 +fr - it 1 53 2030 0.0 0.0 +fr - it 1 54 2030 0.0 0.0 +fr - it 1 55 2030 0.0 0.0 +fr - it 1 56 2030 0.0 0.0 +fr - it 1 57 2030 0.0 0.0 +fr - it 1 58 2030 0.0 0.0 +fr - it 1 59 2030 0.0 0.0 +fr - it 1 60 2030 0.0 0.0 +fr - it 1 61 2030 0.0 0.0 +fr - it 1 62 2030 0.0 0.0 +fr - it 1 63 2030 0.0 0.0 +fr - it 1 64 2030 0.0 0.0 +fr - it 1 65 2030 0.0 0.0 +fr - it 1 66 2030 0.0 0.0 +fr - it 1 67 2030 0.0 0.0 +fr - it 1 68 2030 0.0 0.0 +fr - it 1 69 2030 0.0 0.0 +fr - it 1 70 2030 0.0 0.0 +fr - it 1 71 2030 0.0 0.0 +fr - it 1 72 2030 0.0 0.0 +fr - it 1 73 2030 0.0 0.0 +fr - it 1 74 2030 0.0 0.0 +fr - it 1 75 2030 0.0 0.0 +fr - it 1 76 2030 0.0 0.0 +fr - it 1 77 2030 0.0 0.0 +fr - it 1 78 2030 0.0 0.0 +fr - it 1 79 2030 0.0 0.0 +fr - it 1 80 2030 0.0 0.0 +fr - it 1 81 2030 0.0 0.0 +fr - it 1 82 2030 0.0 0.0 +fr - it 1 83 2030 0.0 0.0 +fr - it 1 84 2030 0.0 0.0 +fr - it 1 85 2030 0.0 0.0 +fr - it 1 86 2030 0.0 0.0 +fr - it 1 87 2030 0.0 0.0 +fr - it 1 88 2030 0.0 0.0 +fr - it 1 89 2030 0.0 0.0 +fr - it 1 90 2030 0.0 0.0 +fr - it 1 91 2030 0.0 0.0 +fr - it 1 92 2030 0.0 0.0 +fr - it 1 93 2030 0.0 0.0 +fr - it 1 94 2030 0.0 0.0 +fr - it 1 95 2030 0.0 0.0 +fr - it 1 96 2030 0.0 0.0 +fr - it 1 97 2030 0.0 0.0 +fr - it 1 98 2030 0.0 0.0 +fr - it 1 99 2030 0.0 0.0 +fr - it 1 100 2030 0.0 0.0 +fr - it 1 101 2030 0.0 0.0 +fr - it 1 102 2030 0.0 0.0 +fr - it 1 103 2030 0.0 0.0 +fr - it 1 104 2030 0.0 0.0 +fr - it 1 105 2030 0.0 0.0 +fr - it 1 106 2030 0.0 0.0 +fr - it 1 107 2030 0.0 0.0 +fr - it 1 108 2030 0.0 0.0 +fr - it 1 109 2030 0.0 0.0 +fr - it 1 110 2030 0.0 0.0 +fr - it 1 111 2030 0.0 0.0 +fr - it 1 112 2030 0.0 0.0 +fr - it 1 113 2030 0.0 0.0 +fr - it 1 114 2030 0.0 0.0 +fr - it 1 115 2030 0.0 0.0 +fr - it 1 116 2030 0.0 0.0 +fr - it 1 117 2030 0.0 0.0 +fr - it 1 118 2030 0.0 0.0 +fr - it 1 119 2030 0.0 0.0 +fr - it 1 120 2030 0.0 0.0 +fr - it 1 121 2030 0.0 0.0 +fr - it 1 122 2030 0.0 0.0 +fr - it 1 123 2030 0.0 0.0 +fr - it 1 124 2030 0.0 0.0 +fr - it 1 125 2030 0.0 0.0 +fr - it 1 126 2030 0.0 0.0 +fr - it 1 127 2030 0.0 0.0 +fr - it 1 128 2030 0.0 0.0 +fr - it 1 129 2030 0.0 0.0 +fr - it 1 130 2030 0.0 0.0 +fr - it 1 131 2030 0.0 0.0 +fr - it 1 132 2030 0.0 0.0 +fr - it 1 133 2030 0.0 0.0 +fr - it 1 134 2030 0.0 0.0 +fr - it 1 135 2030 0.0 0.0 +fr - it 1 136 2030 0.0 0.0 +fr - it 1 137 2030 0.0 0.0 +fr - it 1 138 2030 0.0 0.0 +fr - it 1 139 2030 0.0 0.0 +fr - it 1 140 2030 0.0 0.0 +fr - it 1 141 2030 0.0 0.0 +fr - it 1 142 2030 0.0 0.0 +fr - it 1 143 2030 0.0 0.0 +fr - it 1 144 2030 0.0 0.0 +fr - it 1 145 2030 0.0 0.0 +fr - it 1 146 2030 0.0 0.0 +fr - it 1 147 2030 0.0 0.0 +fr - it 1 148 2030 0.0 0.0 +fr - it 1 149 2030 0.0 0.0 +fr - it 1 150 2030 0.0 0.0 +fr - it 1 151 2030 0.0 0.0 +fr - it 1 152 2030 0.0 0.0 +fr - it 1 153 2030 0.0 0.0 +fr - it 1 154 2030 0.0 0.0 +fr - it 1 155 2030 0.0 0.0 +fr - it 1 156 2030 0.0 0.0 +fr - it 1 157 2030 0.0 0.0 +fr - it 1 158 2030 0.0 0.0 +fr - it 1 159 2030 0.0 0.0 +fr - it 1 160 2030 0.0 0.0 +fr - it 1 161 2030 0.0 0.0 +fr - it 1 162 2030 0.0 0.0 +fr - it 1 163 2030 0.0 0.0 +fr - it 1 164 2030 0.0 0.0 +fr - it 1 165 2030 0.0 0.0 +fr - it 1 166 2030 0.0 0.0 +fr - it 1 167 2030 0.0 0.0 +fr - it 1 168 2030 0.0 0.0 +fr - it 1 169 2030 0.0 0.0 +fr - it 1 170 2030 0.0 0.0 +fr - it 1 171 2030 0.0 0.0 +fr - it 1 172 2030 0.0 0.0 +fr - it 1 173 2030 0.0 0.0 +fr - it 1 174 2030 0.0 0.0 +fr - it 1 175 2030 0.0 0.0 +fr - it 1 176 2030 0.0 0.0 +fr - it 1 177 2030 0.0 0.0 +fr - it 1 178 2030 0.0 0.0 +fr - it 1 179 2030 0.0 0.0 +fr - it 1 180 2030 0.0 0.0 +fr - it 1 181 2030 0.0 0.0 +fr - it 1 182 2030 0.0 0.0 +fr - it 1 183 2030 0.0 0.0 +fr - it 1 184 2030 0.0 0.0 +fr - it 1 185 2030 0.0 0.0 +fr - it 1 186 2030 0.0 0.0 +fr - it 1 187 2030 0.0 0.0 +fr - it 1 188 2030 0.0 0.0 +fr - it 1 189 2030 0.0 0.0 +fr - it 1 190 2030 0.0 0.0 +fr - it 1 191 2030 0.0 0.0 +fr - it 1 192 2030 0.0 0.0 +fr - it 1 193 2030 0.0 0.0 +fr - it 1 194 2030 0.0 0.0 +fr - it 1 195 2030 0.0 0.0 +fr - it 1 196 2030 0.0 0.0 +fr - it 1 197 2030 0.0 0.0 +fr - it 1 198 2030 0.0 0.0 +fr - it 1 199 2030 0.0 0.0 +fr - it 1 200 2030 0.0 0.0 +fr - it 1 201 2030 0.0 0.0 +fr - it 1 202 2030 0.0 0.0 +fr - it 1 203 2030 0.0 0.0 +fr - it 1 204 2030 0.0 0.0 +fr - it 1 205 2030 0.0 0.0 +fr - it 1 206 2030 0.0 0.0 +fr - it 1 207 2030 0.0 0.0 +fr - it 1 208 2030 0.0 0.0 +fr - it 1 209 2030 0.0 0.0 +fr - it 1 210 2030 0.0 0.0 +fr - it 1 211 2030 0.0 0.0 +fr - it 1 212 2030 0.0 0.0 +fr - it 1 213 2030 0.0 0.0 +fr - it 1 214 2030 0.0 0.0 +fr - it 1 215 2030 0.0 0.0 +fr - it 1 216 2030 0.0 0.0 +fr - it 1 217 2030 0.0 0.0 +fr - it 1 218 2030 0.0 0.0 +fr - it 1 219 2030 0.0 0.0 +fr - it 1 220 2030 0.0 0.0 +fr - it 1 221 2030 0.0 0.0 +fr - it 1 222 2030 0.0 0.0 +fr - it 1 223 2030 0.0 0.0 +fr - it 1 224 2030 0.0 0.0 +fr - it 1 225 2030 0.0 0.0 +fr - it 1 226 2030 0.0 0.0 +fr - it 1 227 2030 0.0 0.0 +fr - it 1 228 2030 0.0 0.0 +fr - it 1 229 2030 0.0 0.0 +fr - it 1 230 2030 0.0 0.0 +fr - it 1 231 2030 0.0 0.0 +fr - it 1 232 2030 0.0 0.0 +fr - it 1 233 2030 0.0 0.0 +fr - it 1 234 2030 0.0 0.0 +fr - it 1 235 2030 0.0 0.0 +fr - it 1 236 2030 0.0 0.0 +fr - it 1 237 2030 0.0 0.0 +fr - it 1 238 2030 0.0 0.0 +fr - it 1 239 2030 0.0 0.0 +fr - it 1 240 2030 0.0 0.0 +fr - it 1 241 2030 0.0 0.0 +fr - it 1 242 2030 0.0 0.0 +fr - it 1 243 2030 0.0 0.0 +fr - it 1 244 2030 0.0 0.0 +fr - it 1 245 2030 0.0 0.0 +fr - it 1 246 2030 0.0 0.0 +fr - it 1 247 2030 0.0 0.0 +fr - it 1 248 2030 0.0 0.0 +fr - it 1 249 2030 0.0 0.0 +fr - it 1 250 2030 0.0 0.0 +fr - it 1 251 2030 0.0 0.0 +fr - it 1 252 2030 0.0 0.0 +fr - it 1 253 2030 0.0 0.0 +fr - it 1 254 2030 0.0 0.0 +fr - it 1 255 2030 0.0 0.0 +fr - it 1 256 2030 0.0 0.0 +fr - it 1 257 2030 0.0 0.0 +fr - it 1 258 2030 0.0 0.0 +fr - it 1 259 2030 0.0 0.0 +fr - it 1 260 2030 0.0 0.0 +fr - it 1 261 2030 0.0 0.0 +fr - it 1 262 2030 0.0 0.0 +fr - it 1 263 2030 0.0 0.0 +fr - it 1 264 2030 0.0 0.0 +fr - it 1 265 2030 0.0 0.0 +fr - it 1 266 2030 0.0 0.0 +fr - it 1 267 2030 0.0 0.0 +fr - it 1 268 2030 0.0 0.0 +fr - it 1 269 2030 0.0 0.0 +fr - it 1 270 2030 0.0 0.0 +fr - it 1 271 2030 0.0 0.0 +fr - it 1 272 2030 0.0 0.0 +fr - it 1 273 2030 0.0 0.0 +fr - it 1 274 2030 0.0 0.0 +fr - it 1 275 2030 0.0 0.0 +fr - it 1 276 2030 0.0 0.0 +fr - it 1 277 2030 0.0 0.0 +fr - it 1 278 2030 0.0 0.0 +fr - it 1 279 2030 0.0 0.0 +fr - it 1 280 2030 0.0 0.0 +fr - it 1 281 2030 0.0 0.0 +fr - it 1 282 2030 0.0 0.0 +fr - it 1 283 2030 0.0 0.0 +fr - it 1 284 2030 0.0 0.0 +fr - it 1 285 2030 0.0 0.0 +fr - it 1 286 2030 0.0 0.0 +fr - it 1 287 2030 0.0 0.0 +fr - it 1 288 2030 0.0 0.0 +fr - it 1 289 2030 0.0 0.0 +fr - it 1 290 2030 0.0 0.0 +fr - it 1 291 2030 0.0 0.0 +fr - it 1 292 2030 0.0 0.0 +fr - it 1 293 2030 0.0 0.0 +fr - it 1 294 2030 0.0 0.0 +fr - it 1 295 2030 0.0 0.0 +fr - it 1 296 2030 0.0 0.0 +fr - it 1 297 2030 0.0 0.0 +fr - it 1 298 2030 0.0 0.0 +fr - it 1 299 2030 0.0 0.0 +fr - it 1 300 2030 0.0 0.0 +fr - it 1 301 2030 0.0 0.0 +fr - it 1 302 2030 0.0 0.0 +fr - it 1 303 2030 0.0 0.0 +fr - it 1 304 2030 0.0 0.0 +fr - it 1 305 2030 0.0 0.0 +fr - it 1 306 2030 0.0 0.0 +fr - it 1 307 2030 0.0 0.0 +fr - it 1 308 2030 0.0 0.0 +fr - it 1 309 2030 0.0 0.0 +fr - it 1 310 2030 0.0 0.0 +fr - it 1 311 2030 0.0 0.0 +fr - it 1 312 2030 0.0 0.0 +fr - it 1 313 2030 0.0 0.0 +fr - it 1 314 2030 0.0 0.0 +fr - it 1 315 2030 0.0 0.0 +fr - it 1 316 2030 0.0 0.0 +fr - it 1 317 2030 0.0 0.0 +fr - it 1 318 2030 0.0 0.0 +fr - it 1 319 2030 0.0 0.0 +fr - it 1 320 2030 0.0 0.0 +fr - it 1 321 2030 0.0 0.0 +fr - it 1 322 2030 0.0 0.0 +fr - it 1 323 2030 0.0 0.0 +fr - it 1 324 2030 0.0 0.0 +fr - it 1 325 2030 0.0 0.0 +fr - it 1 326 2030 0.0 0.0 +fr - it 1 327 2030 0.0 0.0 +fr - it 1 328 2030 0.0 0.0 +fr - it 1 329 2030 0.0 0.0 +fr - it 1 330 2030 0.0 0.0 +fr - it 1 331 2030 0.0 0.0 +fr - it 1 332 2030 0.0 0.0 +fr - it 1 333 2030 0.0 0.0 +fr - it 1 334 2030 0.0 0.0 +fr - it 1 335 2030 0.0 0.0 +fr - it 1 336 2030 0.0 0.0 +de - fr 2 1 2030 0.0 0.0 +de - fr 2 2 2030 0.0 0.0 +de - fr 2 3 2030 0.0 0.0 +de - fr 2 4 2030 0.0 0.0 +de - fr 2 5 2030 0.0 0.0 +de - fr 2 6 2030 0.0 0.0 +de - fr 2 7 2030 0.0 0.0 +de - fr 2 8 2030 0.0 0.0 +de - fr 2 9 2030 0.0 0.0 +de - fr 2 10 2030 0.0 0.0 +de - fr 2 11 2030 0.0 0.0 +de - fr 2 12 2030 0.0 0.0 +de - fr 2 13 2030 0.0 0.0 +de - fr 2 14 2030 0.0 0.0 +de - fr 2 15 2030 0.0 0.0 +de - fr 2 16 2030 0.0 0.0 +de - fr 2 17 2030 0.0 0.0 +de - fr 2 18 2030 0.0 0.0 +de - fr 2 19 2030 0.0 0.0 +de - fr 2 20 2030 0.0 0.0 +de - fr 2 21 2030 0.0 0.0 +de - fr 2 22 2030 0.0 0.0 +de - fr 2 23 2030 0.0 0.0 +de - fr 2 24 2030 0.0 0.0 +de - fr 2 25 2030 0.0 0.0 +de - fr 2 26 2030 0.0 0.0 +de - fr 2 27 2030 0.0 0.0 +de - fr 2 28 2030 0.0 0.0 +de - fr 2 29 2030 0.0 0.0 +de - fr 2 30 2030 0.0 0.0 +de - fr 2 31 2030 0.0 0.0 +de - fr 2 32 2030 0.0 0.0 +de - fr 2 33 2030 0.0 0.0 +de - fr 2 34 2030 0.0 0.0 +de - fr 2 35 2030 0.0 0.0 +de - fr 2 36 2030 0.0 0.0 +de - fr 2 37 2030 0.0 0.0 +de - fr 2 38 2030 0.0 0.0 +de - fr 2 39 2030 0.0 0.0 +de - fr 2 40 2030 0.0 0.0 +de - fr 2 41 2030 0.0 0.0 +de - fr 2 42 2030 0.0 0.0 +de - fr 2 43 2030 0.0 0.0 +de - fr 2 44 2030 0.0 0.0 +de - fr 2 45 2030 0.0 0.0 +de - fr 2 46 2030 0.0 0.0 +de - fr 2 47 2030 0.0 0.0 +de - fr 2 48 2030 0.0 0.0 +de - fr 2 49 2030 0.0 0.0 +de - fr 2 50 2030 0.0 0.0 +de - fr 2 51 2030 0.0 0.0 +de - fr 2 52 2030 0.0 0.0 +de - fr 2 53 2030 0.0 0.0 +de - fr 2 54 2030 0.0 0.0 +de - fr 2 55 2030 0.0 0.0 +de - fr 2 56 2030 0.0 0.0 +de - fr 2 57 2030 0.0 0.0 +de - fr 2 58 2030 0.0 0.0 +de - fr 2 59 2030 0.0 0.0 +de - fr 2 60 2030 0.0 0.0 +de - fr 2 61 2030 0.0 0.0 +de - fr 2 62 2030 0.0 0.0 +de - fr 2 63 2030 0.0 0.0 +de - fr 2 64 2030 0.0 0.0 +de - fr 2 65 2030 0.0 0.0 +de - fr 2 66 2030 0.0 0.0 +de - fr 2 67 2030 0.0 0.0 +de - fr 2 68 2030 0.0 0.0 +de - fr 2 69 2030 0.0 0.0 +de - fr 2 70 2030 0.0 0.0 +de - fr 2 71 2030 0.0 0.0 +de - fr 2 72 2030 0.0 0.0 +de - fr 2 73 2030 0.0 0.0 +de - fr 2 74 2030 0.0 0.0 +de - fr 2 75 2030 0.0 0.0 +de - fr 2 76 2030 0.0 0.0 +de - fr 2 77 2030 0.0 0.0 +de - fr 2 78 2030 0.0 0.0 +de - fr 2 79 2030 0.0 0.0 +de - fr 2 80 2030 0.0 0.0 +de - fr 2 81 2030 0.0 0.0 +de - fr 2 82 2030 0.0 0.0 +de - fr 2 83 2030 0.0 0.0 +de - fr 2 84 2030 0.0 0.0 +de - fr 2 85 2030 0.0 0.0 +de - fr 2 86 2030 0.0 0.0 +de - fr 2 87 2030 0.0 0.0 +de - fr 2 88 2030 0.0 0.0 +de - fr 2 89 2030 0.0 0.0 +de - fr 2 90 2030 0.0 0.0 +de - fr 2 91 2030 0.0 0.0 +de - fr 2 92 2030 0.0 0.0 +de - fr 2 93 2030 0.0 0.0 +de - fr 2 94 2030 0.0 0.0 +de - fr 2 95 2030 0.0 0.0 +de - fr 2 96 2030 0.0 0.0 +de - fr 2 97 2030 0.0 0.0 +de - fr 2 98 2030 0.0 0.0 +de - fr 2 99 2030 0.0 0.0 +de - fr 2 100 2030 0.0 0.0 +de - fr 2 101 2030 0.0 0.0 +de - fr 2 102 2030 0.0 0.0 +de - fr 2 103 2030 0.0 0.0 +de - fr 2 104 2030 0.0 0.0 +de - fr 2 105 2030 0.0 0.0 +de - fr 2 106 2030 0.0 0.0 +de - fr 2 107 2030 0.0 0.0 +de - fr 2 108 2030 0.0 0.0 +de - fr 2 109 2030 0.0 0.0 +de - fr 2 110 2030 0.0 0.0 +de - fr 2 111 2030 0.0 0.0 +de - fr 2 112 2030 0.0 0.0 +de - fr 2 113 2030 0.0 0.0 +de - fr 2 114 2030 0.0 0.0 +de - fr 2 115 2030 0.0 0.0 +de - fr 2 116 2030 0.0 0.0 +de - fr 2 117 2030 0.0 0.0 +de - fr 2 118 2030 0.0 0.0 +de - fr 2 119 2030 0.0 0.0 +de - fr 2 120 2030 0.0 0.0 +de - fr 2 121 2030 0.0 0.0 +de - fr 2 122 2030 0.0 0.0 +de - fr 2 123 2030 0.0 0.0 +de - fr 2 124 2030 0.0 0.0 +de - fr 2 125 2030 0.0 0.0 +de - fr 2 126 2030 0.0 0.0 +de - fr 2 127 2030 0.0 0.0 +de - fr 2 128 2030 0.0 0.0 +de - fr 2 129 2030 0.0 0.0 +de - fr 2 130 2030 0.0 0.0 +de - fr 2 131 2030 0.0 0.0 +de - fr 2 132 2030 0.0 0.0 +de - fr 2 133 2030 0.0 0.0 +de - fr 2 134 2030 0.0 0.0 +de - fr 2 135 2030 0.0 0.0 +de - fr 2 136 2030 0.0 0.0 +de - fr 2 137 2030 0.0 0.0 +de - fr 2 138 2030 0.0 0.0 +de - fr 2 139 2030 0.0 0.0 +de - fr 2 140 2030 0.0 0.0 +de - fr 2 141 2030 0.0 0.0 +de - fr 2 142 2030 0.0 0.0 +de - fr 2 143 2030 0.0 0.0 +de - fr 2 144 2030 0.0 0.0 +de - fr 2 145 2030 0.0 0.0 +de - fr 2 146 2030 0.0 0.0 +de - fr 2 147 2030 0.0 0.0 +de - fr 2 148 2030 0.0 0.0 +de - fr 2 149 2030 0.0 0.0 +de - fr 2 150 2030 0.0 0.0 +de - fr 2 151 2030 0.0 0.0 +de - fr 2 152 2030 0.0 0.0 +de - fr 2 153 2030 0.0 0.0 +de - fr 2 154 2030 0.0 0.0 +de - fr 2 155 2030 0.0 0.0 +de - fr 2 156 2030 0.0 0.0 +de - fr 2 157 2030 0.0 0.0 +de - fr 2 158 2030 0.0 0.0 +de - fr 2 159 2030 0.0 0.0 +de - fr 2 160 2030 0.0 0.0 +de - fr 2 161 2030 0.0 0.0 +de - fr 2 162 2030 0.0 0.0 +de - fr 2 163 2030 0.0 0.0 +de - fr 2 164 2030 0.0 0.0 +de - fr 2 165 2030 0.0 0.0 +de - fr 2 166 2030 0.0 0.0 +de - fr 2 167 2030 0.0 0.0 +de - fr 2 168 2030 0.0 0.0 +de - fr 2 169 2030 0.0 0.0 +de - fr 2 170 2030 0.0 0.0 +de - fr 2 171 2030 0.0 0.0 +de - fr 2 172 2030 0.0 0.0 +de - fr 2 173 2030 0.0 0.0 +de - fr 2 174 2030 0.0 0.0 +de - fr 2 175 2030 0.0 0.0 +de - fr 2 176 2030 0.0 0.0 +de - fr 2 177 2030 0.0 0.0 +de - fr 2 178 2030 0.0 0.0 +de - fr 2 179 2030 0.0 0.0 +de - fr 2 180 2030 0.0 0.0 +de - fr 2 181 2030 0.0 0.0 +de - fr 2 182 2030 0.0 0.0 +de - fr 2 183 2030 0.0 0.0 +de - fr 2 184 2030 0.0 0.0 +de - fr 2 185 2030 0.0 0.0 +de - fr 2 186 2030 0.0 0.0 +de - fr 2 187 2030 0.0 0.0 +de - fr 2 188 2030 0.0 0.0 +de - fr 2 189 2030 0.0 0.0 +de - fr 2 190 2030 0.0 0.0 +de - fr 2 191 2030 0.0 0.0 +de - fr 2 192 2030 0.0 0.0 +de - fr 2 193 2030 0.0 0.0 +de - fr 2 194 2030 0.0 0.0 +de - fr 2 195 2030 0.0 0.0 +de - fr 2 196 2030 0.0 0.0 +de - fr 2 197 2030 0.0 0.0 +de - fr 2 198 2030 0.0 0.0 +de - fr 2 199 2030 0.0 0.0 +de - fr 2 200 2030 0.0 0.0 +de - fr 2 201 2030 0.0 0.0 +de - fr 2 202 2030 0.0 0.0 +de - fr 2 203 2030 0.0 0.0 +de - fr 2 204 2030 0.0 0.0 +de - fr 2 205 2030 0.0 0.0 +de - fr 2 206 2030 0.0 0.0 +de - fr 2 207 2030 0.0 0.0 +de - fr 2 208 2030 0.0 0.0 +de - fr 2 209 2030 0.0 0.0 +de - fr 2 210 2030 0.0 0.0 +de - fr 2 211 2030 0.0 0.0 +de - fr 2 212 2030 0.0 0.0 +de - fr 2 213 2030 0.0 0.0 +de - fr 2 214 2030 0.0 0.0 +de - fr 2 215 2030 0.0 0.0 +de - fr 2 216 2030 0.0 0.0 +de - fr 2 217 2030 0.0 0.0 +de - fr 2 218 2030 0.0 0.0 +de - fr 2 219 2030 0.0 0.0 +de - fr 2 220 2030 0.0 0.0 +de - fr 2 221 2030 0.0 0.0 +de - fr 2 222 2030 0.0 0.0 +de - fr 2 223 2030 0.0 0.0 +de - fr 2 224 2030 0.0 0.0 +de - fr 2 225 2030 0.0 0.0 +de - fr 2 226 2030 0.0 0.0 +de - fr 2 227 2030 0.0 0.0 +de - fr 2 228 2030 0.0 0.0 +de - fr 2 229 2030 0.0 0.0 +de - fr 2 230 2030 0.0 0.0 +de - fr 2 231 2030 0.0 0.0 +de - fr 2 232 2030 0.0 0.0 +de - fr 2 233 2030 0.0 0.0 +de - fr 2 234 2030 0.0 0.0 +de - fr 2 235 2030 0.0 0.0 +de - fr 2 236 2030 0.0 0.0 +de - fr 2 237 2030 0.0 0.0 +de - fr 2 238 2030 0.0 0.0 +de - fr 2 239 2030 0.0 0.0 +de - fr 2 240 2030 0.0 0.0 +de - fr 2 241 2030 0.0 0.0 +de - fr 2 242 2030 0.0 0.0 +de - fr 2 243 2030 0.0 0.0 +de - fr 2 244 2030 0.0 0.0 +de - fr 2 245 2030 0.0 0.0 +de - fr 2 246 2030 0.0 0.0 +de - fr 2 247 2030 0.0 0.0 +de - fr 2 248 2030 0.0 0.0 +de - fr 2 249 2030 0.0 0.0 +de - fr 2 250 2030 0.0 0.0 +de - fr 2 251 2030 0.0 0.0 +de - fr 2 252 2030 0.0 0.0 +de - fr 2 253 2030 0.0 0.0 +de - fr 2 254 2030 0.0 0.0 +de - fr 2 255 2030 0.0 0.0 +de - fr 2 256 2030 0.0 0.0 +de - fr 2 257 2030 0.0 0.0 +de - fr 2 258 2030 0.0 0.0 +de - fr 2 259 2030 0.0 0.0 +de - fr 2 260 2030 0.0 0.0 +de - fr 2 261 2030 0.0 0.0 +de - fr 2 262 2030 0.0 0.0 +de - fr 2 263 2030 0.0 0.0 +de - fr 2 264 2030 0.0 0.0 +de - fr 2 265 2030 0.0 0.0 +de - fr 2 266 2030 0.0 0.0 +de - fr 2 267 2030 0.0 0.0 +de - fr 2 268 2030 0.0 0.0 +de - fr 2 269 2030 0.0 0.0 +de - fr 2 270 2030 0.0 0.0 +de - fr 2 271 2030 0.0 0.0 +de - fr 2 272 2030 0.0 0.0 +de - fr 2 273 2030 0.0 0.0 +de - fr 2 274 2030 0.0 0.0 +de - fr 2 275 2030 0.0 0.0 +de - fr 2 276 2030 0.0 0.0 +de - fr 2 277 2030 0.0 0.0 +de - fr 2 278 2030 0.0 0.0 +de - fr 2 279 2030 0.0 0.0 +de - fr 2 280 2030 0.0 0.0 +de - fr 2 281 2030 0.0 0.0 +de - fr 2 282 2030 0.0 0.0 +de - fr 2 283 2030 0.0 0.0 +de - fr 2 284 2030 0.0 0.0 +de - fr 2 285 2030 0.0 0.0 +de - fr 2 286 2030 0.0 0.0 +de - fr 2 287 2030 0.0 0.0 +de - fr 2 288 2030 0.0 0.0 +de - fr 2 289 2030 0.0 0.0 +de - fr 2 290 2030 0.0 0.0 +de - fr 2 291 2030 0.0 0.0 +de - fr 2 292 2030 0.0 0.0 +de - fr 2 293 2030 0.0 0.0 +de - fr 2 294 2030 0.0 0.0 +de - fr 2 295 2030 0.0 0.0 +de - fr 2 296 2030 0.0 0.0 +de - fr 2 297 2030 0.0 0.0 +de - fr 2 298 2030 0.0 0.0 +de - fr 2 299 2030 0.0 0.0 +de - fr 2 300 2030 0.0 0.0 +de - fr 2 301 2030 0.0 0.0 +de - fr 2 302 2030 0.0 0.0 +de - fr 2 303 2030 0.0 0.0 +de - fr 2 304 2030 0.0 0.0 +de - fr 2 305 2030 0.0 0.0 +de - fr 2 306 2030 0.0 0.0 +de - fr 2 307 2030 0.0 0.0 +de - fr 2 308 2030 0.0 0.0 +de - fr 2 309 2030 0.0 0.0 +de - fr 2 310 2030 0.0 0.0 +de - fr 2 311 2030 0.0 0.0 +de - fr 2 312 2030 0.0 0.0 +de - fr 2 313 2030 0.0 0.0 +de - fr 2 314 2030 0.0 0.0 +de - fr 2 315 2030 0.0 0.0 +de - fr 2 316 2030 0.0 0.0 +de - fr 2 317 2030 0.0 0.0 +de - fr 2 318 2030 0.0 0.0 +de - fr 2 319 2030 0.0 0.0 +de - fr 2 320 2030 0.0 0.0 +de - fr 2 321 2030 0.0 0.0 +de - fr 2 322 2030 0.0 0.0 +de - fr 2 323 2030 0.0 0.0 +de - fr 2 324 2030 0.0 0.0 +de - fr 2 325 2030 0.0 0.0 +de - fr 2 326 2030 0.0 0.0 +de - fr 2 327 2030 0.0 0.0 +de - fr 2 328 2030 0.0 0.0 +de - fr 2 329 2030 0.0 0.0 +de - fr 2 330 2030 0.0 0.0 +de - fr 2 331 2030 0.0 0.0 +de - fr 2 332 2030 0.0 0.0 +de - fr 2 333 2030 0.0 0.0 +de - fr 2 334 2030 0.0 0.0 +de - fr 2 335 2030 0.0 0.0 +de - fr 2 336 2030 0.0 0.0 +es - fr 2 1 2030 0.0 0.0 +es - fr 2 2 2030 0.0 0.0 +es - fr 2 3 2030 0.0 0.0 +es - fr 2 4 2030 0.0 0.0 +es - fr 2 5 2030 0.0 0.0 +es - fr 2 6 2030 0.0 0.0 +es - fr 2 7 2030 0.0 0.0 +es - fr 2 8 2030 0.0 0.0 +es - fr 2 9 2030 0.0 0.0 +es - fr 2 10 2030 0.0 0.0 +es - fr 2 11 2030 0.0 0.0 +es - fr 2 12 2030 0.0 0.0 +es - fr 2 13 2030 0.0 0.0 +es - fr 2 14 2030 0.0 0.0 +es - fr 2 15 2030 0.0 0.0 +es - fr 2 16 2030 0.0 0.0 +es - fr 2 17 2030 0.0 0.0 +es - fr 2 18 2030 0.0 0.0 +es - fr 2 19 2030 0.0 0.0 +es - fr 2 20 2030 0.0 0.0 +es - fr 2 21 2030 0.0 0.0 +es - fr 2 22 2030 0.0 0.0 +es - fr 2 23 2030 0.0 0.0 +es - fr 2 24 2030 0.0 0.0 +es - fr 2 25 2030 0.0 0.0 +es - fr 2 26 2030 0.0 0.0 +es - fr 2 27 2030 0.0 0.0 +es - fr 2 28 2030 0.0 0.0 +es - fr 2 29 2030 0.0 0.0 +es - fr 2 30 2030 0.0 0.0 +es - fr 2 31 2030 0.0 0.0 +es - fr 2 32 2030 0.0 0.0 +es - fr 2 33 2030 0.0 0.0 +es - fr 2 34 2030 0.0 0.0 +es - fr 2 35 2030 0.0 0.0 +es - fr 2 36 2030 0.0 0.0 +es - fr 2 37 2030 0.0 0.0 +es - fr 2 38 2030 0.0 0.0 +es - fr 2 39 2030 0.0 0.0 +es - fr 2 40 2030 0.0 0.0 +es - fr 2 41 2030 0.0 0.0 +es - fr 2 42 2030 0.0 0.0 +es - fr 2 43 2030 0.0 0.0 +es - fr 2 44 2030 0.0 0.0 +es - fr 2 45 2030 0.0 0.0 +es - fr 2 46 2030 0.0 0.0 +es - fr 2 47 2030 0.0 0.0 +es - fr 2 48 2030 0.0 0.0 +es - fr 2 49 2030 0.0 0.0 +es - fr 2 50 2030 0.0 0.0 +es - fr 2 51 2030 0.0 0.0 +es - fr 2 52 2030 0.0 0.0 +es - fr 2 53 2030 0.0 0.0 +es - fr 2 54 2030 0.0 0.0 +es - fr 2 55 2030 0.0 0.0 +es - fr 2 56 2030 0.0 0.0 +es - fr 2 57 2030 0.0 0.0 +es - fr 2 58 2030 0.0 0.0 +es - fr 2 59 2030 0.0 0.0 +es - fr 2 60 2030 0.0 0.0 +es - fr 2 61 2030 0.0 0.0 +es - fr 2 62 2030 0.0 0.0 +es - fr 2 63 2030 0.0 0.0 +es - fr 2 64 2030 0.0 0.0 +es - fr 2 65 2030 0.0 0.0 +es - fr 2 66 2030 0.0 0.0 +es - fr 2 67 2030 0.0 0.0 +es - fr 2 68 2030 0.0 0.0 +es - fr 2 69 2030 0.0 0.0 +es - fr 2 70 2030 0.0 0.0 +es - fr 2 71 2030 0.0 0.0 +es - fr 2 72 2030 0.0 0.0 +es - fr 2 73 2030 0.0 0.0 +es - fr 2 74 2030 0.0 0.0 +es - fr 2 75 2030 0.0 0.0 +es - fr 2 76 2030 0.0 0.0 +es - fr 2 77 2030 0.0 0.0 +es - fr 2 78 2030 0.0 0.0 +es - fr 2 79 2030 0.0 0.0 +es - fr 2 80 2030 0.0 0.0 +es - fr 2 81 2030 0.0 0.0 +es - fr 2 82 2030 0.0 0.0 +es - fr 2 83 2030 0.0 0.0 +es - fr 2 84 2030 0.0 0.0 +es - fr 2 85 2030 0.0 0.0 +es - fr 2 86 2030 0.0 0.0 +es - fr 2 87 2030 0.0 0.0 +es - fr 2 88 2030 0.0 0.0 +es - fr 2 89 2030 0.0 0.0 +es - fr 2 90 2030 0.0 0.0 +es - fr 2 91 2030 0.0 0.0 +es - fr 2 92 2030 0.0 0.0 +es - fr 2 93 2030 0.0 0.0 +es - fr 2 94 2030 0.0 0.0 +es - fr 2 95 2030 0.0 0.0 +es - fr 2 96 2030 0.0 0.0 +es - fr 2 97 2030 0.0 0.0 +es - fr 2 98 2030 0.0 0.0 +es - fr 2 99 2030 0.0 0.0 +es - fr 2 100 2030 0.0 0.0 +es - fr 2 101 2030 0.0 0.0 +es - fr 2 102 2030 0.0 0.0 +es - fr 2 103 2030 0.0 0.0 +es - fr 2 104 2030 0.0 0.0 +es - fr 2 105 2030 0.0 0.0 +es - fr 2 106 2030 0.0 0.0 +es - fr 2 107 2030 0.0 0.0 +es - fr 2 108 2030 0.0 0.0 +es - fr 2 109 2030 0.0 0.0 +es - fr 2 110 2030 0.0 0.0 +es - fr 2 111 2030 0.0 0.0 +es - fr 2 112 2030 0.0 0.0 +es - fr 2 113 2030 0.0 0.0 +es - fr 2 114 2030 0.0 0.0 +es - fr 2 115 2030 0.0 0.0 +es - fr 2 116 2030 0.0 0.0 +es - fr 2 117 2030 0.0 0.0 +es - fr 2 118 2030 0.0 0.0 +es - fr 2 119 2030 0.0 0.0 +es - fr 2 120 2030 0.0 0.0 +es - fr 2 121 2030 0.0 0.0 +es - fr 2 122 2030 0.0 0.0 +es - fr 2 123 2030 0.0 0.0 +es - fr 2 124 2030 0.0 0.0 +es - fr 2 125 2030 0.0 0.0 +es - fr 2 126 2030 0.0 0.0 +es - fr 2 127 2030 0.0 0.0 +es - fr 2 128 2030 0.0 0.0 +es - fr 2 129 2030 0.0 0.0 +es - fr 2 130 2030 0.0 0.0 +es - fr 2 131 2030 0.0 0.0 +es - fr 2 132 2030 0.0 0.0 +es - fr 2 133 2030 0.0 0.0 +es - fr 2 134 2030 0.0 0.0 +es - fr 2 135 2030 0.0 0.0 +es - fr 2 136 2030 0.0 0.0 +es - fr 2 137 2030 0.0 0.0 +es - fr 2 138 2030 0.0 0.0 +es - fr 2 139 2030 0.0 0.0 +es - fr 2 140 2030 0.0 0.0 +es - fr 2 141 2030 0.0 0.0 +es - fr 2 142 2030 0.0 0.0 +es - fr 2 143 2030 0.0 0.0 +es - fr 2 144 2030 0.0 0.0 +es - fr 2 145 2030 0.0 0.0 +es - fr 2 146 2030 0.0 0.0 +es - fr 2 147 2030 0.0 0.0 +es - fr 2 148 2030 0.0 0.0 +es - fr 2 149 2030 0.0 0.0 +es - fr 2 150 2030 0.0 0.0 +es - fr 2 151 2030 0.0 0.0 +es - fr 2 152 2030 0.0 0.0 +es - fr 2 153 2030 0.0 0.0 +es - fr 2 154 2030 0.0 0.0 +es - fr 2 155 2030 0.0 0.0 +es - fr 2 156 2030 0.0 0.0 +es - fr 2 157 2030 0.0 0.0 +es - fr 2 158 2030 0.0 0.0 +es - fr 2 159 2030 0.0 0.0 +es - fr 2 160 2030 0.0 0.0 +es - fr 2 161 2030 0.0 0.0 +es - fr 2 162 2030 0.0 0.0 +es - fr 2 163 2030 0.0 0.0 +es - fr 2 164 2030 0.0 0.0 +es - fr 2 165 2030 0.0 0.0 +es - fr 2 166 2030 0.0 0.0 +es - fr 2 167 2030 0.0 0.0 +es - fr 2 168 2030 0.0 0.0 +es - fr 2 169 2030 0.0 0.0 +es - fr 2 170 2030 0.0 0.0 +es - fr 2 171 2030 0.0 0.0 +es - fr 2 172 2030 0.0 0.0 +es - fr 2 173 2030 0.0 0.0 +es - fr 2 174 2030 0.0 0.0 +es - fr 2 175 2030 0.0 0.0 +es - fr 2 176 2030 0.0 0.0 +es - fr 2 177 2030 0.0 0.0 +es - fr 2 178 2030 0.0 0.0 +es - fr 2 179 2030 0.0 0.0 +es - fr 2 180 2030 0.0 0.0 +es - fr 2 181 2030 0.0 0.0 +es - fr 2 182 2030 0.0 0.0 +es - fr 2 183 2030 0.0 0.0 +es - fr 2 184 2030 0.0 0.0 +es - fr 2 185 2030 0.0 0.0 +es - fr 2 186 2030 0.0 0.0 +es - fr 2 187 2030 0.0 0.0 +es - fr 2 188 2030 0.0 0.0 +es - fr 2 189 2030 0.0 0.0 +es - fr 2 190 2030 0.0 0.0 +es - fr 2 191 2030 0.0 0.0 +es - fr 2 192 2030 0.0 0.0 +es - fr 2 193 2030 0.0 0.0 +es - fr 2 194 2030 0.0 0.0 +es - fr 2 195 2030 0.0 0.0 +es - fr 2 196 2030 0.0 0.0 +es - fr 2 197 2030 0.0 0.0 +es - fr 2 198 2030 0.0 0.0 +es - fr 2 199 2030 0.0 0.0 +es - fr 2 200 2030 0.0 0.0 +es - fr 2 201 2030 0.0 0.0 +es - fr 2 202 2030 0.0 0.0 +es - fr 2 203 2030 0.0 0.0 +es - fr 2 204 2030 0.0 0.0 +es - fr 2 205 2030 0.0 0.0 +es - fr 2 206 2030 0.0 0.0 +es - fr 2 207 2030 0.0 0.0 +es - fr 2 208 2030 0.0 0.0 +es - fr 2 209 2030 0.0 0.0 +es - fr 2 210 2030 0.0 0.0 +es - fr 2 211 2030 0.0 0.0 +es - fr 2 212 2030 0.0 0.0 +es - fr 2 213 2030 0.0 0.0 +es - fr 2 214 2030 0.0 0.0 +es - fr 2 215 2030 0.0 0.0 +es - fr 2 216 2030 0.0 0.0 +es - fr 2 217 2030 0.0 0.0 +es - fr 2 218 2030 0.0 0.0 +es - fr 2 219 2030 0.0 0.0 +es - fr 2 220 2030 0.0 0.0 +es - fr 2 221 2030 0.0 0.0 +es - fr 2 222 2030 0.0 0.0 +es - fr 2 223 2030 0.0 0.0 +es - fr 2 224 2030 0.0 0.0 +es - fr 2 225 2030 0.0 0.0 +es - fr 2 226 2030 0.0 0.0 +es - fr 2 227 2030 0.0 0.0 +es - fr 2 228 2030 0.0 0.0 +es - fr 2 229 2030 0.0 0.0 +es - fr 2 230 2030 0.0 0.0 +es - fr 2 231 2030 0.0 0.0 +es - fr 2 232 2030 0.0 0.0 +es - fr 2 233 2030 0.0 0.0 +es - fr 2 234 2030 0.0 0.0 +es - fr 2 235 2030 0.0 0.0 +es - fr 2 236 2030 0.0 0.0 +es - fr 2 237 2030 0.0 0.0 +es - fr 2 238 2030 0.0 0.0 +es - fr 2 239 2030 0.0 0.0 +es - fr 2 240 2030 0.0 0.0 +es - fr 2 241 2030 0.0 0.0 +es - fr 2 242 2030 0.0 0.0 +es - fr 2 243 2030 0.0 0.0 +es - fr 2 244 2030 0.0 0.0 +es - fr 2 245 2030 0.0 0.0 +es - fr 2 246 2030 0.0 0.0 +es - fr 2 247 2030 0.0 0.0 +es - fr 2 248 2030 0.0 0.0 +es - fr 2 249 2030 0.0 0.0 +es - fr 2 250 2030 0.0 0.0 +es - fr 2 251 2030 0.0 0.0 +es - fr 2 252 2030 0.0 0.0 +es - fr 2 253 2030 0.0 0.0 +es - fr 2 254 2030 0.0 0.0 +es - fr 2 255 2030 0.0 0.0 +es - fr 2 256 2030 0.0 0.0 +es - fr 2 257 2030 0.0 0.0 +es - fr 2 258 2030 0.0 0.0 +es - fr 2 259 2030 0.0 0.0 +es - fr 2 260 2030 0.0 0.0 +es - fr 2 261 2030 0.0 0.0 +es - fr 2 262 2030 0.0 0.0 +es - fr 2 263 2030 0.0 0.0 +es - fr 2 264 2030 0.0 0.0 +es - fr 2 265 2030 0.0 0.0 +es - fr 2 266 2030 0.0 0.0 +es - fr 2 267 2030 0.0 0.0 +es - fr 2 268 2030 0.0 0.0 +es - fr 2 269 2030 0.0 0.0 +es - fr 2 270 2030 0.0 0.0 +es - fr 2 271 2030 0.0 0.0 +es - fr 2 272 2030 0.0 0.0 +es - fr 2 273 2030 0.0 0.0 +es - fr 2 274 2030 0.0 0.0 +es - fr 2 275 2030 0.0 0.0 +es - fr 2 276 2030 0.0 0.0 +es - fr 2 277 2030 0.0 0.0 +es - fr 2 278 2030 0.0 0.0 +es - fr 2 279 2030 0.0 0.0 +es - fr 2 280 2030 0.0 0.0 +es - fr 2 281 2030 0.0 0.0 +es - fr 2 282 2030 0.0 0.0 +es - fr 2 283 2030 0.0 0.0 +es - fr 2 284 2030 0.0 0.0 +es - fr 2 285 2030 0.0 0.0 +es - fr 2 286 2030 0.0 0.0 +es - fr 2 287 2030 0.0 0.0 +es - fr 2 288 2030 0.0 0.0 +es - fr 2 289 2030 0.0 0.0 +es - fr 2 290 2030 0.0 0.0 +es - fr 2 291 2030 0.0 0.0 +es - fr 2 292 2030 0.0 0.0 +es - fr 2 293 2030 0.0 0.0 +es - fr 2 294 2030 0.0 0.0 +es - fr 2 295 2030 0.0 0.0 +es - fr 2 296 2030 0.0 0.0 +es - fr 2 297 2030 0.0 0.0 +es - fr 2 298 2030 0.0 0.0 +es - fr 2 299 2030 0.0 0.0 +es - fr 2 300 2030 0.0 0.0 +es - fr 2 301 2030 0.0 0.0 +es - fr 2 302 2030 0.0 0.0 +es - fr 2 303 2030 0.0 0.0 +es - fr 2 304 2030 0.0 0.0 +es - fr 2 305 2030 0.0 0.0 +es - fr 2 306 2030 0.0 0.0 +es - fr 2 307 2030 0.0 0.0 +es - fr 2 308 2030 0.0 0.0 +es - fr 2 309 2030 0.0 0.0 +es - fr 2 310 2030 0.0 0.0 +es - fr 2 311 2030 0.0 0.0 +es - fr 2 312 2030 0.0 0.0 +es - fr 2 313 2030 0.0 0.0 +es - fr 2 314 2030 0.0 0.0 +es - fr 2 315 2030 0.0 0.0 +es - fr 2 316 2030 0.0 0.0 +es - fr 2 317 2030 0.0 0.0 +es - fr 2 318 2030 0.0 0.0 +es - fr 2 319 2030 0.0 0.0 +es - fr 2 320 2030 0.0 0.0 +es - fr 2 321 2030 0.0 0.0 +es - fr 2 322 2030 0.0 0.0 +es - fr 2 323 2030 0.0 0.0 +es - fr 2 324 2030 0.0 0.0 +es - fr 2 325 2030 0.0 0.0 +es - fr 2 326 2030 0.0 0.0 +es - fr 2 327 2030 0.0 0.0 +es - fr 2 328 2030 0.0 0.0 +es - fr 2 329 2030 0.0 0.0 +es - fr 2 330 2030 0.0 0.0 +es - fr 2 331 2030 0.0 0.0 +es - fr 2 332 2030 0.0 0.0 +es - fr 2 333 2030 0.0 0.0 +es - fr 2 334 2030 0.0 0.0 +es - fr 2 335 2030 0.0 0.0 +es - fr 2 336 2030 0.0 0.0 +fr - it 2 1 2030 0.0 0.0 +fr - it 2 2 2030 0.0 0.0 +fr - it 2 3 2030 0.0 0.0 +fr - it 2 4 2030 0.0 0.0 +fr - it 2 5 2030 0.0 0.0 +fr - it 2 6 2030 0.0 0.0 +fr - it 2 7 2030 0.0 0.0 +fr - it 2 8 2030 0.0 0.0 +fr - it 2 9 2030 0.0 0.0 +fr - it 2 10 2030 0.0 0.0 +fr - it 2 11 2030 0.0 0.0 +fr - it 2 12 2030 0.0 0.0 +fr - it 2 13 2030 0.0 0.0 +fr - it 2 14 2030 0.0 0.0 +fr - it 2 15 2030 0.0 0.0 +fr - it 2 16 2030 0.0 0.0 +fr - it 2 17 2030 0.0 0.0 +fr - it 2 18 2030 0.0 0.0 +fr - it 2 19 2030 0.0 0.0 +fr - it 2 20 2030 0.0 0.0 +fr - it 2 21 2030 0.0 0.0 +fr - it 2 22 2030 0.0 0.0 +fr - it 2 23 2030 0.0 0.0 +fr - it 2 24 2030 0.0 0.0 +fr - it 2 25 2030 0.0 0.0 +fr - it 2 26 2030 0.0 0.0 +fr - it 2 27 2030 0.0 0.0 +fr - it 2 28 2030 0.0 0.0 +fr - it 2 29 2030 0.0 0.0 +fr - it 2 30 2030 0.0 0.0 +fr - it 2 31 2030 0.0 0.0 +fr - it 2 32 2030 0.0 0.0 +fr - it 2 33 2030 0.0 0.0 +fr - it 2 34 2030 0.0 0.0 +fr - it 2 35 2030 0.0 0.0 +fr - it 2 36 2030 0.0 0.0 +fr - it 2 37 2030 0.0 0.0 +fr - it 2 38 2030 0.0 0.0 +fr - it 2 39 2030 0.0 0.0 +fr - it 2 40 2030 0.0 0.0 +fr - it 2 41 2030 0.0 0.0 +fr - it 2 42 2030 0.0 0.0 +fr - it 2 43 2030 0.0 0.0 +fr - it 2 44 2030 0.0 0.0 +fr - it 2 45 2030 0.0 0.0 +fr - it 2 46 2030 0.0 0.0 +fr - it 2 47 2030 0.0 0.0 +fr - it 2 48 2030 0.0 0.0 +fr - it 2 49 2030 0.0 0.0 +fr - it 2 50 2030 0.0 0.0 +fr - it 2 51 2030 0.0 0.0 +fr - it 2 52 2030 0.0 0.0 +fr - it 2 53 2030 0.0 0.0 +fr - it 2 54 2030 0.0 0.0 +fr - it 2 55 2030 0.0 0.0 +fr - it 2 56 2030 0.0 0.0 +fr - it 2 57 2030 0.0 0.0 +fr - it 2 58 2030 0.0 0.0 +fr - it 2 59 2030 0.0 0.0 +fr - it 2 60 2030 0.0 0.0 +fr - it 2 61 2030 0.0 0.0 +fr - it 2 62 2030 0.0 0.0 +fr - it 2 63 2030 0.0 0.0 +fr - it 2 64 2030 0.0 0.0 +fr - it 2 65 2030 0.0 0.0 +fr - it 2 66 2030 0.0 0.0 +fr - it 2 67 2030 0.0 0.0 +fr - it 2 68 2030 0.0 0.0 +fr - it 2 69 2030 0.0 0.0 +fr - it 2 70 2030 0.0 0.0 +fr - it 2 71 2030 0.0 0.0 +fr - it 2 72 2030 0.0 0.0 +fr - it 2 73 2030 0.0 0.0 +fr - it 2 74 2030 0.0 0.0 +fr - it 2 75 2030 0.0 0.0 +fr - it 2 76 2030 0.0 0.0 +fr - it 2 77 2030 0.0 0.0 +fr - it 2 78 2030 0.0 0.0 +fr - it 2 79 2030 0.0 0.0 +fr - it 2 80 2030 0.0 0.0 +fr - it 2 81 2030 0.0 0.0 +fr - it 2 82 2030 0.0 0.0 +fr - it 2 83 2030 0.0 0.0 +fr - it 2 84 2030 0.0 0.0 +fr - it 2 85 2030 0.0 0.0 +fr - it 2 86 2030 0.0 0.0 +fr - it 2 87 2030 0.0 0.0 +fr - it 2 88 2030 0.0 0.0 +fr - it 2 89 2030 0.0 0.0 +fr - it 2 90 2030 0.0 0.0 +fr - it 2 91 2030 0.0 0.0 +fr - it 2 92 2030 0.0 0.0 +fr - it 2 93 2030 0.0 0.0 +fr - it 2 94 2030 0.0 0.0 +fr - it 2 95 2030 0.0 0.0 +fr - it 2 96 2030 0.0 0.0 +fr - it 2 97 2030 0.0 0.0 +fr - it 2 98 2030 0.0 0.0 +fr - it 2 99 2030 0.0 0.0 +fr - it 2 100 2030 0.0 0.0 +fr - it 2 101 2030 0.0 0.0 +fr - it 2 102 2030 0.0 0.0 +fr - it 2 103 2030 0.0 0.0 +fr - it 2 104 2030 0.0 0.0 +fr - it 2 105 2030 0.0 0.0 +fr - it 2 106 2030 0.0 0.0 +fr - it 2 107 2030 0.0 0.0 +fr - it 2 108 2030 0.0 0.0 +fr - it 2 109 2030 0.0 0.0 +fr - it 2 110 2030 0.0 0.0 +fr - it 2 111 2030 0.0 0.0 +fr - it 2 112 2030 0.0 0.0 +fr - it 2 113 2030 0.0 0.0 +fr - it 2 114 2030 0.0 0.0 +fr - it 2 115 2030 0.0 0.0 +fr - it 2 116 2030 0.0 0.0 +fr - it 2 117 2030 0.0 0.0 +fr - it 2 118 2030 0.0 0.0 +fr - it 2 119 2030 0.0 0.0 +fr - it 2 120 2030 0.0 0.0 +fr - it 2 121 2030 0.0 0.0 +fr - it 2 122 2030 0.0 0.0 +fr - it 2 123 2030 0.0 0.0 +fr - it 2 124 2030 0.0 0.0 +fr - it 2 125 2030 0.0 0.0 +fr - it 2 126 2030 0.0 0.0 +fr - it 2 127 2030 0.0 0.0 +fr - it 2 128 2030 0.0 0.0 +fr - it 2 129 2030 0.0 0.0 +fr - it 2 130 2030 0.0 0.0 +fr - it 2 131 2030 0.0 0.0 +fr - it 2 132 2030 0.0 0.0 +fr - it 2 133 2030 0.0 0.0 +fr - it 2 134 2030 0.0 0.0 +fr - it 2 135 2030 0.0 0.0 +fr - it 2 136 2030 0.0 0.0 +fr - it 2 137 2030 0.0 0.0 +fr - it 2 138 2030 0.0 0.0 +fr - it 2 139 2030 0.0 0.0 +fr - it 2 140 2030 0.0 0.0 +fr - it 2 141 2030 0.0 0.0 +fr - it 2 142 2030 0.0 0.0 +fr - it 2 143 2030 0.0 0.0 +fr - it 2 144 2030 0.0 0.0 +fr - it 2 145 2030 0.0 0.0 +fr - it 2 146 2030 0.0 0.0 +fr - it 2 147 2030 0.0 0.0 +fr - it 2 148 2030 0.0 0.0 +fr - it 2 149 2030 0.0 0.0 +fr - it 2 150 2030 0.0 0.0 +fr - it 2 151 2030 0.0 0.0 +fr - it 2 152 2030 0.0 0.0 +fr - it 2 153 2030 0.0 0.0 +fr - it 2 154 2030 0.0 0.0 +fr - it 2 155 2030 0.0 0.0 +fr - it 2 156 2030 0.0 0.0 +fr - it 2 157 2030 0.0 0.0 +fr - it 2 158 2030 0.0 0.0 +fr - it 2 159 2030 0.0 0.0 +fr - it 2 160 2030 0.0 0.0 +fr - it 2 161 2030 0.0 0.0 +fr - it 2 162 2030 0.0 0.0 +fr - it 2 163 2030 0.0 0.0 +fr - it 2 164 2030 0.0 0.0 +fr - it 2 165 2030 0.0 0.0 +fr - it 2 166 2030 0.0 0.0 +fr - it 2 167 2030 0.0 0.0 +fr - it 2 168 2030 0.0 0.0 +fr - it 2 169 2030 0.0 0.0 +fr - it 2 170 2030 0.0 0.0 +fr - it 2 171 2030 0.0 0.0 +fr - it 2 172 2030 0.0 0.0 +fr - it 2 173 2030 0.0 0.0 +fr - it 2 174 2030 0.0 0.0 +fr - it 2 175 2030 0.0 0.0 +fr - it 2 176 2030 0.0 0.0 +fr - it 2 177 2030 0.0 0.0 +fr - it 2 178 2030 0.0 0.0 +fr - it 2 179 2030 0.0 0.0 +fr - it 2 180 2030 0.0 0.0 +fr - it 2 181 2030 0.0 0.0 +fr - it 2 182 2030 0.0 0.0 +fr - it 2 183 2030 0.0 0.0 +fr - it 2 184 2030 0.0 0.0 +fr - it 2 185 2030 0.0 0.0 +fr - it 2 186 2030 0.0 0.0 +fr - it 2 187 2030 0.0 0.0 +fr - it 2 188 2030 0.0 0.0 +fr - it 2 189 2030 0.0 0.0 +fr - it 2 190 2030 0.0 0.0 +fr - it 2 191 2030 0.0 0.0 +fr - it 2 192 2030 0.0 0.0 +fr - it 2 193 2030 0.0 0.0 +fr - it 2 194 2030 0.0 0.0 +fr - it 2 195 2030 0.0 0.0 +fr - it 2 196 2030 0.0 0.0 +fr - it 2 197 2030 0.0 0.0 +fr - it 2 198 2030 0.0 0.0 +fr - it 2 199 2030 0.0 0.0 +fr - it 2 200 2030 0.0 0.0 +fr - it 2 201 2030 0.0 0.0 +fr - it 2 202 2030 0.0 0.0 +fr - it 2 203 2030 0.0 0.0 +fr - it 2 204 2030 0.0 0.0 +fr - it 2 205 2030 0.0 0.0 +fr - it 2 206 2030 0.0 0.0 +fr - it 2 207 2030 0.0 0.0 +fr - it 2 208 2030 0.0 0.0 +fr - it 2 209 2030 0.0 0.0 +fr - it 2 210 2030 0.0 0.0 +fr - it 2 211 2030 0.0 0.0 +fr - it 2 212 2030 0.0 0.0 +fr - it 2 213 2030 0.0 0.0 +fr - it 2 214 2030 0.0 0.0 +fr - it 2 215 2030 0.0 0.0 +fr - it 2 216 2030 0.0 0.0 +fr - it 2 217 2030 0.0 0.0 +fr - it 2 218 2030 0.0 0.0 +fr - it 2 219 2030 0.0 0.0 +fr - it 2 220 2030 0.0 0.0 +fr - it 2 221 2030 0.0 0.0 +fr - it 2 222 2030 0.0 0.0 +fr - it 2 223 2030 0.0 0.0 +fr - it 2 224 2030 0.0 0.0 +fr - it 2 225 2030 0.0 0.0 +fr - it 2 226 2030 0.0 0.0 +fr - it 2 227 2030 0.0 0.0 +fr - it 2 228 2030 0.0 0.0 +fr - it 2 229 2030 0.0 0.0 +fr - it 2 230 2030 0.0 0.0 +fr - it 2 231 2030 0.0 0.0 +fr - it 2 232 2030 0.0 0.0 +fr - it 2 233 2030 0.0 0.0 +fr - it 2 234 2030 0.0 0.0 +fr - it 2 235 2030 0.0 0.0 +fr - it 2 236 2030 0.0 0.0 +fr - it 2 237 2030 0.0 0.0 +fr - it 2 238 2030 0.0 0.0 +fr - it 2 239 2030 0.0 0.0 +fr - it 2 240 2030 0.0 0.0 +fr - it 2 241 2030 0.0 0.0 +fr - it 2 242 2030 0.0 0.0 +fr - it 2 243 2030 0.0 0.0 +fr - it 2 244 2030 0.0 0.0 +fr - it 2 245 2030 0.0 0.0 +fr - it 2 246 2030 0.0 0.0 +fr - it 2 247 2030 0.0 0.0 +fr - it 2 248 2030 0.0 0.0 +fr - it 2 249 2030 0.0 0.0 +fr - it 2 250 2030 0.0 0.0 +fr - it 2 251 2030 0.0 0.0 +fr - it 2 252 2030 0.0 0.0 +fr - it 2 253 2030 0.0 0.0 +fr - it 2 254 2030 0.0 0.0 +fr - it 2 255 2030 0.0 0.0 +fr - it 2 256 2030 0.0 0.0 +fr - it 2 257 2030 0.0 0.0 +fr - it 2 258 2030 0.0 0.0 +fr - it 2 259 2030 0.0 0.0 +fr - it 2 260 2030 0.0 0.0 +fr - it 2 261 2030 0.0 0.0 +fr - it 2 262 2030 0.0 0.0 +fr - it 2 263 2030 0.0 0.0 +fr - it 2 264 2030 0.0 0.0 +fr - it 2 265 2030 0.0 0.0 +fr - it 2 266 2030 0.0 0.0 +fr - it 2 267 2030 0.0 0.0 +fr - it 2 268 2030 0.0 0.0 +fr - it 2 269 2030 0.0 0.0 +fr - it 2 270 2030 0.0 0.0 +fr - it 2 271 2030 0.0 0.0 +fr - it 2 272 2030 0.0 0.0 +fr - it 2 273 2030 0.0 0.0 +fr - it 2 274 2030 0.0 0.0 +fr - it 2 275 2030 0.0 0.0 +fr - it 2 276 2030 0.0 0.0 +fr - it 2 277 2030 0.0 0.0 +fr - it 2 278 2030 0.0 0.0 +fr - it 2 279 2030 0.0 0.0 +fr - it 2 280 2030 0.0 0.0 +fr - it 2 281 2030 0.0 0.0 +fr - it 2 282 2030 0.0 0.0 +fr - it 2 283 2030 0.0 0.0 +fr - it 2 284 2030 0.0 0.0 +fr - it 2 285 2030 0.0 0.0 +fr - it 2 286 2030 0.0 0.0 +fr - it 2 287 2030 0.0 0.0 +fr - it 2 288 2030 0.0 0.0 +fr - it 2 289 2030 0.0 0.0 +fr - it 2 290 2030 0.0 0.0 +fr - it 2 291 2030 0.0 0.0 +fr - it 2 292 2030 0.0 0.0 +fr - it 2 293 2030 0.0 0.0 +fr - it 2 294 2030 0.0 0.0 +fr - it 2 295 2030 0.0 0.0 +fr - it 2 296 2030 0.0 0.0 +fr - it 2 297 2030 0.0 0.0 +fr - it 2 298 2030 0.0 0.0 +fr - it 2 299 2030 0.0 0.0 +fr - it 2 300 2030 0.0 0.0 +fr - it 2 301 2030 0.0 0.0 +fr - it 2 302 2030 0.0 0.0 +fr - it 2 303 2030 0.0 0.0 +fr - it 2 304 2030 0.0 0.0 +fr - it 2 305 2030 0.0 0.0 +fr - it 2 306 2030 0.0 0.0 +fr - it 2 307 2030 0.0 0.0 +fr - it 2 308 2030 0.0 0.0 +fr - it 2 309 2030 0.0 0.0 +fr - it 2 310 2030 0.0 0.0 +fr - it 2 311 2030 0.0 0.0 +fr - it 2 312 2030 0.0 0.0 +fr - it 2 313 2030 0.0 0.0 +fr - it 2 314 2030 0.0 0.0 +fr - it 2 315 2030 0.0 0.0 +fr - it 2 316 2030 0.0 0.0 +fr - it 2 317 2030 0.0 0.0 +fr - it 2 318 2030 0.0 0.0 +fr - it 2 319 2030 0.0 0.0 +fr - it 2 320 2030 0.0 0.0 +fr - it 2 321 2030 0.0 0.0 +fr - it 2 322 2030 0.0 0.0 +fr - it 2 323 2030 0.0 0.0 +fr - it 2 324 2030 0.0 0.0 +fr - it 2 325 2030 0.0 0.0 +fr - it 2 326 2030 0.0 0.0 +fr - it 2 327 2030 0.0 0.0 +fr - it 2 328 2030 0.0 0.0 +fr - it 2 329 2030 0.0 0.0 +fr - it 2 330 2030 0.0 0.0 +fr - it 2 331 2030 0.0 0.0 +fr - it 2 332 2030 0.0 0.0 +fr - it 2 333 2030 0.0 0.0 +fr - it 2 334 2030 0.0 0.0 +fr - it 2 335 2030 0.0 0.0 +fr - it 2 336 2030 0.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-06-all.result.tsv b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-06-all.result.tsv new file mode 100644 index 0000000000..e5941006e4 --- /dev/null +++ b/tests/integration/raw_studies_blueprint/assets/aggregate_links_raw_data/test-06-all.result.tsv @@ -0,0 +1,365 @@ +link timeId time MARG. COST EXP MARG. COST STD MARG. COST MIN MARG. COST MAX CONG. PROB + VALUES +de - fr 1 0.0 0.0 0.0 0.0 0.0 +de - fr 2 0.0 0.0 0.0 0.0 0.0 +de - fr 3 0.0 0.0 0.0 0.0 0.0 +de - fr 4 0.0 0.0 0.0 0.0 0.0 +de - fr 5 0.0 0.0 0.0 0.0 0.0 +de - fr 6 0.0 0.0 0.0 0.0 0.0 +de - fr 7 0.0 0.0 0.0 0.0 0.0 +de - fr 8 0.0 0.0 0.0 0.0 0.0 +de - fr 9 0.0 0.0 0.0 0.0 0.0 +de - fr 10 0.0 0.0 0.0 0.0 0.0 +de - fr 11 0.0 0.0 0.0 0.0 0.0 +de - fr 12 0.0 0.0 0.0 0.0 0.0 +de - fr 13 0.0 0.0 0.0 0.0 0.0 +de - fr 14 0.0 0.0 0.0 0.0 0.0 +de - fr 15 0.0 0.0 0.0 0.0 0.0 +de - fr 16 0.0 0.0 0.0 0.0 0.0 +de - fr 17 0.0 0.0 0.0 0.0 0.0 +de - fr 18 0.0 0.0 0.0 0.0 0.0 +de - fr 19 0.0 0.0 0.0 0.0 0.0 +de - fr 20 0.0 0.0 0.0 0.0 0.0 +de - fr 21 0.0 0.0 0.0 0.0 0.0 +de - fr 22 0.0 0.0 0.0 0.0 0.0 +de - fr 23 0.0 0.0 0.0 0.0 0.0 +de - fr 24 0.0 0.0 0.0 0.0 0.0 +de - fr 25 0.0 0.0 0.0 0.0 0.0 +de - fr 26 0.0 0.0 0.0 0.0 0.0 +de - fr 27 0.0 0.0 0.0 0.0 0.0 +de - fr 28 0.0 0.0 0.0 0.0 0.0 +de - fr 29 0.0 0.0 0.0 0.0 0.0 +de - fr 30 0.0 0.0 0.0 0.0 0.0 +de - fr 31 0.0 0.0 0.0 0.0 0.0 +de - fr 32 0.0 0.0 0.0 0.0 0.0 +de - fr 33 0.0 0.0 0.0 0.0 0.0 +de - fr 34 0.0 0.0 0.0 0.0 0.0 +de - fr 35 0.0 0.0 0.0 0.0 0.0 +de - fr 36 0.0 0.0 0.0 0.0 0.0 +de - fr 37 0.0 0.0 0.0 0.0 0.0 +de - fr 38 0.0 0.0 0.0 0.0 0.0 +de - fr 39 0.0 0.0 0.0 0.0 0.0 +de - fr 40 0.0 0.0 0.0 0.0 0.0 +de - fr 41 0.0 0.0 0.0 0.0 0.0 +de - fr 42 0.0 0.0 0.0 0.0 0.0 +de - fr 43 0.0 0.0 0.0 0.0 0.0 +de - fr 44 0.0 0.0 0.0 0.0 0.0 +de - fr 45 0.0 0.0 0.0 0.0 0.0 +de - fr 46 0.0 0.0 0.0 0.0 0.0 +de - fr 47 0.0 0.0 0.0 0.0 0.0 +de - fr 48 0.0 0.0 0.0 0.0 0.0 +de - fr 49 0.0 0.0 0.0 0.0 0.0 +de - fr 50 0.0 0.0 0.0 0.0 0.0 +de - fr 51 0.0 0.0 0.0 0.0 0.0 +de - fr 52 0.0 0.0 0.0 0.0 0.0 +de - fr 53 0.0 0.0 0.0 0.0 0.0 +de - fr 54 0.0 0.0 0.0 0.0 0.0 +de - fr 55 0.0 0.0 0.0 0.0 0.0 +de - fr 56 0.0 0.0 0.0 0.0 0.0 +de - fr 57 0.0 0.0 0.0 0.0 0.0 +de - fr 58 0.0 0.0 0.0 0.0 0.0 +de - fr 59 0.0 0.0 0.0 0.0 0.0 +de - fr 60 0.0 0.0 0.0 0.0 0.0 +de - fr 61 0.0 0.0 0.0 0.0 0.0 +de - fr 62 0.0 0.0 0.0 0.0 0.0 +de - fr 63 0.0 0.0 0.0 0.0 0.0 +de - fr 64 0.0 0.0 0.0 0.0 0.0 +de - fr 65 0.0 0.0 0.0 0.0 0.0 +de - fr 66 0.0 0.0 0.0 0.0 0.0 +de - fr 67 0.0 0.0 0.0 0.0 0.0 +de - fr 68 0.0 0.0 0.0 0.0 0.0 +de - fr 69 0.0 0.0 0.0 0.0 0.0 +de - fr 70 0.0 0.0 0.0 0.0 0.0 +de - fr 71 0.0 0.0 0.0 0.0 0.0 +de - fr 72 0.0 0.0 0.0 0.0 0.0 +de - fr 73 0.0 0.0 0.0 0.0 0.0 +de - fr 74 0.0 0.0 0.0 0.0 0.0 +de - fr 75 0.0 0.0 0.0 0.0 0.0 +de - fr 76 0.0 0.0 0.0 0.0 0.0 +de - fr 77 0.0 0.0 0.0 0.0 0.0 +de - fr 78 0.0 0.0 0.0 0.0 0.0 +de - fr 79 0.0 0.0 0.0 0.0 0.0 +de - fr 80 0.0 0.0 0.0 0.0 0.0 +de - fr 81 0.0 0.0 0.0 0.0 0.0 +de - fr 82 0.0 0.0 0.0 0.0 0.0 +de - fr 83 0.0 0.0 0.0 0.0 0.0 +de - fr 84 0.0 0.0 0.0 0.0 0.0 +de - fr 85 0.0 0.0 0.0 0.0 0.0 +de - fr 86 0.0 0.0 0.0 0.0 0.0 +de - fr 87 0.0 0.0 0.0 0.0 0.0 +de - fr 88 0.0 0.0 0.0 0.0 0.0 +de - fr 89 0.0 0.0 0.0 0.0 0.0 +de - fr 90 0.0 0.0 0.0 0.0 0.0 +de - fr 91 0.0 0.0 0.0 0.0 0.0 +de - fr 92 0.0 0.0 0.0 0.0 0.0 +de - fr 93 0.0 0.0 0.0 0.0 0.0 +de - fr 94 0.0 0.0 0.0 0.0 0.0 +de - fr 95 0.0 0.0 0.0 0.0 0.0 +de - fr 96 0.0 0.0 0.0 0.0 0.0 +de - fr 97 0.0 0.0 0.0 0.0 0.0 +de - fr 98 0.0 0.0 0.0 0.0 0.0 +de - fr 99 0.0 0.0 0.0 0.0 0.0 +de - fr 100 0.0 0.0 0.0 0.0 0.0 +de - fr 101 0.0 0.0 0.0 0.0 0.0 +de - fr 102 0.0 0.0 0.0 0.0 0.0 +de - fr 103 0.0 0.0 0.0 0.0 0.0 +de - fr 104 0.0 0.0 0.0 0.0 0.0 +de - fr 105 0.0 0.0 0.0 0.0 0.0 +de - fr 106 0.0 0.0 0.0 0.0 0.0 +de - fr 107 0.0 0.0 0.0 0.0 0.0 +de - fr 108 0.0 0.0 0.0 0.0 0.0 +de - fr 109 0.0 0.0 0.0 0.0 0.0 +de - fr 110 0.0 0.0 0.0 0.0 0.0 +de - fr 111 0.0 0.0 0.0 0.0 0.0 +de - fr 112 0.0 0.0 0.0 0.0 0.0 +de - fr 113 0.0 0.0 0.0 0.0 0.0 +de - fr 114 0.0 0.0 0.0 0.0 0.0 +de - fr 115 0.0 0.0 0.0 0.0 0.0 +de - fr 116 0.0 0.0 0.0 0.0 0.0 +de - fr 117 0.0 0.0 0.0 0.0 0.0 +de - fr 118 0.0 0.0 0.0 0.0 0.0 +de - fr 119 0.0 0.0 0.0 0.0 0.0 +de - fr 120 0.0 0.0 0.0 0.0 0.0 +de - fr 121 0.0 0.0 0.0 0.0 0.0 +de - fr 122 0.0 0.0 0.0 0.0 0.0 +de - fr 123 0.0 0.0 0.0 0.0 0.0 +de - fr 124 0.0 0.0 0.0 0.0 0.0 +de - fr 125 0.0 0.0 0.0 0.0 0.0 +de - fr 126 0.0 0.0 0.0 0.0 0.0 +de - fr 127 0.0 0.0 0.0 0.0 0.0 +de - fr 128 0.0 0.0 0.0 0.0 0.0 +de - fr 129 0.0 0.0 0.0 0.0 0.0 +de - fr 130 0.0 0.0 0.0 0.0 0.0 +de - fr 131 0.0 0.0 0.0 0.0 0.0 +de - fr 132 0.0 0.0 0.0 0.0 0.0 +de - fr 133 0.0 0.0 0.0 0.0 0.0 +de - fr 134 0.0 0.0 0.0 0.0 0.0 +de - fr 135 0.0 0.0 0.0 0.0 0.0 +de - fr 136 0.0 0.0 0.0 0.0 0.0 +de - fr 137 0.0 0.0 0.0 0.0 0.0 +de - fr 138 0.0 0.0 0.0 0.0 0.0 +de - fr 139 0.0 0.0 0.0 0.0 0.0 +de - fr 140 0.0 0.0 0.0 0.0 0.0 +de - fr 141 0.0 0.0 0.0 0.0 0.0 +de - fr 142 0.0 0.0 0.0 0.0 0.0 +de - fr 143 0.0 0.0 0.0 0.0 0.0 +de - fr 144 0.0 0.0 0.0 0.0 0.0 +de - fr 145 0.0 0.0 0.0 0.0 0.0 +de - fr 146 0.0 0.0 0.0 0.0 0.0 +de - fr 147 0.0 0.0 0.0 0.0 0.0 +de - fr 148 0.0 0.0 0.0 0.0 0.0 +de - fr 149 0.0 0.0 0.0 0.0 0.0 +de - fr 150 0.0 0.0 0.0 0.0 0.0 +de - fr 151 0.0 0.0 0.0 0.0 0.0 +de - fr 152 0.0 0.0 0.0 0.0 0.0 +de - fr 153 0.0 0.0 0.0 0.0 0.0 +de - fr 154 0.0 0.0 0.0 0.0 0.0 +de - fr 155 0.0 0.0 0.0 0.0 0.0 +de - fr 156 0.0 0.0 0.0 0.0 0.0 +de - fr 157 0.0 0.0 0.0 0.0 0.0 +de - fr 158 0.0 0.0 0.0 0.0 0.0 +de - fr 159 0.0 0.0 0.0 0.0 0.0 +de - fr 160 0.0 0.0 0.0 0.0 0.0 +de - fr 161 0.0 0.0 0.0 0.0 0.0 +de - fr 162 0.0 0.0 0.0 0.0 0.0 +de - fr 163 0.0 0.0 0.0 0.0 0.0 +de - fr 164 0.0 0.0 0.0 0.0 0.0 +de - fr 165 0.0 0.0 0.0 0.0 0.0 +de - fr 166 0.0 0.0 0.0 0.0 0.0 +de - fr 167 0.0 0.0 0.0 0.0 0.0 +de - fr 168 0.0 0.0 0.0 0.0 0.0 +de - fr 169 0.0 0.0 0.0 0.0 0.0 +de - fr 170 0.0 0.0 0.0 0.0 0.0 +de - fr 171 0.0 0.0 0.0 0.0 0.0 +de - fr 172 0.0 0.0 0.0 0.0 0.0 +de - fr 173 0.0 0.0 0.0 0.0 0.0 +de - fr 174 0.0 0.0 0.0 0.0 0.0 +de - fr 175 0.0 0.0 0.0 0.0 0.0 +de - fr 176 0.0 0.0 0.0 0.0 0.0 +de - fr 177 0.0 0.0 0.0 0.0 0.0 +de - fr 178 0.0 0.0 0.0 0.0 0.0 +de - fr 179 0.0 0.0 0.0 0.0 0.0 +de - fr 180 0.0 0.0 0.0 0.0 0.0 +de - fr 181 0.0 0.0 0.0 0.0 0.0 +de - fr 182 0.0 0.0 0.0 0.0 0.0 +de - fr 183 0.0 0.0 0.0 0.0 0.0 +de - fr 184 0.0 0.0 0.0 0.0 0.0 +de - fr 185 0.0 0.0 0.0 0.0 0.0 +de - fr 186 0.0 0.0 0.0 0.0 0.0 +de - fr 187 0.0 0.0 0.0 0.0 0.0 +de - fr 188 0.0 0.0 0.0 0.0 0.0 +de - fr 189 0.0 0.0 0.0 0.0 0.0 +de - fr 190 0.0 0.0 0.0 0.0 0.0 +de - fr 191 0.0 0.0 0.0 0.0 0.0 +de - fr 192 0.0 0.0 0.0 0.0 0.0 +de - fr 193 0.0 0.0 0.0 0.0 0.0 +de - fr 194 0.0 0.0 0.0 0.0 0.0 +de - fr 195 0.0 0.0 0.0 0.0 0.0 +de - fr 196 0.0 0.0 0.0 0.0 0.0 +de - fr 197 0.0 0.0 0.0 0.0 0.0 +de - fr 198 0.0 0.0 0.0 0.0 0.0 +de - fr 199 0.0 0.0 0.0 0.0 0.0 +de - fr 200 0.0 0.0 0.0 0.0 0.0 +de - fr 201 0.0 0.0 0.0 0.0 0.0 +de - fr 202 0.0 0.0 0.0 0.0 0.0 +de - fr 203 0.0 0.0 0.0 0.0 0.0 +de - fr 204 0.0 0.0 0.0 0.0 0.0 +de - fr 205 0.0 0.0 0.0 0.0 0.0 +de - fr 206 0.0 0.0 0.0 0.0 0.0 +de - fr 207 0.0 0.0 0.0 0.0 0.0 +de - fr 208 0.0 0.0 0.0 0.0 0.0 +de - fr 209 0.0 0.0 0.0 0.0 0.0 +de - fr 210 0.0 0.0 0.0 0.0 0.0 +de - fr 211 0.0 0.0 0.0 0.0 0.0 +de - fr 212 0.0 0.0 0.0 0.0 0.0 +de - fr 213 0.0 0.0 0.0 0.0 0.0 +de - fr 214 0.0 0.0 0.0 0.0 0.0 +de - fr 215 0.0 0.0 0.0 0.0 0.0 +de - fr 216 0.0 0.0 0.0 0.0 0.0 +de - fr 217 0.0 0.0 0.0 0.0 0.0 +de - fr 218 0.0 0.0 0.0 0.0 0.0 +de - fr 219 0.0 0.0 0.0 0.0 0.0 +de - fr 220 0.0 0.0 0.0 0.0 0.0 +de - fr 221 0.0 0.0 0.0 0.0 0.0 +de - fr 222 0.0 0.0 0.0 0.0 0.0 +de - fr 223 0.0 0.0 0.0 0.0 0.0 +de - fr 224 0.0 0.0 0.0 0.0 0.0 +de - fr 225 0.0 0.0 0.0 0.0 0.0 +de - fr 226 0.0 0.0 0.0 0.0 0.0 +de - fr 227 0.0 0.0 0.0 0.0 0.0 +de - fr 228 0.0 0.0 0.0 0.0 0.0 +de - fr 229 0.0 0.0 0.0 0.0 0.0 +de - fr 230 0.0 0.0 0.0 0.0 0.0 +de - fr 231 0.0 0.0 0.0 0.0 0.0 +de - fr 232 0.0 0.0 0.0 0.0 0.0 +de - fr 233 0.0 0.0 0.0 0.0 0.0 +de - fr 234 0.0 0.0 0.0 0.0 0.0 +de - fr 235 0.0 0.0 0.0 0.0 0.0 +de - fr 236 0.0 0.0 0.0 0.0 0.0 +de - fr 237 0.0 0.0 0.0 0.0 0.0 +de - fr 238 0.0 0.0 0.0 0.0 0.0 +de - fr 239 0.0 0.0 0.0 0.0 0.0 +de - fr 240 0.0 0.0 0.0 0.0 0.0 +de - fr 241 0.0 0.0 0.0 0.0 0.0 +de - fr 242 0.0 0.0 0.0 0.0 0.0 +de - fr 243 0.0 0.0 0.0 0.0 0.0 +de - fr 244 0.0 0.0 0.0 0.0 0.0 +de - fr 245 0.0 0.0 0.0 0.0 0.0 +de - fr 246 0.0 0.0 0.0 0.0 0.0 +de - fr 247 0.0 0.0 0.0 0.0 0.0 +de - fr 248 0.0 0.0 0.0 0.0 0.0 +de - fr 249 0.0 0.0 0.0 0.0 0.0 +de - fr 250 0.0 0.0 0.0 0.0 0.0 +de - fr 251 0.0 0.0 0.0 0.0 0.0 +de - fr 252 0.0 0.0 0.0 0.0 0.0 +de - fr 253 0.0 0.0 0.0 0.0 0.0 +de - fr 254 0.0 0.0 0.0 0.0 0.0 +de - fr 255 0.0 0.0 0.0 0.0 0.0 +de - fr 256 0.0 0.0 0.0 0.0 0.0 +de - fr 257 0.0 0.0 0.0 0.0 0.0 +de - fr 258 0.0 0.0 0.0 0.0 0.0 +de - fr 259 0.0 0.0 0.0 0.0 0.0 +de - fr 260 0.0 0.0 0.0 0.0 0.0 +de - fr 261 0.0 0.0 0.0 0.0 0.0 +de - fr 262 0.0 0.0 0.0 0.0 0.0 +de - fr 263 0.0 0.0 0.0 0.0 0.0 +de - fr 264 0.0 0.0 0.0 0.0 0.0 +de - fr 265 0.0 0.0 0.0 0.0 0.0 +de - fr 266 0.0 0.0 0.0 0.0 0.0 +de - fr 267 0.0 0.0 0.0 0.0 0.0 +de - fr 268 0.0 0.0 0.0 0.0 0.0 +de - fr 269 0.0 0.0 0.0 0.0 0.0 +de - fr 270 0.0 0.0 0.0 0.0 0.0 +de - fr 271 0.0 0.0 0.0 0.0 0.0 +de - fr 272 0.0 0.0 0.0 0.0 0.0 +de - fr 273 0.0 0.0 0.0 0.0 0.0 +de - fr 274 0.0 0.0 0.0 0.0 0.0 +de - fr 275 0.0 0.0 0.0 0.0 0.0 +de - fr 276 0.0 0.0 0.0 0.0 0.0 +de - fr 277 0.0 0.0 0.0 0.0 0.0 +de - fr 278 0.0 0.0 0.0 0.0 0.0 +de - fr 279 0.0 0.0 0.0 0.0 0.0 +de - fr 280 0.0 0.0 0.0 0.0 0.0 +de - fr 281 0.0 0.0 0.0 0.0 0.0 +de - fr 282 0.0 0.0 0.0 0.0 0.0 +de - fr 283 0.0 0.0 0.0 0.0 0.0 +de - fr 284 0.0 0.0 0.0 0.0 0.0 +de - fr 285 0.0 0.0 0.0 0.0 0.0 +de - fr 286 0.0 0.0 0.0 0.0 0.0 +de - fr 287 0.0 0.0 0.0 0.0 0.0 +de - fr 288 0.0 0.0 0.0 0.0 0.0 +de - fr 289 0.0 0.0 0.0 0.0 0.0 +de - fr 290 0.0 0.0 0.0 0.0 0.0 +de - fr 291 0.0 0.0 0.0 0.0 0.0 +de - fr 292 0.0 0.0 0.0 0.0 0.0 +de - fr 293 0.0 0.0 0.0 0.0 0.0 +de - fr 294 0.0 0.0 0.0 0.0 0.0 +de - fr 295 0.0 0.0 0.0 0.0 0.0 +de - fr 296 0.0 0.0 0.0 0.0 0.0 +de - fr 297 0.0 0.0 0.0 0.0 0.0 +de - fr 298 0.0 0.0 0.0 0.0 0.0 +de - fr 299 0.0 0.0 0.0 0.0 0.0 +de - fr 300 0.0 0.0 0.0 0.0 0.0 +de - fr 301 0.0 0.0 0.0 0.0 0.0 +de - fr 302 0.0 0.0 0.0 0.0 0.0 +de - fr 303 0.0 0.0 0.0 0.0 0.0 +de - fr 304 0.0 0.0 0.0 0.0 0.0 +de - fr 305 0.0 0.0 0.0 0.0 0.0 +de - fr 306 0.0 0.0 0.0 0.0 0.0 +de - fr 307 0.0 0.0 0.0 0.0 0.0 +de - fr 308 0.0 0.0 0.0 0.0 0.0 +de - fr 309 0.0 0.0 0.0 0.0 0.0 +de - fr 310 0.0 0.0 0.0 0.0 0.0 +de - fr 311 0.0 0.0 0.0 0.0 0.0 +de - fr 312 0.0 0.0 0.0 0.0 0.0 +de - fr 313 0.0 0.0 0.0 0.0 0.0 +de - fr 314 0.0 0.0 0.0 0.0 0.0 +de - fr 315 0.0 0.0 0.0 0.0 0.0 +de - fr 316 0.0 0.0 0.0 0.0 0.0 +de - fr 317 0.0 0.0 0.0 0.0 0.0 +de - fr 318 0.0 0.0 0.0 0.0 0.0 +de - fr 319 0.0 0.0 0.0 0.0 0.0 +de - fr 320 0.0 0.0 0.0 0.0 0.0 +de - fr 321 0.0 0.0 0.0 0.0 0.0 +de - fr 322 0.0 0.0 0.0 0.0 0.0 +de - fr 323 0.0 0.0 0.0 0.0 0.0 +de - fr 324 0.0 0.0 0.0 0.0 0.0 +de - fr 325 0.0 0.0 0.0 0.0 0.0 +de - fr 326 0.0 0.0 0.0 0.0 0.0 +de - fr 327 0.0 0.0 0.0 0.0 0.0 +de - fr 328 0.0 0.0 0.0 0.0 0.0 +de - fr 329 0.0 0.0 0.0 0.0 0.0 +de - fr 330 0.0 0.0 0.0 0.0 0.0 +de - fr 331 0.0 0.0 0.0 0.0 0.0 +de - fr 332 0.0 0.0 0.0 0.0 0.0 +de - fr 333 0.0 0.0 0.0 0.0 0.0 +de - fr 334 0.0 0.0 0.0 0.0 0.0 +de - fr 335 0.0 0.0 0.0 0.0 0.0 +de - fr 336 0.0 0.0 0.0 0.0 0.0 +de - fr 337 0.0 0.0 0.0 0.0 0.0 +de - fr 338 0.0 0.0 0.0 0.0 0.0 +de - fr 339 0.0 0.0 0.0 0.0 0.0 +de - fr 340 0.0 0.0 0.0 0.0 0.0 +de - fr 341 0.0 0.0 0.0 0.0 0.0 +de - fr 342 0.0 0.0 0.0 0.0 0.0 +de - fr 343 0.0 0.0 0.0 0.0 0.0 +de - fr 344 0.0 0.0 0.0 0.0 0.0 +de - fr 345 0.0 0.0 0.0 0.0 0.0 +de - fr 346 0.0 0.0 0.0 0.0 0.0 +de - fr 347 0.0 0.0 0.0 0.0 0.0 +de - fr 348 0.0 0.0 0.0 0.0 0.0 +de - fr 349 0.0 0.0 0.0 0.0 0.0 +de - fr 350 0.0 0.0 0.0 0.0 0.0 +de - fr 351 0.0 0.0 0.0 0.0 0.0 +de - fr 352 0.0 0.0 0.0 0.0 0.0 +de - fr 353 0.0 0.0 0.0 0.0 0.0 +de - fr 354 0.0 0.0 0.0 0.0 0.0 +de - fr 355 0.0 0.0 0.0 0.0 0.0 +de - fr 356 0.0 0.0 0.0 0.0 0.0 +de - fr 357 0.0 0.0 0.0 0.0 0.0 +de - fr 358 0.0 0.0 0.0 0.0 0.0 +de - fr 359 0.0 0.0 0.0 0.0 0.0 +de - fr 360 0.0 0.0 0.0 0.0 0.0 +de - fr 361 0.0 0.0 0.0 0.0 0.0 +de - fr 362 0.0 0.0 0.0 0.0 0.0 +de - fr 363 0.0 0.0 0.0 0.0 0.0 +de - fr 364 0.0 0.0 0.0 0.0 0.0 diff --git a/tests/integration/raw_studies_blueprint/test_aggregate_raw_data.py b/tests/integration/raw_studies_blueprint/test_aggregate_raw_data.py index 1dd53fdfe2..9d9f47e120 100644 --- a/tests/integration/raw_studies_blueprint/test_aggregate_raw_data.py +++ b/tests/integration/raw_studies_blueprint/test_aggregate_raw_data.py @@ -1,21 +1,34 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io +import shutil +from pathlib import Path import numpy as np import pandas as pd import pytest from starlette.testclient import TestClient -from antarest.study.business.aggregator_management import AreasQueryFile, LinksQueryFile from antarest.study.storage.df_download import TableExportFormat -from antarest.study.storage.rawstudy.model.filesystem.matrix.matrix import MatrixFrequency from tests.integration.raw_studies_blueprint.assets import ASSETS_DIR -AREAS_REQUESTS = [ +# define the requests parameters for the `economy/mc-ind` outputs aggregation +AREAS_REQUESTS__IND = [ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": AreasQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "mc_years": "", "areas_ids": "", "columns_names": "", @@ -25,8 +38,8 @@ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": AreasQueryFile.DETAILS, - "frequency": MatrixFrequency.HOURLY, + "query_file": "details", + "frequency": "hourly", "mc_years": "1", "areas_ids": "de,fr,it", "columns_names": "", @@ -36,8 +49,8 @@ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": AreasQueryFile.VALUES, - "frequency": MatrixFrequency.WEEKLY, + "query_file": "values", + "frequency": "weekly", "mc_years": "1,2", "areas_ids": "", "columns_names": "OP. COST,MRG. PRICE", @@ -47,8 +60,8 @@ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": AreasQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "mc_years": "2", "areas_ids": "es,fr,de", "columns_names": "", @@ -58,22 +71,40 @@ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": AreasQueryFile.VALUES, - "frequency": MatrixFrequency.ANNUAL, + "query_file": "values", + "frequency": "annual", "mc_years": "", "areas_ids": "", "columns_names": "", }, "test-05.result.tsv", ), + ( + { + "output_id": "20201014-1425eco-goodbye", + "query_file": "values", + "frequency": "hourly", + "columns_names": "COSt,NODu", + }, + "test-06.result.tsv", + ), + ( + { + "output_id": "20201014-1425eco-goodbye", + "query_file": "details", + "frequency": "hourly", + "columns_names": "COSt,NODu", + }, + "test-07.result.tsv", + ), ] -LINKS_REQUESTS = [ +LINKS_REQUESTS__IND = [ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": LinksQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "mc_years": "", "columns_names": "", }, @@ -82,8 +113,8 @@ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": LinksQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "mc_years": "1", "columns_names": "", }, @@ -92,31 +123,40 @@ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": LinksQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "mc_years": "1,2", - "columns_names": "UCAP LIN.,FLOW QUAD.", + "columns_names": "UCAP LIn.,FLOw qUAD.", }, "test-03.result.tsv", ), ( { "output_id": "20201014-1425eco-goodbye", - "query_file": LinksQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "mc_years": "1", "links_ids": "de - fr", }, "test-04.result.tsv", ), + ( + { + "output_id": "20201014-1425eco-goodbye", + "query_file": "values", + "frequency": "hourly", + "columns_names": "MArG. COsT,CONG. PRoB +", + }, + "test-05.result.tsv", + ), ] -SAME_REQUEST_DIFFERENT_FORMATS = [ +SAME_REQUEST_DIFFERENT_FORMATS__IND = [ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": LinksQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "format": "csv", }, "test-01.result.tsv", @@ -124,8 +164,8 @@ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": LinksQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "format": "tsv", }, "test-01.result.tsv", @@ -133,8 +173,8 @@ ( { "output_id": "20201014-1425eco-goodbye", - "query_file": LinksQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "format": "xlsx", }, "test-01.result.tsv", @@ -142,49 +182,258 @@ ] -INCOHERENT_REQUESTS_BODIES = [ +INCOHERENT_REQUESTS_BODIES__IND = [ { "output_id": "20201014-1425eco-goodbye", - "query_file": AreasQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "mc_years": "123456789", }, { "output_id": "20201014-1425eco-goodbye", - "query_file": LinksQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "columns_names": "fake_col", }, { "output_id": "20201014-1425eco-goodbye", - "query_file": AreasQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", "links_ids": "fake_id", }, ] -WRONGLY_TYPED_REQUESTS = [ +WRONGLY_TYPED_REQUESTS__IND = [ { "output_id": "20201014-1425eco-goodbye", "query_file": "fake_query_file", - "frequency": MatrixFrequency.HOURLY, + "frequency": "hourly", }, { "output_id": "20201014-1425eco-goodbye", - "query_file": AreasQueryFile.VALUES, + "query_file": "values", "frequency": "fake_frequency", }, { "output_id": "20201014-1425eco-goodbye", - "query_file": AreasQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", + "format": "fake_format", + }, +] + +# define the requests parameters for the `economy/mc-all` outputs aggregation +AREAS_REQUESTS__ALL = [ + ( + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "daily", + "areas_ids": "", + "columns_names": "", + }, + "test-01-all.result.tsv", + ), + ( + { + "output_id": "20201014-1427eco", + "query_file": "details", + "frequency": "monthly", + "areas_ids": "de,fr,it", + "columns_names": "", + }, + "test-02-all.result.tsv", + ), + ( + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "daily", + "areas_ids": "", + "columns_names": "OP. CoST,MRG. PrICE", + }, + "test-03-all.result.tsv", + ), + ( + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "daily", + "areas_ids": "es,fr,de", + "columns_names": "", + }, + "test-04-all.result.tsv", + ), + ( + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "monthly", + "areas_ids": "", + "columns_names": "", + }, + "test-05-all.result.tsv", + ), + ( + { + "output_id": "20201014-1427eco", + "query_file": "id", + "frequency": "daily", + "areas_ids": "", + "columns_names": "", + }, + "test-06-all.result.tsv", + ), + ( + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "daily", + "columns_names": "COsT,NoDU", + }, + "test-07-all.result.tsv", + ), + ( + { + "output_id": "20201014-1427eco", + "query_file": "details", + "frequency": "monthly", + "columns_names": "COsT,NoDU", + }, + "test-08-all.result.tsv", + ), +] + +LINKS_REQUESTS__ALL = [ + ( + { + "output_id": "20241807-1540eco-extra-outputs", + "query_file": "values", + "frequency": "daily", + "columns_names": "", + }, + "test-01-all.result.tsv", + ), + ( + { + "output_id": "20241807-1540eco-extra-outputs", + "query_file": "values", + "frequency": "monthly", + "columns_names": "", + }, + "test-02-all.result.tsv", + ), + ( + { + "output_id": "20241807-1540eco-extra-outputs", + "query_file": "values", + "frequency": "daily", + "columns_names": "", + }, + "test-03-all.result.tsv", + ), + ( + { + "output_id": "20241807-1540eco-extra-outputs", + "query_file": "values", + "frequency": "monthly", + "links_ids": "de - fr", + }, + "test-04-all.result.tsv", + ), + ( + { + "output_id": "20241807-1540eco-extra-outputs", + "query_file": "id", + "frequency": "daily", + "links_ids": "", + }, + "test-05-all.result.tsv", + ), + ( + { + "output_id": "20241807-1540eco-extra-outputs", + "query_file": "values", + "frequency": "daily", + "columns_names": "MARG. COsT,CONG. ProB +", + }, + "test-06-all.result.tsv", + ), +] + +SAME_REQUEST_DIFFERENT_FORMATS__ALL = [ + ( + { + "output_id": "20241807-1540eco-extra-outputs", + "query_file": "values", + "frequency": "daily", + "format": "csv", + }, + "test-01-all.result.tsv", + ), + ( + { + "output_id": "20241807-1540eco-extra-outputs", + "query_file": "values", + "frequency": "daily", + "format": "tsv", + }, + "test-01-all.result.tsv", + ), + ( + { + "output_id": "20241807-1540eco-extra-outputs", + "query_file": "values", + "frequency": "daily", + "format": "xlsx", + }, + "test-01-all.result.tsv", + ), +] + + +INCOHERENT_REQUESTS_BODIES__ALL = [ + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "daily", + }, + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "daily", + "columns_names": "fake_col", + }, + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "monthly", + "links_ids": "fake_id", + }, +] + +WRONGLY_TYPED_REQUESTS__ALL = [ + { + "output_id": "20201014-1427eco", + "query_file": "fake_query_file", + "frequency": "monthly", + }, + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "fake_frequency", + }, + { + "output_id": "20201014-1427eco", + "query_file": "values", + "frequency": "daily", "format": "fake_format", }, ] @pytest.mark.integration_test -class TestRawDataAggregation: +class TestRawDataAggregationMCInd: """ Check the aggregation of Raw Data from studies outputs """ @@ -200,9 +449,9 @@ def test_area_aggregation( """ client.headers = {"Authorization": f"Bearer {user_access_token}"} - for params, expected_result_filename in AREAS_REQUESTS: + for params, expected_result_filename in AREAS_REQUESTS__IND: output_id = params.pop("output_id") - res = client.get(f"/v1/studies/{internal_study_id}/areas/aggregate/{output_id}", params=params) + res = client.get(f"/v1/studies/{internal_study_id}/areas/aggregate/mc-ind/{output_id}", params=params) assert res.status_code == 200, res.json() content = io.BytesIO(res.content) df = pd.read_csv(content, index_col=0, sep=",") @@ -229,9 +478,9 @@ def test_links_aggregation( """ client.headers = {"Authorization": f"Bearer {user_access_token}"} - for params, expected_result_filename in LINKS_REQUESTS: + for params, expected_result_filename in LINKS_REQUESTS__IND: output_id = params.pop("output_id") - res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/{output_id}", params=params) + res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/mc-ind/{output_id}", params=params) assert res.status_code == 200, res.json() content = io.BytesIO(res.content) df = pd.read_csv(content, index_col=0, sep=",") @@ -258,9 +507,9 @@ def test_different_formats( """ client.headers = {"Authorization": f"Bearer {user_access_token}"} - for params, expected_result_filename in SAME_REQUEST_DIFFERENT_FORMATS: + for params, expected_result_filename in SAME_REQUEST_DIFFERENT_FORMATS__IND: output_id = params.pop("output_id") - res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/{output_id}", params=params) + res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/mc-ind/{output_id}", params=params) assert res.status_code == 200, res.json() content = io.BytesIO(res.content) export_format = params["format"] @@ -289,9 +538,9 @@ def test_aggregation_with_incoherent_bodies( Asserts that requests with incoherent bodies don't crash but send empty dataframes """ client.headers = {"Authorization": f"Bearer {user_access_token}"} - for params in INCOHERENT_REQUESTS_BODIES: + for params in INCOHERENT_REQUESTS_BODIES__IND: output_id = params.pop("output_id") - res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/{output_id}", params=params) + res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/mc-ind/{output_id}", params=params) assert res.status_code == 200, res.json() content = io.BytesIO(res.content) df = pd.read_csv(content, index_col=0, sep=",") @@ -302,9 +551,9 @@ def test_wrongly_typed_request(self, client: TestClient, user_access_token: str, Asserts that wrongly typed requests send an HTTP 422 Exception """ client.headers = {"Authorization": f"Bearer {user_access_token}"} - for params in WRONGLY_TYPED_REQUESTS: + for params in WRONGLY_TYPED_REQUESTS__IND: output_id = params.pop("output_id") - res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/{output_id}", params=params) + res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/mc-ind/{output_id}", params=params) assert res.status_code == 422 assert res.json()["exception"] == "RequestValidationError" @@ -316,10 +565,10 @@ def test_aggregation_with_wrong_output(self, client: TestClient, user_access_tok # test for areas res = client.get( - f"/v1/studies/{internal_study_id}/areas/aggregate/unknown_id", + f"/v1/studies/{internal_study_id}/areas/aggregate/mc-ind/unknown_id", params={ - "query_file": AreasQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", }, ) assert res.status_code == 404, res.json() @@ -328,12 +577,271 @@ def test_aggregation_with_wrong_output(self, client: TestClient, user_access_tok # test for links res = client.get( - f"/v1/studies/{internal_study_id}/links/aggregate/unknown_id", + f"/v1/studies/{internal_study_id}/links/aggregate/mc-ind/unknown_id", params={ - "query_file": LinksQueryFile.VALUES, - "frequency": MatrixFrequency.HOURLY, + "query_file": "values", + "frequency": "hourly", }, ) assert res.status_code == 404, res.json() assert res.json()["exception"] == "OutputNotFound" assert "unknown_id" in res.json()["description"], "The output_id should be in the message" + + def test_empty_columns(self, client: TestClient, user_access_token: str, internal_study_id: str): + """ + Asserts that requests get an empty dataframe when columns are not existing + """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} + + # test for areas + res = client.get( + f"/v1/studies/{internal_study_id}/areas/aggregate/mc-ind/20201014-1425eco-goodbye", + params={ + "query_file": "details", + "frequency": "hourly", + "columns_names": "fake_col", + }, + ) + assert res.status_code == 200, res.json() + df = pd.read_csv(io.BytesIO(res.content), index_col=0, sep=",") + assert df.empty + + # test for links + res = client.get( + f"/v1/studies/{internal_study_id}/links/aggregate/mc-ind/20201014-1425eco-goodbye", + params={ + "query_file": "values", + "frequency": "hourly", + "columns_names": "fake_col", + }, + ) + assert res.status_code == 200, res.json() + df = pd.read_csv(io.BytesIO(res.content), index_col=0, sep=",") + assert df.empty + + def test_non_existing_folder( + self, tmp_path: Path, client: TestClient, user_access_token: str, internal_study_id: str + ): + """ + Asserts that requests with non-existing folders send an HTTP 404 Exception + """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} + + # the mc-ind folder + mc_ind_folder = tmp_path.joinpath("ext_workspace/STA-mini/output/20201014-1425eco-goodbye/economy/mc-ind") + # delete the folder + shutil.rmtree(mc_ind_folder) + res = client.get( + f"/v1/studies/{internal_study_id}/areas/aggregate/mc-ind/20201014-1425eco-goodbye", + params={"query_file": "values", "frequency": "hourly"}, + ) + assert res.status_code == 404, res.json() + assert "economy/mc-ind" in res.json()["description"] + assert res.json()["exception"] == "OutputSubFolderNotFound" + + +@pytest.mark.integration_test +class TestRawDataAggregationMCAll: + """ + Check the aggregation of Raw Data from studies outputs in `economy/mc-all` + """ + + def test_area_aggregation( + self, + client: TestClient, + user_access_token: str, + internal_study_id: str, + ): + """ + Test the aggregation of areas data + """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} + + for params, expected_result_filename in AREAS_REQUESTS__ALL: + output_id = params.pop("output_id") + res = client.get(f"/v1/studies/{internal_study_id}/areas/aggregate/mc-all/{output_id}", params=params) + assert res.status_code == 200, res.json() + content = io.BytesIO(res.content) + df = pd.read_csv(content, index_col=0, sep=",") + resource_file = ASSETS_DIR.joinpath(f"aggregate_areas_raw_data/{expected_result_filename}") + resource_file.parent.mkdir(exist_ok=True, parents=True) + if not resource_file.exists(): + # create the resource to add it to non-regression tests + df.to_csv(resource_file, sep="\t", index=False) + expected_df = pd.read_csv(resource_file, sep="\t", header=0) + expected_df = expected_df.replace({np.nan: None}) + # cast types of expected_df to match df + for col in expected_df.columns: + expected_df[col] = expected_df[col].astype(df[col].dtype) + pd.testing.assert_frame_equal(df, expected_df) + + def test_links_aggregation( + self, + client: TestClient, + user_access_token: str, + internal_study_id: str, + ): + """ + Test the aggregation of links data + """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} + + for params, expected_result_filename in LINKS_REQUESTS__ALL: + output_id = params.pop("output_id") + res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/mc-all/{output_id}", params=params) + assert res.status_code == 200, res.json() + content = io.BytesIO(res.content) + df = pd.read_csv(content, index_col=0, sep=",") + resource_file = ASSETS_DIR.joinpath(f"aggregate_links_raw_data/{expected_result_filename}") + resource_file.parent.mkdir(exist_ok=True, parents=True) + if not resource_file.exists(): + # create the resource to add it to non-regression tests + df.to_csv(resource_file, sep="\t", index=False) + expected_df = pd.read_csv(resource_file, sep="\t", header=0) + expected_df = expected_df.replace({np.nan: None}) + # cast types of expected_df to match df + for col in expected_df.columns: + expected_df[col] = expected_df[col].astype(df[col].dtype) + pd.testing.assert_frame_equal(df, expected_df) + + def test_different_formats( + self, + client: TestClient, + user_access_token: str, + internal_study_id: str, + ): + """ + Tests that all formats work and produce the same result + """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} + + for params, expected_result_filename in SAME_REQUEST_DIFFERENT_FORMATS__ALL: + output_id = params.pop("output_id") + res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/mc-all/{output_id}", params=params) + assert res.status_code == 200, res.json() + content = io.BytesIO(res.content) + export_format = params["format"] + if export_format == TableExportFormat.CSV.value: + df = pd.read_csv(content, index_col=0, sep=",") + elif export_format == TableExportFormat.TSV.value: + df = pd.read_csv(content, index_col=0, sep="\t") + else: + df = pd.read_excel(content, index_col=0) # type: ignore + resource_file = ASSETS_DIR.joinpath(f"aggregate_links_raw_data/{expected_result_filename}") + resource_file.parent.mkdir(exist_ok=True, parents=True) + if not resource_file.exists(): + # create the resource to add it to non-regression tests + df.to_csv(resource_file, sep="\t", index=False) + expected_df = pd.read_csv(resource_file, sep="\t", header=0) + expected_df = expected_df.replace({np.nan: None}) + # cast types of expected_df to match df + for col in expected_df.columns: + expected_df[col] = expected_df[col].astype(df[col].dtype) + pd.testing.assert_frame_equal(df, expected_df) + + def test_aggregation_with_incoherent_bodies( + self, client: TestClient, user_access_token: str, internal_study_id: str + ): + """ + Asserts that requests with incoherent bodies don't crash but send empty dataframes + """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} + for params in INCOHERENT_REQUESTS_BODIES__ALL: + output_id = params.pop("output_id") + res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/mc-all/{output_id}", params=params) + assert res.status_code == 200, res.json() + content = io.BytesIO(res.content) + df = pd.read_csv(content, index_col=0, sep=",") + assert df.empty + + def test_wrongly_typed_request(self, client: TestClient, user_access_token: str, internal_study_id: str): + """ + Asserts that wrongly typed requests send an HTTP 422 Exception + """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} + for params in WRONGLY_TYPED_REQUESTS__ALL: + output_id = params.pop("output_id") + res = client.get(f"/v1/studies/{internal_study_id}/links/aggregate/mc-all/{output_id}", params=params) + assert res.status_code == 422 + assert res.json()["exception"] == "RequestValidationError" + + def test_aggregation_with_wrong_output(self, client: TestClient, user_access_token: str, internal_study_id: str): + """ + Asserts that requests with wrong output send an HTTP 422 Exception + """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} + + # test for areas + res = client.get( + f"/v1/studies/{internal_study_id}/areas/aggregate/mc-all/unknown_id", + params={ + "query_file": "values", + "frequency": "hourly", + }, + ) + assert res.status_code == 404, res.json() + assert res.json()["exception"] == "OutputNotFound" + assert "unknown_id" in res.json()["description"], "The output_id should be in the message" + + # test for links + res = client.get( + f"/v1/studies/{internal_study_id}/links/aggregate/mc-all/unknown_id", + params={ + "query_file": "values", + "frequency": "hourly", + }, + ) + assert res.status_code == 404, res.json() + assert res.json()["exception"] == "OutputNotFound" + assert "unknown_id" in res.json()["description"], "The output_id should be in the message" + + def test_empty_columns(self, client: TestClient, user_access_token: str, internal_study_id: str): + """ + Asserts that requests get an empty dataframe when columns are not existing + """ + + client.headers = {"Authorization": f"Bearer {user_access_token}"} + + # test for areas + res = client.get( + f"/v1/studies/{internal_study_id}/areas/aggregate/mc-all/20201014-1427eco", + params={ + "query_file": "details", + "frequency": "monthly", + "columns_names": "fake_col", + }, + ) + assert res.status_code == 200, res.json() + df = pd.read_csv(io.BytesIO(res.content), index_col=0, sep=",") + assert df.empty + + # test for links + res = client.get( + f"/v1/studies/{internal_study_id}/links/aggregate/mc-all/20241807-1540eco-extra-outputs", + params={ + "query_file": "values", + "frequency": "daily", + "columns_names": "fake_col", + }, + ) + assert res.status_code == 200, res.json() + df = pd.read_csv(io.BytesIO(res.content), index_col=0, sep=",") + assert df.empty + + def test_non_existing_folder( + self, tmp_path: Path, client: TestClient, user_access_token: str, internal_study_id: str + ): + """ + Test that an error 404 is raised when the `economy/mc-all` folder does not exist + """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} + mc_all_path = tmp_path.joinpath("ext_workspace/STA-mini/output/20241807-1540eco-extra-outputs/economy/mc-all") + # delete the folder + shutil.rmtree(mc_all_path) + res = client.get( + f"/v1/studies/{internal_study_id}/links/aggregate/mc-all/20241807-1540eco-extra-outputs", + params={"query_file": "values", "frequency": "daily"}, + ) + assert res.status_code == 404, res.json() + assert "economy/mc-all" in res.json()["description"] + assert res.json()["exception"] == "OutputSubFolderNotFound" diff --git a/tests/integration/raw_studies_blueprint/test_download_matrices.py b/tests/integration/raw_studies_blueprint/test_download_matrices.py index c491108f5c..499bd8b587 100644 --- a/tests/integration/raw_studies_blueprint/test_download_matrices.py +++ b/tests/integration/raw_studies_blueprint/test_download_matrices.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import io import typing as t @@ -41,7 +53,7 @@ def copy_upgrade_study(self, ref_study_id, target_version=820): task_id = res.json() assert task_id - task = wait_task_completion(self.client, self.user_access_token, task_id, timeout=20) + task = wait_task_completion(self.client, self.user_access_token, task_id, base_timeout=20) assert task.status == TaskStatus.COMPLETED return study_820_id @@ -79,7 +91,7 @@ def generate_snapshot(self, variant_id: str, denormalize=False, from_scratch=Tru task_id = res.json() assert task_id - task = wait_task_completion(self.client, self.user_access_token, task_id, timeout=20) + task = wait_task_completion(self.client, self.user_access_token, task_id, base_timeout=20) assert task.status == TaskStatus.COMPLETED def create_area(self, parent_id, *, name: str, country: str = "FR") -> str: @@ -347,7 +359,7 @@ def test_download_matrices(self, client: TestClient, user_access_token: str, int for export_format in ["tsv", "xlsx"]: res = client.get( f"/v1/studies/{study_860_id}/raw/download", - params={"path": "input/hydro/series/de/mingen", "format": {export_format}}, + params={"path": "input/hydro/series/de/mingen", "format": export_format}, headers=user_headers, ) assert res.status_code == 200 diff --git a/tests/integration/raw_studies_blueprint/test_fetch_raw_data.py b/tests/integration/raw_studies_blueprint/test_fetch_raw_data.py index e55929c97a..2b5fe6de4a 100644 --- a/tests/integration/raw_studies_blueprint/test_fetch_raw_data.py +++ b/tests/integration/raw_studies_blueprint/test_fetch_raw_data.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import http import io import itertools diff --git a/tests/integration/studies_blueprint/__init__.py b/tests/integration/studies_blueprint/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/integration/studies_blueprint/__init__.py +++ b/tests/integration/studies_blueprint/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/integration/studies_blueprint/assets/__init__.py b/tests/integration/studies_blueprint/assets/__init__.py index 773f16ec60..3fff24b6fe 100644 --- a/tests/integration/studies_blueprint/assets/__init__.py +++ b/tests/integration/studies_blueprint/assets/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path ASSETS_DIR = Path(__file__).parent.resolve() diff --git a/tests/integration/studies_blueprint/assets/test_synthesis/raw_study.synthesis.json b/tests/integration/studies_blueprint/assets/test_synthesis/raw_study.synthesis.json index 04ce3ddbec..1e0f3ada52 100644 --- a/tests/integration/studies_blueprint/assets/test_synthesis/raw_study.synthesis.json +++ b/tests/integration/studies_blueprint/assets/test_synthesis/raw_study.synthesis.json @@ -38,22 +38,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 10.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "02_wind_on", @@ -77,22 +62,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 20.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "03_wind_off", @@ -116,22 +86,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 30.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "04_res", @@ -155,22 +110,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 40.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "05_nuclear", @@ -194,22 +134,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 50.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "06_coal", @@ -233,22 +158,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 60.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "07_gas", @@ -272,22 +182,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 70.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "08_non-res", @@ -311,22 +206,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 80.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "09_hydro_pump", @@ -350,22 +230,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 90.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 } ], "renewables": [], @@ -413,22 +278,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 10.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "02_wind_on", @@ -452,22 +302,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 20.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "03_wind_off", @@ -491,22 +326,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 30.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "04_res", @@ -530,22 +350,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 40.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "05_nuclear", @@ -569,22 +374,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 50.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "06_coal", @@ -608,22 +398,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 60.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "07_gas", @@ -647,22 +422,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 70.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "08_non-res", @@ -686,22 +446,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 80.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "09_hydro_pump", @@ -725,22 +470,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 90.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 } ], "renewables": [], @@ -788,22 +518,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 10.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "02_wind_on", @@ -827,22 +542,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 20.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "03_wind_off", @@ -866,22 +566,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 30.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "04_res", @@ -905,22 +590,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 40.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "05_nuclear", @@ -944,22 +614,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 50.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "06_coal", @@ -983,22 +638,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 60.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "07_gas", @@ -1022,22 +662,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 70.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "08_non-res", @@ -1061,22 +686,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 80.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "09_hydro_pump", @@ -1100,22 +710,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 90.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 } ], "renewables": [], @@ -1151,22 +746,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 10.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "02_wind_on", @@ -1190,22 +770,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 20.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "03_wind_off", @@ -1229,22 +794,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 30.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "04_res", @@ -1268,22 +818,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 40.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "05_nuclear", @@ -1307,22 +842,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 50.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "06_coal", @@ -1346,22 +866,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 60.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "07_gas", @@ -1385,22 +890,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 70.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "08_non-res", @@ -1424,22 +914,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 80.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "09_hydro_pump", @@ -1463,22 +938,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 90.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 } ], "renewables": [], @@ -1589,6 +1049,18 @@ ], "archived": true, "xpansion": "" + }, + "20241807-1540eco-extra-outputs": { + "name": "extra-outputs", + "date": "20241807-1540", + "mode": "economy", + "nbyears": 1, + "synthesis": true, + "by_year": true, + "error": false, + "playlist": [], + "archived": false, + "xpansion": "" } }, "bindings": [], diff --git a/tests/integration/studies_blueprint/assets/test_synthesis/variant_study.synthesis.json b/tests/integration/studies_blueprint/assets/test_synthesis/variant_study.synthesis.json index a77fa18a58..7e449747e4 100644 --- a/tests/integration/studies_blueprint/assets/test_synthesis/variant_study.synthesis.json +++ b/tests/integration/studies_blueprint/assets/test_synthesis/variant_study.synthesis.json @@ -38,22 +38,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 10.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "02_wind_on", @@ -77,22 +62,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 20.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "03_wind_off", @@ -116,22 +86,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 30.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "04_res", @@ -155,22 +110,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 40.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "05_nuclear", @@ -194,22 +134,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 50.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "06_coal", @@ -233,22 +158,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 60.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "07_gas", @@ -272,22 +182,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 70.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "08_non-res", @@ -311,22 +206,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 80.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "09_hydro_pump", @@ -350,22 +230,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 90.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 } ], "renewables": [], @@ -413,22 +278,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 10.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "02_wind_on", @@ -452,22 +302,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 20.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "03_wind_off", @@ -491,22 +326,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 30.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "04_res", @@ -530,22 +350,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 40.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "05_nuclear", @@ -569,22 +374,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 50.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "06_coal", @@ -608,22 +398,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 60.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "07_gas", @@ -647,22 +422,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 70.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "08_non-res", @@ -686,22 +446,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 80.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "09_hydro_pump", @@ -725,22 +470,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 90.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 } ], "renewables": [], @@ -788,22 +518,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 10.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "02_wind_on", @@ -827,22 +542,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 20.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "03_wind_off", @@ -866,22 +566,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 30.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "04_res", @@ -905,22 +590,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 40.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "05_nuclear", @@ -944,22 +614,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 50.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "06_coal", @@ -983,22 +638,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 60.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "07_gas", @@ -1022,22 +662,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 70.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "08_non-res", @@ -1061,22 +686,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 80.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "09_hydro_pump", @@ -1100,22 +710,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 90.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 } ], "renewables": [], @@ -1151,22 +746,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 10.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "02_wind_on", @@ -1190,22 +770,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 20.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "03_wind_off", @@ -1229,22 +794,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 30.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "04_res", @@ -1268,22 +818,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 40.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "05_nuclear", @@ -1307,22 +842,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 50.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "06_coal", @@ -1346,22 +866,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 60.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "07_gas", @@ -1385,22 +890,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 70.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "08_non-res", @@ -1424,22 +914,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 80.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 }, { "id": "09_hydro_pump", @@ -1463,22 +938,7 @@ "fixed-cost": 0.0, "startup-cost": 0.0, "market-bid-cost": 90.0, - "co2": 0.0, - "nh3": 0.0, - "so2": 0.0, - "nox": 0.0, - "pm2_5": 0.0, - "pm5": 0.0, - "pm10": 0.0, - "nmvoc": 0.0, - "op1": 0.0, - "op2": 0.0, - "op3": 0.0, - "op4": 0.0, - "op5": 0.0, - "costgeneration": "SetManually", - "efficiency": 100.0, - "variableomcost": 0.0 + "co2": 0.0 } ], "renewables": [], diff --git a/tests/integration/studies_blueprint/test_comments.py b/tests/integration/studies_blueprint/test_comments.py index 39ce84e35b..b83cc134b7 100644 --- a/tests/integration/studies_blueprint/test_comments.py +++ b/tests/integration/studies_blueprint/test_comments.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import time from xml.etree import ElementTree @@ -26,12 +38,9 @@ def test_raw_study( This test verifies that we can retrieve and modify the comments of a study. It also performs performance measurements and analyzes. """ - + client.headers = {"Authorization": f"Bearer {user_access_token}"} # Get the comments of the study and compare with the expected file - res = client.get( - f"/v1/studies/{internal_study_id}/comments", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{internal_study_id}/comments") assert res.status_code == 200, res.json() actual = res.json() actual_xml = ElementTree.parse(io.StringIO(actual)).getroot() @@ -40,10 +49,7 @@ def test_raw_study( # Ensure the duration is relatively short start = time.time() - res = client.get( - f"/v1/studies/{internal_study_id}/comments", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{internal_study_id}/comments") assert res.status_code == 200, res.json() duration = time.time() - start assert 0 <= duration <= 0.1, f"Duration is {duration} seconds" @@ -51,16 +57,12 @@ def test_raw_study( # Update the comments of the study res = client.put( f"/v1/studies/{internal_study_id}/comments", - headers={"Authorization": f"Bearer {user_access_token}"}, json={"comments": "Ceci est un commentaire en français."}, ) assert res.status_code == 204, res.json() # Get the comments of the study and compare with the expected file - res = client.get( - f"/v1/studies/{internal_study_id}/comments", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{internal_study_id}/comments") assert res.status_code == 200, res.json() assert res.json() == "Ceci est un commentaire en français." @@ -74,10 +76,10 @@ def test_variant_study( This test verifies that we can retrieve and modify the comments of a VARIANT study. It also performs performance measurements and analyzes. """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} # First, we create a copy of the study, and we convert it to a managed study. res = client.post( f"/v1/studies/{internal_study_id}/copy", - headers={"Authorization": f"Bearer {user_access_token}"}, params={"dest": "default", "with_outputs": False, "use_task": False}, # type: ignore ) assert res.status_code == 201, res.json() @@ -85,20 +87,13 @@ def test_variant_study( assert base_study_id is not None # Then, we create a new variant of the base study - res = client.post( - f"/v1/studies/{base_study_id}/variants", - headers={"Authorization": f"Bearer {user_access_token}"}, - params={"name": "Variant XYZ"}, - ) + res = client.post(f"/v1/studies/{base_study_id}/variants", params={"name": "Variant XYZ"}) assert res.status_code == 200, res.json() # should be CREATED variant_id = res.json() assert variant_id is not None # Get the comments of the study and compare with the expected file - res = client.get( - f"/v1/studies/{variant_id}/comments", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/comments") assert res.status_code == 200, res.json() actual = res.json() actual_xml = ElementTree.parse(io.StringIO(actual)).getroot() @@ -107,10 +102,7 @@ def test_variant_study( # Ensure the duration is relatively short start = time.time() - res = client.get( - f"/v1/studies/{variant_id}/comments", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/comments") assert res.status_code == 200, res.json() duration = time.time() - start assert 0 <= duration <= 0.3, f"Duration is {duration} seconds" @@ -118,15 +110,11 @@ def test_variant_study( # Update the comments of the study res = client.put( f"/v1/studies/{variant_id}/comments", - headers={"Authorization": f"Bearer {user_access_token}"}, json={"comments": "Ceci est un commentaire en français."}, ) assert res.status_code == 204, res.json() # Get the comments of the study and compare with the expected file - res = client.get( - f"/v1/studies/{variant_id}/comments", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/comments") assert res.status_code == 200, res.json() assert res.json() == "Ceci est un commentaire en français." diff --git a/tests/integration/studies_blueprint/test_disk_usage.py b/tests/integration/studies_blueprint/test_disk_usage.py index dcfb48a5b7..6958667863 100644 --- a/tests/integration/studies_blueprint/test_disk_usage.py +++ b/tests/integration/studies_blueprint/test_disk_usage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from starlette.testclient import TestClient @@ -27,8 +39,8 @@ def test_disk_usage_endpoint( headers=user_headers, ) assert res.status_code == 200, res.json() - disk_usage = res.json() # currently: 7.47 Mio on Ubuntu - assert 7 * 1024 * 1024 < disk_usage < 8 * 1024 * 1024 + disk_usage = res.json() # currently: 8.75 Mio on Ubuntu + assert 8 * 1024 * 1024 < disk_usage < 9 * 1024 * 1024 # Copy the study in managed workspace in order to create a variant res = client.post( @@ -69,7 +81,7 @@ def test_disk_usage_endpoint( # Wait for task completion res = client.get(f"/v1/tasks/{task_id}", headers=user_headers, params={"wait_for_completion": True}) assert res.status_code == 200 - task_result = TaskDTO.parse_obj(res.json()) + task_result = TaskDTO.model_validate(res.json()) assert task_result.status == TaskStatus.COMPLETED assert task_result.result is not None assert task_result.result.success diff --git a/tests/integration/studies_blueprint/test_get_studies.py b/tests/integration/studies_blueprint/test_get_studies.py index af8f790f20..8e94e15d92 100644 --- a/tests/integration/studies_blueprint/test_get_studies.py +++ b/tests/integration/studies_blueprint/test_get_studies.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import operator import re @@ -1471,7 +1483,7 @@ def test_get_studies__invalid_parameters( res = client.get(STUDIES_URL, headers=headers, params={"sortBy": "invalid"}) assert res.status_code == INVALID_PARAMS_STATUS_CODE, res.json() description = res.json()["description"] - assert re.search(r"not a valid enumeration member", description), f"{description=}" + assert re.search("Input should be", description), f"{description=}" # Invalid `pageNb` parameter (negative integer) res = client.get(STUDIES_URL, headers=headers, params={"pageNb": -1}) @@ -1483,7 +1495,7 @@ def test_get_studies__invalid_parameters( res = client.get(STUDIES_URL, headers=headers, params={"pageNb": "invalid"}) assert res.status_code == INVALID_PARAMS_STATUS_CODE, res.json() description = res.json()["description"] - assert re.search(r"not a valid integer", description), f"{description=}" + assert re.search(r"should be a valid integer", description), f"{description=}" # Invalid `pageSize` parameter (negative integer) res = client.get(STUDIES_URL, headers=headers, params={"pageSize": -1}) @@ -1495,43 +1507,43 @@ def test_get_studies__invalid_parameters( res = client.get(STUDIES_URL, headers=headers, params={"pageSize": "invalid"}) assert res.status_code == INVALID_PARAMS_STATUS_CODE, res.json() description = res.json()["description"] - assert re.search(r"not a valid integer", description), f"{description=}" + assert re.search(r"should be a valid integer", description), f"{description=}" # Invalid `managed` parameter (not a boolean) res = client.get(STUDIES_URL, headers=headers, params={"managed": "invalid"}) assert res.status_code == INVALID_PARAMS_STATUS_CODE, res.json() description = res.json()["description"] - assert re.search(r"could not be parsed to a boolean", description), f"{description=}" + assert re.search(r"should be a valid boolean", description), f"{description=}" # Invalid `archived` parameter (not a boolean) res = client.get(STUDIES_URL, headers=headers, params={"archived": "invalid"}) assert res.status_code == INVALID_PARAMS_STATUS_CODE, res.json() description = res.json()["description"] - assert re.search(r"could not be parsed to a boolean", description), f"{description=}" + assert re.search(r"should be a valid boolean", description), f"{description=}" # Invalid `variant` parameter (not a boolean) res = client.get(STUDIES_URL, headers=headers, params={"variant": "invalid"}) assert res.status_code == INVALID_PARAMS_STATUS_CODE, res.json() description = res.json()["description"] - assert re.search(r"could not be parsed to a boolean", description), f"{description=}" + assert re.search(r"should be a valid boolean", description), f"{description=}" # Invalid `versions` parameter (not a list of integers) res = client.get(STUDIES_URL, headers=headers, params={"versions": "invalid"}) assert res.status_code == INVALID_PARAMS_STATUS_CODE, res.json() description = res.json()["description"] - assert re.search(r"string does not match regex", description), f"{description=}" + assert re.search(r"String should match pattern", description), f"{description=}" # Invalid `users` parameter (not a list of integers) res = client.get(STUDIES_URL, headers=headers, params={"users": "invalid"}) assert res.status_code == INVALID_PARAMS_STATUS_CODE, res.json() description = res.json()["description"] - assert re.search(r"string does not match regex", description), f"{description=}" + assert re.search(r"String should match pattern", description), f"{description=}" # Invalid `exists` parameter (not a boolean) res = client.get(STUDIES_URL, headers=headers, params={"exists": "invalid"}) assert res.status_code == INVALID_PARAMS_STATUS_CODE, res.json() description = res.json()["description"] - assert re.search(r"could not be parsed to a boolean", description), f"{description=}" + assert re.search(r"should be a valid boolean", description), f"{description=}" def test_studies_counting(client: TestClient, admin_access_token: str, user_access_token: str) -> None: diff --git a/tests/integration/studies_blueprint/test_study_matrix_index.py b/tests/integration/studies_blueprint/test_study_matrix_index.py index 7821ee6151..759b43131b 100644 --- a/tests/integration/studies_blueprint/test_study_matrix_index.py +++ b/tests/integration/studies_blueprint/test_study_matrix_index.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from starlette.testclient import TestClient diff --git a/tests/integration/studies_blueprint/test_synthesis.py b/tests/integration/studies_blueprint/test_synthesis.py index 2b5205824a..d67e0f60a7 100644 --- a/tests/integration/studies_blueprint/test_synthesis.py +++ b/tests/integration/studies_blueprint/test_synthesis.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json import sys import time diff --git a/tests/integration/studies_blueprint/test_update_tags.py b/tests/integration/studies_blueprint/test_update_tags.py index 9ee37c7d70..fd9005a98a 100644 --- a/tests/integration/studies_blueprint/test_update_tags.py +++ b/tests/integration/studies_blueprint/test_update_tags.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from starlette.testclient import TestClient @@ -16,14 +28,10 @@ def test_update_tags( This test verifies that we can update the tags of a study. It also tests the tags normalization. """ - + client.headers = {"Authorization": f"Bearer {user_access_token}"} # Classic usage: set some tags to a study study_tags = ["Tag1", "Tag2"] - res = client.put( - f"/v1/studies/{internal_study_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"tags": study_tags}, - ) + res = client.put(f"/v1/studies/{internal_study_id}", json={"tags": study_tags}) assert res.status_code == 200, res.json() actual = res.json() assert set(actual["tags"]) == set(study_tags) @@ -32,11 +40,7 @@ def test_update_tags( # - "Tag1" is preserved, but with the same case as the existing one. # - "Tag2" is replaced by "Tag3". study_tags = ["tag1", "Tag3"] - res = client.put( - f"/v1/studies/{internal_study_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"tags": study_tags}, - ) + res = client.put(f"/v1/studies/{internal_study_id}", json={"tags": study_tags}) assert res.status_code == 200, res.json() actual = res.json() assert set(actual["tags"]) != set(study_tags) # not the same case @@ -45,22 +49,14 @@ def test_update_tags( # String normalization: whitespaces are stripped and # consecutive whitespaces are replaced by a single one. study_tags = [" \xa0Foo \t Bar \n ", " \t Baz\xa0\xa0"] - res = client.put( - f"/v1/studies/{internal_study_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"tags": study_tags}, - ) + res = client.put(f"/v1/studies/{internal_study_id}", json={"tags": study_tags}) assert res.status_code == 200, res.json() actual = res.json() assert set(actual["tags"]) == {"Foo Bar", "Baz"} # We can have symbols in the tags study_tags = ["Foo-Bar", ":Baz%"] - res = client.put( - f"/v1/studies/{internal_study_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"tags": study_tags}, - ) + res = client.put(f"/v1/studies/{internal_study_id}", json={"tags": study_tags}) assert res.status_code == 200, res.json() actual = res.json() assert set(actual["tags"]) == {"Foo-Bar", ":Baz%"} @@ -71,13 +67,10 @@ def test_update_tags__invalid_tags( user_access_token: str, internal_study_id: str, ) -> None: + client.headers = {"Authorization": f"Bearer {user_access_token}"} # We cannot have empty tags study_tags = [""] - res = client.put( - f"/v1/studies/{internal_study_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"tags": study_tags}, - ) + res = client.put(f"/v1/studies/{internal_study_id}", json={"tags": study_tags}) assert res.status_code == 422, res.json() description = res.json()["description"] assert "Tag cannot be empty" in description @@ -85,11 +78,7 @@ def test_update_tags__invalid_tags( # We cannot have tags longer than 40 characters study_tags = ["very long tags, very long tags, very long tags"] assert len(study_tags[0]) > 40 - res = client.put( - f"/v1/studies/{internal_study_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"tags": study_tags}, - ) + res = client.put(f"/v1/studies/{internal_study_id}", json={"tags": study_tags}) assert res.status_code == 422, res.json() description = res.json()["description"] assert "Tag is too long" in description diff --git a/tests/integration/study_data_blueprint/__init__.py b/tests/integration/study_data_blueprint/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/integration/study_data_blueprint/__init__.py +++ b/tests/integration/study_data_blueprint/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/integration/study_data_blueprint/test_advanced_parameters.py b/tests/integration/study_data_blueprint/test_advanced_parameters.py index 4aff92b0cd..7b76ee0c87 100644 --- a/tests/integration/study_data_blueprint/test_advanced_parameters.py +++ b/tests/integration/study_data_blueprint/test_advanced_parameters.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from http import HTTPStatus import pytest @@ -96,7 +108,7 @@ def test_set_advanced_parameters_values( ) assert res.status_code == 422 assert res.json()["exception"] == "RequestValidationError" - assert res.json()["description"] == "Invalid value: fake_correlation" + assert res.json()["description"] == "Value error, Invalid value: fake_correlation" obj = {"unitCommitmentMode": "milp"} res = client.put( diff --git a/tests/integration/study_data_blueprint/test_binding_constraints.py b/tests/integration/study_data_blueprint/test_binding_constraints.py index aba3d397ac..42b7a9cc57 100644 --- a/tests/integration/study_data_blueprint/test_binding_constraints.py +++ b/tests/integration/study_data_blueprint/test_binding_constraints.py @@ -1,9 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re import numpy as np import pandas as pd import pytest -from requests.exceptions import HTTPError +from httpx._exceptions import HTTPError from starlette.testclient import TestClient from antarest.study.business.binding_constraint_management import ClusterTerm, ConstraintTerm, LinkTerm @@ -307,7 +319,7 @@ def test_lifecycle__nominal(self, client: TestClient, user_access_token: str, st assert res.status_code == 422, res.json() assert res.json() == { "body": {"data": {}, "id": f"{area1_id}.{cluster_id}"}, - "description": "field required", + "description": "Field required", "exception": "RequestValidationError", } @@ -604,6 +616,16 @@ def test_for_version_870(self, client: TestClient, user_access_token: str, study else: assert data == np.zeros((matrix_lt3.shape[0], 1)).tolist() + # Checks that we only see existing matrices inside the Debug View + res = client.get(f"/v1/studies/{study_id}/raw", params={"path": "/input/bindingconstraints", "depth": 1}) + assert res.status_code in {200, 201} + assert res.json() == { + f"{bc_id_wo_group}_lt": {}, + f"{bc_id_w_group}_gt": {}, + f"{bc_id_w_matrix}_eq": {}, + "bindingconstraints": {}, + } + # ============================= # CONSTRAINT TERM MANAGEMENT # ============================= diff --git a/tests/integration/study_data_blueprint/test_config_general.py b/tests/integration/study_data_blueprint/test_config_general.py index 3084a86b4e..7353814e1b 100644 --- a/tests/integration/study_data_blueprint/test_config_general.py +++ b/tests/integration/study_data_blueprint/test_config_general.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from http import HTTPStatus import pytest @@ -33,7 +45,7 @@ def test_get_general_form_values( "firstJanuary": "Monday", "firstMonth": "january", "firstWeekDay": "Monday", - "horizon": "2030", + "horizon": 2030, "lastDay": 7, "leapYear": False, "mcScenario": True, diff --git a/tests/integration/study_data_blueprint/test_edit_matrix.py b/tests/integration/study_data_blueprint/test_edit_matrix.py index 28953d713b..474b53d4e3 100644 --- a/tests/integration/study_data_blueprint/test_edit_matrix.py +++ b/tests/integration/study_data_blueprint/test_edit_matrix.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from urllib.parse import quote import pytest diff --git a/tests/integration/study_data_blueprint/test_generate_thermal_cluster_timeseries.py b/tests/integration/study_data_blueprint/test_generate_thermal_cluster_timeseries.py new file mode 100644 index 0000000000..b328f1b2e4 --- /dev/null +++ b/tests/integration/study_data_blueprint/test_generate_thermal_cluster_timeseries.py @@ -0,0 +1,212 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +import numpy as np +from starlette.testclient import TestClient + +from antarest.core.tasks.model import TaskStatus +from tests.integration.assets import ASSETS_DIR +from tests.integration.prepare_proxy import PreparerProxy +from tests.integration.utils import wait_task_completion + +TIMESERIES_ASSETS_DIR = ASSETS_DIR.joinpath("timeseries_generation") + + +class TestGenerateThermalClusterTimeseries: + def test_lifecycle_nominal(self, client: TestClient, user_access_token: str) -> None: + # Study preparation + client.headers = {"Authorization": f"Bearer {user_access_token}"} + preparer = PreparerProxy(client, user_access_token) + study_id = preparer.create_study("foo", version=860) + area1_id = preparer.create_area(study_id, name="Area 1")["id"] + area2_id = preparer.create_area(study_id, name="Area 2")["id"] + # Set nb timeseries thermal to 3. + nb_years = 3 + body = {"thermal": {"number": nb_years}} + res = client.put(f"/v1/studies/{study_id}/config/timeseries/form", json=body) + assert res.status_code in {200, 201} + + # Create 1 cluster in area1 + cluster_1 = "Cluster 1" + nominal_capacity_cluster_1 = 1000.0 + preparer.create_thermal( + study_id, area1_id, name=cluster_1, group="Lignite", nominalCapacity=nominal_capacity_cluster_1 + ) + + # Create 2 clusters in area1 + cluster_2 = "Cluster 2" + cluster_3 = "Cluster 3" + nominal_capacity_cluster_2 = 40.0 + preparer.create_thermal( + study_id, area2_id, name=cluster_2, group="Nuclear", nominalCapacity=nominal_capacity_cluster_2 + ) + preparer.create_thermal(study_id, area2_id, name=cluster_3, group="Gas", genTs="force no generation") + + # Update modulation for Cluster 2. + matrix = np.zeros(shape=(8760, 4)).tolist() + res = client.post( + f"/v1/studies/{study_id}/raw", + params={"path": f"input/thermal/prepro/{area2_id}/{cluster_2.lower()}/modulation"}, + json=matrix, + ) + assert res.status_code == 204 + + # Timeseries generation should succeed + res = client.put(f"/v1/studies/{study_id}/timeseries/generate") + assert res.status_code == 200 + task_id = res.json() + assert task_id + task = wait_task_completion(client, user_access_token, task_id) + assert task.status == TaskStatus.COMPLETED + + # Check matrices + # First one + res = client.get( + f"/v1/studies/{study_id}/raw", + params={"path": f"input/thermal/series/{area1_id}/{cluster_1.lower()}/series"}, + ) + assert res.status_code == 200 + data = res.json()["data"] + assert data[1] == nb_years * [nominal_capacity_cluster_1] + # Second one + res = client.get( + f"/v1/studies/{study_id}/raw", + params={"path": f"input/thermal/series/{area2_id}/{cluster_2.lower()}/series"}, + ) + assert res.status_code == 200 + data = res.json()["data"] + assert data[1] == nb_years * [0] # should be zeros as the modulation matrix is only zeros + # Third one + res = client.get( + f"/v1/studies/{study_id}/raw", + params={"path": f"input/thermal/series/{area2_id}/{cluster_3.lower()}/series"}, + ) + assert res.status_code == 200 + data = res.json()["data"] + assert data == [[]] # no generation c.f. gen-ts parameter + + def test_errors(self, client: TestClient, user_access_token: str) -> None: + # Study Preparation + client.headers = {"Authorization": f"Bearer {user_access_token}"} + preparer = PreparerProxy(client, user_access_token) + study_id = preparer.create_study("foo", version=860) + area1_id = preparer.create_area(study_id, name="Area 1")["id"] + + # Create a cluster without nominal power + cluster_name = "Cluster 1" + preparer.create_thermal(study_id, area1_id, name=cluster_name, group="Lignite") + # Timeseries generation fails because there's no nominal power + res = client.put(f"/v1/studies/{study_id}/timeseries/generate") + assert res.status_code == 200 + task_id = res.json() + assert task_id + task = wait_task_completion(client, user_access_token, task_id) + assert task.status == TaskStatus.FAILED + assert "Nominal power must be strictly positive, got 0.0" in task.result.message + + def test_advanced_results(self, client: TestClient, user_access_token: str) -> None: + # Study Preparation + client.headers = {"Authorization": f"Bearer {user_access_token}"} + preparer = PreparerProxy(client, user_access_token) + study_id = preparer.create_study("foo", version=860) + area_id = preparer.create_area(study_id, name="test")["id"] + nb_years = 10 + body = {"thermal": {"number": nb_years}} + res = client.put(f"/v1/studies/{study_id}/config/timeseries/form", json=body) + cluster_id = "cluster_test" + assert res.status_code in {200, 201} + + # Create cluster with specific properties + body = { + "name": cluster_id, + "group": "Nuclear", + "unitCount": 10, + "nominalCapacity": 500, + "volatilityForced": 0.5, + "volatilityPlanned": 0.5, + "lawPlanned": "geometric", + } + res = client.post(f"/v1/studies/{study_id}/areas/{area_id}/clusters/thermal", json=body) + assert res.status_code in {200, 201} + + mapping = { + "reference_case": { + "modulation_to_1": False, + "fo_duration_to_1": False, + "po_duration_to_1": False, + "february": False, + }, + "case_1": { + "modulation_to_1": False, + "fo_duration_to_1": False, + "po_duration_to_1": True, + "february": True, + }, + "case_2": { + "modulation_to_1": True, + "fo_duration_to_1": True, + "po_duration_to_1": False, + "february": True, + }, + "case_3": { + "modulation_to_1": True, + "fo_duration_to_1": True, + "po_duration_to_1": True, + "february": False, + }, + } + for test_case, variations in mapping.items(): + # Replace modulation matrix + modulation_matrix = np.ones(shape=(8760, 4)) + if not variations["modulation_to_1"]: + modulation_matrix[:24, 2] = 0.5 + modulation_matrix[24:52, 2] = 0.1 + res = client.post( + f"/v1/studies/{study_id}/raw", + params={"path": f"/input/thermal/prepro/{area_id}/{cluster_id}/modulation"}, + json=modulation_matrix.tolist(), + ) + assert res.status_code == 204 + + # Replace gen_ts matrix + input_gen_ts = np.loadtxt(TIMESERIES_ASSETS_DIR.joinpath("input_gen_ts.txt"), delimiter="\t") + if variations["february"]: + input_gen_ts[:59, 0] = 2 + input_gen_ts[:59, 1] = 3 + if variations["fo_duration_to_1"]: + input_gen_ts[:, 0] = 1 + if variations["po_duration_to_1"]: + input_gen_ts[:, 1] = 1 + res = client.post( + f"/v1/studies/{study_id}/raw", + params={"path": f"/input/thermal/prepro/{area_id}/{cluster_id}/data"}, + json=input_gen_ts.tolist(), + ) + assert res.status_code == 204 + + # Get expected matrix + expected_matrix = np.loadtxt(TIMESERIES_ASSETS_DIR.joinpath(f"{test_case}.txt"), delimiter="\t").tolist() + + # Generate timeseries + res = client.put(f"/v1/studies/{study_id}/timeseries/generate") + assert res.status_code == 200 + task_id = res.json() + assert task_id + task = wait_task_completion(client, user_access_token, task_id) + assert task.status == TaskStatus.COMPLETED + + # Compare results + generated_matrix = client.get( + f"/v1/studies/{study_id}/raw", params={"path": f"input/thermal/series/{area_id}/{cluster_id}/series"} + ).json()["data"] + if generated_matrix != expected_matrix: + raise AssertionError(f"Test case {test_case} failed") diff --git a/tests/integration/study_data_blueprint/test_hydro_allocation.py b/tests/integration/study_data_blueprint/test_hydro_allocation.py index 47eb65f39d..6ba223bf45 100644 --- a/tests/integration/study_data_blueprint/test_hydro_allocation.py +++ b/tests/integration/study_data_blueprint/test_hydro_allocation.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import http import typing as t diff --git a/tests/integration/study_data_blueprint/test_hydro_correlation.py b/tests/integration/study_data_blueprint/test_hydro_correlation.py index c986ead8de..61a76f76e2 100644 --- a/tests/integration/study_data_blueprint/test_hydro_correlation.py +++ b/tests/integration/study_data_blueprint/test_hydro_correlation.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from http import HTTPStatus from typing import List diff --git a/tests/integration/study_data_blueprint/test_hydro_inflow_structure.py b/tests/integration/study_data_blueprint/test_hydro_inflow_structure.py index f673882752..ec1327093d 100644 --- a/tests/integration/study_data_blueprint/test_hydro_inflow_structure.py +++ b/tests/integration/study_data_blueprint/test_hydro_inflow_structure.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from http import HTTPStatus from unittest.mock import ANY diff --git a/tests/integration/study_data_blueprint/test_renewable.py b/tests/integration/study_data_blueprint/test_renewable.py index b6c450e8f3..8e3fb8051b 100644 --- a/tests/integration/study_data_blueprint/test_renewable.py +++ b/tests/integration/study_data_blueprint/test_renewable.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ ## End-to-end test of the renewable cluster management. @@ -24,7 +36,6 @@ * validate the consistency of the matrices (and properties) """ -import json import re import typing as t @@ -38,7 +49,7 @@ from antarest.study.storage.rawstudy.model.filesystem.config.renewable import RenewableProperties from tests.integration.utils import wait_task_completion -DEFAULT_PROPERTIES = json.loads(RenewableProperties(name="Dummy").json()) +DEFAULT_PROPERTIES = RenewableProperties(name="Dummy").model_dump(mode="json") DEFAULT_PROPERTIES = {to_camel_case(k): v for k, v in DEFAULT_PROPERTIES.items() if k != "name"} # noinspection SpellCheckingInspection @@ -525,13 +536,10 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var In this test, we want to check that renewable clusters can be managed in the context of a "variant" study. """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} # Create an area area_name = "France" - res = client.post( - f"/v1/studies/{variant_id}/areas", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"name": area_name, "type": "AREA"}, - ) + res = client.post(f"/v1/studies/{variant_id}/areas", json={"name": area_name, "type": "AREA"}) assert res.status_code in {200, 201}, res.json() area_cfg = res.json() area_id = area_cfg["id"] @@ -540,7 +548,6 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var cluster_name = "Th1" res = client.post( f"/v1/studies/{variant_id}/areas/{area_id}/clusters/renewable", - headers={"Authorization": f"Bearer {user_access_token}"}, json={ "name": cluster_name, "group": "Wind Offshore", @@ -553,9 +560,7 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var # Update the renewable cluster res = client.patch( - f"/v1/studies/{variant_id}/areas/{area_id}/clusters/renewable/{cluster_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"unitCount": 15}, + f"/v1/studies/{variant_id}/areas/{area_id}/clusters/renewable/{cluster_id}", json={"unitCount": 15} ) assert res.status_code == 200, res.json() cluster_cfg = res.json() @@ -565,19 +570,13 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var matrix = np.random.randint(0, 2, size=(8760, 1)).tolist() matrix_path = f"input/renewables/series/{area_id}/{cluster_id.lower()}/series" args = {"target": matrix_path, "matrix": matrix} - res = client.post( - f"/v1/studies/{variant_id}/commands", - json=[{"action": "replace_matrix", "args": args}], - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.post(f"/v1/studies/{variant_id}/commands", json=[{"action": "replace_matrix", "args": args}]) assert res.status_code in {200, 201}, res.json() # Duplicate the renewable cluster new_name = "Th2" res = client.post( - f"/v1/studies/{variant_id}/areas/{area_id}/renewables/{cluster_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - params={"newName": new_name}, + f"/v1/studies/{variant_id}/areas/{area_id}/renewables/{cluster_id}", params={"newName": new_name} ) assert res.status_code in {200, 201}, res.json() cluster_cfg = res.json() @@ -585,10 +584,7 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var new_id = cluster_cfg["id"] # Check that the duplicate has the right properties - res = client.get( - f"/v1/studies/{variant_id}/areas/{area_id}/clusters/renewable/{new_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/areas/{area_id}/clusters/renewable/{new_id}") assert res.status_code == 200, res.json() cluster_cfg = res.json() assert cluster_cfg["group"] == "Wind Offshore" @@ -597,27 +593,19 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var # Check that the duplicate has the right matrix new_cluster_matrix_path = f"input/renewables/series/{area_id}/{new_id.lower()}/series" - res = client.get( - f"/v1/studies/{variant_id}/raw", - params={"path": new_cluster_matrix_path}, - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/raw", params={"path": new_cluster_matrix_path}) assert res.status_code == 200 assert res.json()["data"] == matrix # Delete the renewable cluster - res = client.delete( - f"/v1/studies/{variant_id}/areas/{area_id}/clusters/renewable", - headers={"Authorization": f"Bearer {user_access_token}"}, - json=[cluster_id], + # usage of request instead of delete as httpx doesn't support delete with a payload anymore. + res = client.request( + method="DELETE", url=f"/v1/studies/{variant_id}/areas/{area_id}/clusters/renewable", json=[cluster_id] ) assert res.status_code == 204, res.json() # Check the list of variant commands - res = client.get( - f"/v1/studies/{variant_id}/commands", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/commands") assert res.status_code == 200, res.json() commands = res.json() assert len(commands) == 7 diff --git a/tests/integration/study_data_blueprint/test_st_storage.py b/tests/integration/study_data_blueprint/test_st_storage.py index 68fe46b138..8d83d12f37 100644 --- a/tests/integration/study_data_blueprint/test_st_storage.py +++ b/tests/integration/study_data_blueprint/test_st_storage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json import re import typing as t @@ -19,11 +31,11 @@ _ST_STORAGE_OUTPUT_860 = create_storage_output(860, cluster_id="dummy", config={"name": "dummy"}) _ST_STORAGE_OUTPUT_880 = create_storage_output(880, cluster_id="dummy", config={"name": "dummy"}) -DEFAULT_CONFIG_860 = json.loads(_ST_STORAGE_860_CONFIG.json(by_alias=True, exclude={"id", "name"})) -DEFAULT_CONFIG_880 = json.loads(_ST_STORAGE_880_CONFIG.json(by_alias=True, exclude={"id", "name"})) +DEFAULT_CONFIG_860 = _ST_STORAGE_860_CONFIG.model_dump(mode="json", by_alias=True, exclude={"id", "name"}) +DEFAULT_CONFIG_880 = _ST_STORAGE_880_CONFIG.model_dump(mode="json", by_alias=True, exclude={"id", "name"}) -DEFAULT_OUTPUT_860 = json.loads(_ST_STORAGE_OUTPUT_860.json(by_alias=True, exclude={"id", "name"})) -DEFAULT_OUTPUT_880 = json.loads(_ST_STORAGE_OUTPUT_880.json(by_alias=True, exclude={"id", "name"})) +DEFAULT_OUTPUT_860 = _ST_STORAGE_OUTPUT_860.model_dump(mode="json", by_alias=True, exclude={"id", "name"}) +DEFAULT_OUTPUT_880 = _ST_STORAGE_OUTPUT_880.model_dump(mode="json", by_alias=True, exclude={"id", "name"}) # noinspection SpellCheckingInspection @@ -313,7 +325,7 @@ def test_lifecycle__nominal( json=[siemens_battery_id], ) assert res.status_code == 204, res.json() - assert res.text in {"", "null"} # Old FastAPI versions return 'null'. + assert not res.text # If the short-term storage list is empty, the deletion should be a no-op. res = client.request( @@ -323,7 +335,7 @@ def test_lifecycle__nominal( json=[], ) assert res.status_code == 204, res.json() - assert res.text in {"", "null"} # Old FastAPI versions return 'null'. + assert not res.text # It's possible to delete multiple short-term storages at once. # In the following example, we will create two short-term storages: @@ -383,7 +395,7 @@ def test_lifecycle__nominal( json=[grand_maison_id, duplicated_output["id"]], ) assert res.status_code == 204, res.json() - assert res.text in {"", "null"} # Old FastAPI versions return 'null'. + assert not res.text # Only one st-storage should remain. res = client.get( @@ -475,7 +487,7 @@ def test_lifecycle__nominal( assert res.status_code == 422, res.json() obj = res.json() description = obj["description"] - assert re.search(r"not a valid enumeration member", description, flags=re.IGNORECASE) + assert re.search(r"Input should be", description) # Check PATCH with the wrong `area_id` res = client.patch( @@ -577,40 +589,26 @@ def test__default_values( Then the short-term storage is created with initialLevel = 0.0, and initialLevelOptim = False. """ # Create a new study in version 860 (or higher) - user_headers = {"Authorization": f"Bearer {user_access_token}"} - res = client.post( - "/v1/studies", - headers=user_headers, - params={"name": "MyStudy", "version": study_version}, - ) + client.headers = {"Authorization": f"Bearer {user_access_token}"} + res = client.post("/v1/studies", params={"name": "MyStudy", "version": study_version}) assert res.status_code in {200, 201}, res.json() study_id = res.json() if study_type == "variant": # Create Variant - res = client.post( - f"/v1/studies/{study_id}/variants", - headers=user_headers, - params={"name": "Variant 1"}, - ) + res = client.post(f"/v1/studies/{study_id}/variants", params={"name": "Variant 1"}) assert res.status_code in {200, 201}, res.json() study_id = res.json() # Create a new area named "FR" - res = client.post( - f"/v1/studies/{study_id}/areas", - headers=user_headers, - json={"name": "FR", "type": "AREA"}, - ) + res = client.post(f"/v1/studies/{study_id}/areas", json={"name": "FR", "type": "AREA"}) assert res.status_code in {200, 201}, res.json() area_id = res.json()["id"] # Create a new short-term storage named "Tesla Battery" tesla_battery = "Tesla Battery" res = client.post( - f"/v1/studies/{study_id}/areas/{area_id}/storages", - headers=user_headers, - json={"name": tesla_battery, "group": "Battery"}, + f"/v1/studies/{study_id}/areas/{area_id}/storages", json={"name": tesla_battery, "group": "Battery"} ) assert res.status_code == 200, res.json() tesla_battery_id = res.json()["id"] @@ -621,7 +619,6 @@ def test__default_values( # are properly set in the configuration file. res = client.get( f"/v1/studies/{study_id}/raw", - headers=user_headers, params={"path": f"input/st-storage/clusters/{area_id}/list/{tesla_battery_id}"}, ) assert res.status_code == 200, res.json() @@ -634,28 +631,19 @@ def test__default_values( # in the variant commands. # Create a variant of the study - res = client.post( - f"/v1/studies/{study_id}/variants", - headers=user_headers, - params={"name": "MyVariant"}, - ) + res = client.post(f"/v1/studies/{study_id}/variants", params={"name": "MyVariant"}) assert res.status_code in {200, 201}, res.json() variant_id = res.json() # Create a new short-term storage named "Siemens Battery" siemens_battery = "Siemens Battery" res = client.post( - f"/v1/studies/{variant_id}/areas/{area_id}/storages", - headers=user_headers, - json={"name": siemens_battery, "group": "Battery"}, + f"/v1/studies/{variant_id}/areas/{area_id}/storages", json={"name": siemens_battery, "group": "Battery"} ) assert res.status_code == 200, res.json() # Check the variant commands - res = client.get( - f"/v1/studies/{variant_id}/commands", - headers=user_headers, - ) + res = client.get(f"/v1/studies/{variant_id}/commands") assert res.status_code == 200, res.json() commands = res.json() assert len(commands) == 1 @@ -679,17 +667,12 @@ def test__default_values( # Update the initialLevel property of the "Siemens Battery" short-term storage to 0.5 siemens_battery_id = transform_name_to_id(siemens_battery) res = client.patch( - f"/v1/studies/{variant_id}/areas/{area_id}/storages/{siemens_battery_id}", - headers=user_headers, - json={"initialLevel": 0.5}, + f"/v1/studies/{variant_id}/areas/{area_id}/storages/{siemens_battery_id}", json={"initialLevel": 0.5} ) assert res.status_code == 200, res.json() # Check the variant commands - res = client.get( - f"/v1/studies/{variant_id}/commands", - headers=user_headers, - ) + res = client.get(f"/v1/studies/{variant_id}/commands") assert res.status_code == 200, res.json() commands = res.json() assert len(commands) == 2 @@ -698,7 +681,7 @@ def test__default_values( "id": ANY, "action": "update_config", "args": { - "data": "0.5", + "data": 0.5, "target": "input/st-storage/clusters/fr/list/siemens battery/initiallevel", }, "version": 1, @@ -708,16 +691,12 @@ def test__default_values( # Update the initialLevel property of the "Siemens Battery" short-term storage back to 0 res = client.patch( f"/v1/studies/{variant_id}/areas/{area_id}/storages/{siemens_battery_id}", - headers=user_headers, json={"initialLevel": 0.0, "injectionNominalCapacity": 1600}, ) assert res.status_code == 200, res.json() # Check the variant commands - res = client.get( - f"/v1/studies/{variant_id}/commands", - headers=user_headers, - ) + res = client.get(f"/v1/studies/{variant_id}/commands") assert res.status_code == 200, res.json() commands = res.json() assert len(commands) == 3 @@ -727,11 +706,11 @@ def test__default_values( "action": "update_config", "args": [ { - "data": "1600.0", + "data": 1600.0, "target": "input/st-storage/clusters/fr/list/siemens battery/injectionnominalcapacity", }, { - "data": "0.0", + "data": 0.0, "target": "input/st-storage/clusters/fr/list/siemens battery/initiallevel", }, ], @@ -743,7 +722,6 @@ def test__default_values( # are properly set in the configuration file. res = client.get( f"/v1/studies/{variant_id}/raw", - headers=user_headers, params={"path": f"input/st-storage/clusters/{area_id}/list/{siemens_battery_id}"}, ) assert res.status_code == 200, res.json() @@ -791,13 +769,10 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var In this test, we want to check that short-term storages can be managed in the context of a "variant" study. """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} # Create an area area_name = "France" - res = client.post( - f"/v1/studies/{variant_id}/areas", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"name": area_name, "type": "AREA"}, - ) + res = client.post(f"/v1/studies/{variant_id}/areas", json={"name": area_name, "type": "AREA"}) assert res.status_code in {200, 201}, res.json() area_cfg = res.json() area_id = area_cfg["id"] @@ -806,7 +781,6 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var cluster_name = "Tesla1" res = client.post( f"/v1/studies/{variant_id}/areas/{area_id}/storages", - headers={"Authorization": f"Bearer {user_access_token}"}, json={ "name": cluster_name, "group": "Battery", @@ -820,9 +794,7 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var # Update the short-term storage res = client.patch( - f"/v1/studies/{variant_id}/areas/{area_id}/storages/{cluster_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"reservoirCapacity": 5600}, + f"/v1/studies/{variant_id}/areas/{area_id}/storages/{cluster_id}", json={"reservoirCapacity": 5600} ) assert res.status_code == 200, res.json() cluster_cfg = res.json() @@ -832,19 +804,13 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var matrix = np.random.randint(0, 2, size=(8760, 1)).tolist() matrix_path = f"input/st-storage/series/{area_id}/{cluster_id.lower()}/pmax_injection" args = {"target": matrix_path, "matrix": matrix} - res = client.post( - f"/v1/studies/{variant_id}/commands", - json=[{"action": "replace_matrix", "args": args}], - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.post(f"/v1/studies/{variant_id}/commands", json=[{"action": "replace_matrix", "args": args}]) assert res.status_code in {200, 201}, res.json() # Duplicate the short-term storage new_name = "Tesla2" res = client.post( - f"/v1/studies/{variant_id}/areas/{area_id}/storages/{cluster_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - params={"newName": new_name}, + f"/v1/studies/{variant_id}/areas/{area_id}/storages/{cluster_id}", params={"newName": new_name} ) assert res.status_code in {200, 201}, res.json() cluster_cfg = res.json() @@ -852,10 +818,7 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var new_id = cluster_cfg["id"] # Check that the duplicate has the right properties - res = client.get( - f"/v1/studies/{variant_id}/areas/{area_id}/storages/{new_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/areas/{area_id}/storages/{new_id}") assert res.status_code == 200, res.json() cluster_cfg = res.json() assert cluster_cfg["group"] == "Battery" @@ -865,27 +828,19 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var # Check that the duplicate has the right matrix new_cluster_matrix_path = f"input/st-storage/series/{area_id}/{new_id.lower()}/pmax_injection" - res = client.get( - f"/v1/studies/{variant_id}/raw", - params={"path": new_cluster_matrix_path}, - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/raw", params={"path": new_cluster_matrix_path}) assert res.status_code == 200 assert res.json()["data"] == matrix # Delete the short-term storage - res = client.delete( - f"/v1/studies/{variant_id}/areas/{area_id}/storages", - headers={"Authorization": f"Bearer {user_access_token}"}, - json=[cluster_id], + # usage of request instead of delete as httpx doesn't support delete with a payload anymore. + res = client.request( + method="DELETE", url=f"/v1/studies/{variant_id}/areas/{area_id}/storages", json=[cluster_id] ) assert res.status_code == 204, res.json() # Check the list of variant commands - res = client.get( - f"/v1/studies/{variant_id}/commands", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/commands") assert res.status_code == 200, res.json() commands = res.json() assert len(commands) == 7 diff --git a/tests/integration/study_data_blueprint/test_table_mode.py b/tests/integration/study_data_blueprint/test_table_mode.py index 2e36b55490..98d7f03393 100644 --- a/tests/integration/study_data_blueprint/test_table_mode.py +++ b/tests/integration/study_data_blueprint/test_table_mode.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import copy import typing as t diff --git a/tests/integration/study_data_blueprint/test_thermal.py b/tests/integration/study_data_blueprint/test_thermal.py index 33e9aef03d..6567fc205f 100644 --- a/tests/integration/study_data_blueprint/test_thermal.py +++ b/tests/integration/study_data_blueprint/test_thermal.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ ## End-to-end test of the thermal cluster management. @@ -28,7 +40,6 @@ * validate the consistency of the matrices (and properties) """ import io -import json import re import typing as t @@ -42,7 +53,7 @@ from antarest.study.storage.rawstudy.model.filesystem.config.thermal import ThermalProperties from tests.integration.utils import wait_task_completion -DEFAULT_PROPERTIES = json.loads(ThermalProperties(name="Dummy").json()) +DEFAULT_PROPERTIES = ThermalProperties(name="Dummy").model_dump(mode="json") DEFAULT_PROPERTIES = {to_camel_case(k): v for k, v in DEFAULT_PROPERTIES.items() if k != "name"} # noinspection SpellCheckingInspection @@ -499,7 +510,6 @@ def test_lifecycle( json={"nox": 10.0}, ) assert res.status_code == 200 - assert res.json()["nox"] == 10.0 # Update with the field `efficiency`. Should succeed even with versions prior to v8.7 res = client.patch( @@ -508,7 +518,6 @@ def test_lifecycle( json={"efficiency": 97.0}, ) assert res.status_code == 200 - assert res.json()["efficiency"] == 97.0 # ============================= # THERMAL CLUSTER DUPLICATION @@ -937,13 +946,10 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var In this test, we want to check that thermal clusters can be managed in the context of a "variant" study. """ + client.headers = {"Authorization": f"Bearer {user_access_token}"} # Create an area area_name = "France" - res = client.post( - f"/v1/studies/{variant_id}/areas", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={"name": area_name, "type": "AREA"}, - ) + res = client.post(f"/v1/studies/{variant_id}/areas", json={"name": area_name, "type": "AREA"}) assert res.status_code in {200, 201}, res.json() area_cfg = res.json() area_id = area_cfg["id"] @@ -952,7 +958,6 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var cluster_name = "Th1" res = client.post( f"/v1/studies/{variant_id}/areas/{area_id}/clusters/thermal", - headers={"Authorization": f"Bearer {user_access_token}"}, json={ "name": cluster_name, "group": "Nuclear", @@ -966,11 +971,7 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var # Update the thermal cluster res = client.patch( - f"/v1/studies/{variant_id}/areas/{area_id}/clusters/thermal/{cluster_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - json={ - "marginalCost": 0.2, - }, + f"/v1/studies/{variant_id}/areas/{area_id}/clusters/thermal/{cluster_id}", json={"marginalCost": 0.2} ) assert res.status_code == 200, res.json() cluster_cfg = res.json() @@ -980,19 +981,13 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var matrix = np.random.randint(0, 2, size=(8760, 1)).tolist() matrix_path = f"input/thermal/prepro/{area_id}/{cluster_id.lower()}/data" args = {"target": matrix_path, "matrix": matrix} - res = client.post( - f"/v1/studies/{variant_id}/commands", - json=[{"action": "replace_matrix", "args": args}], - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.post(f"/v1/studies/{variant_id}/commands", json=[{"action": "replace_matrix", "args": args}]) assert res.status_code in {200, 201}, res.json() # Duplicate the thermal cluster new_name = "Th2" res = client.post( - f"/v1/studies/{variant_id}/areas/{area_id}/thermals/{cluster_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - params={"newName": new_name}, + f"/v1/studies/{variant_id}/areas/{area_id}/thermals/{cluster_id}", params={"newName": new_name} ) assert res.status_code in {200, 201}, res.json() cluster_cfg = res.json() @@ -1000,10 +995,7 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var new_id = cluster_cfg["id"] # Check that the duplicate has the right properties - res = client.get( - f"/v1/studies/{variant_id}/areas/{area_id}/clusters/thermal/{new_id}", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/areas/{area_id}/clusters/thermal/{new_id}") assert res.status_code == 200, res.json() cluster_cfg = res.json() assert cluster_cfg["group"] == "Nuclear" @@ -1013,27 +1005,19 @@ def test_variant_lifecycle(self, client: TestClient, user_access_token: str, var # Check that the duplicate has the right matrix new_cluster_matrix_path = f"input/thermal/prepro/{area_id}/{new_id.lower()}/data" - res = client.get( - f"/v1/studies/{variant_id}/raw", - params={"path": new_cluster_matrix_path}, - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/raw", params={"path": new_cluster_matrix_path}) assert res.status_code == 200 assert res.json()["data"] == matrix # Delete the thermal cluster - res = client.delete( - f"/v1/studies/{variant_id}/areas/{area_id}/clusters/thermal", - headers={"Authorization": f"Bearer {user_access_token}"}, - json=[cluster_id], + # usage of request instead of delete as httpx doesn't support delete with a payload anymore. + res = client.request( + method="DELETE", url=f"/v1/studies/{variant_id}/areas/{area_id}/clusters/thermal", json=[cluster_id] ) assert res.status_code == 204, res.json() # Check the list of variant commands - res = client.get( - f"/v1/studies/{variant_id}/commands", - headers={"Authorization": f"Bearer {user_access_token}"}, - ) + res = client.get(f"/v1/studies/{variant_id}/commands") assert res.status_code == 200, res.json() commands = res.json() assert len(commands) == 7 @@ -1170,9 +1154,9 @@ def test_thermal_cluster_deletion(self, client: TestClient, user_access_token: s assert res.status_code == 200, res.json() # check that deleting the thermal cluster in area_1 fails - res = client.delete( - f"/v1/studies/{internal_study_id}/areas/area_1/clusters/thermal", - json=["cluster_1"], + # usage of request instead of delete as httpx doesn't support delete with a payload anymore. + res = client.request( + method="DELETE", url=f"/v1/studies/{internal_study_id}/areas/area_1/clusters/thermal", json=["cluster_1"] ) assert res.status_code == 403, res.json() @@ -1183,16 +1167,14 @@ def test_thermal_cluster_deletion(self, client: TestClient, user_access_token: s assert res.status_code == 200, res.json() # check that deleting the thermal cluster in area_1 succeeds - res = client.delete( - f"/v1/studies/{internal_study_id}/areas/area_1/clusters/thermal", - json=["cluster_1"], + res = client.request( + method="DELETE", url=f"/v1/studies/{internal_study_id}/areas/area_1/clusters/thermal", json=["cluster_1"] ) assert res.status_code == 204, res.json() # check that deleting the thermal cluster in area_2 fails - res = client.delete( - f"/v1/studies/{internal_study_id}/areas/area_2/clusters/thermal", - json=["cluster_2"], + res = client.request( + method="DELETE", url=f"/v1/studies/{internal_study_id}/areas/area_2/clusters/thermal", json=["cluster_2"] ) assert res.status_code == 403, res.json() @@ -1203,15 +1185,13 @@ def test_thermal_cluster_deletion(self, client: TestClient, user_access_token: s assert res.status_code == 200, res.json() # check that deleting the thermal cluster in area_2 succeeds - res = client.delete( - f"/v1/studies/{internal_study_id}/areas/area_2/clusters/thermal", - json=["cluster_2"], + res = client.request( + method="DELETE", url=f"/v1/studies/{internal_study_id}/areas/area_2/clusters/thermal", json=["cluster_2"] ) assert res.status_code == 204, res.json() # check that deleting the thermal cluster in area_3 succeeds - res = client.delete( - f"/v1/studies/{internal_study_id}/areas/area_3/clusters/thermal", - json=["cluster_3"], + res = client.request( + method="DELETE", url=f"/v1/studies/{internal_study_id}/areas/area_3/clusters/thermal", json=["cluster_3"] ) assert res.status_code == 204, res.json() diff --git a/tests/integration/test_apidoc.py b/tests/integration/test_apidoc.py index 562f7ccb8e..d0eb7445d8 100644 --- a/tests/integration/test_apidoc.py +++ b/tests/integration/test_apidoc.py @@ -1,11 +1,24 @@ -from fastapi.openapi.utils import get_flat_models_from_routes -from fastapi.utils import get_model_definitions -from pydantic.schema import get_model_name_map +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from starlette.testclient import TestClient +from antarest import __version__ + def test_apidoc(client: TestClient) -> None: - # Asserts that the apidoc can be loaded - flat_models = get_flat_models_from_routes(client.app.routes) - model_name_map = get_model_name_map(flat_models) - get_model_definitions(flat_models=flat_models, model_name_map=model_name_map) + # Local import to avoid breaking all tests if FastAPI changes its API + from fastapi.openapi.utils import get_openapi + + routes = client.app.routes + openapi = get_openapi(title="Antares Web", version=__version__, routes=routes) + assert openapi diff --git a/tests/integration/test_core_blueprint.py b/tests/integration/test_core_blueprint.py index 61a0fcbe3a..a60ba6dcfb 100644 --- a/tests/integration/test_core_blueprint.py +++ b/tests/integration/test_core_blueprint.py @@ -1,4 +1,15 @@ -import http +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re from unittest import mock @@ -36,23 +47,3 @@ def test_version_info(self, app: FastAPI): "dependencies": mock.ANY, } assert actual == expected - - -class TestKillWorker: - def test_kill_worker__not_granted(self, app: FastAPI): - client = TestClient(app, raise_server_exceptions=False) - res = client.get("/kill") - assert res.status_code == http.HTTPStatus.UNAUTHORIZED, res.json() - assert res.json() == {"detail": "Missing cookie access_token_cookie"} - - def test_kill_worker__nominal_case(self, app: FastAPI): - client = TestClient(app, raise_server_exceptions=False) - # login as "admin" - res = client.post("/v1/login", json={"username": "admin", "password": "admin"}) - res.raise_for_status() - credentials = res.json() - admin_access_token = credentials["access_token"] - # kill the worker - res = client.get("/kill", headers={"Authorization": f"Bearer {admin_access_token}"}) - assert res.status_code == 500, res.json() - assert not res.content diff --git a/tests/integration/test_integration.py b/tests/integration/test_integration.py index 55c1073168..a136184969 100644 --- a/tests/integration/test_integration.py +++ b/tests/integration/test_integration.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import os from http import HTTPStatus @@ -81,7 +93,7 @@ def test_main(client: TestClient, admin_access_token: str) -> None: headers={"Authorization": f'Bearer {george_credentials["access_token"]}'}, ) res_output = res.json() - assert len(res_output) == 5 + assert len(res_output) == 6 res = client.get( f"/v1/studies/{study_id}/outputs/20201014-1427eco/variables", @@ -178,7 +190,7 @@ def test_main(client: TestClient, admin_access_token: str) -> None: f"/v1/studies/{study_id}/outputs", headers={"Authorization": f'Bearer {george_credentials["access_token"]}'}, ) - assert len(res.json()) == 4 + assert len(res.json()) == 5 # study creation created = client.post( @@ -440,7 +452,7 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: }, ) - client.post( + res = client.post( f"/v1/studies/{study_id}/commands", json=[ { @@ -453,6 +465,7 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: } ], ) + res.raise_for_status() client.post( f"/v1/studies/{study_id}/commands", @@ -594,13 +607,14 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: }, ] - client.post( + res = client.post( f"/v1/studies/{study_id}/links", json={ "area1": "area 1", "area2": "area 2", }, ) + res.raise_for_status() res_links = client.get(f"/v1/studies/{study_id}/links?with_ui=true") assert res_links.json() == [ { @@ -613,15 +627,16 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: # -- `layers` integration tests res = client.get(f"/v1/studies/{study_id}/layers") - assert res.json() == [LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).dict()] + res.raise_for_status() + assert res.json() == [LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).model_dump()] res = client.post(f"/v1/studies/{study_id}/layers?name=test") assert res.json() == "1" res = client.get(f"/v1/studies/{study_id}/layers") assert res.json() == [ - LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).dict(), - LayerInfoDTO(id="1", name="test", areas=[]).dict(), + LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).model_dump(), + LayerInfoDTO(id="1", name="test", areas=[]).model_dump(), ] res = client.put(f"/v1/studies/{study_id}/layers/1?name=test2") @@ -632,8 +647,8 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: assert res.status_code in {200, 201}, res.json() res = client.get(f"/v1/studies/{study_id}/layers") assert res.json() == [ - LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).dict(), - LayerInfoDTO(id="1", name="test2", areas=["area 2"]).dict(), + LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).model_dump(), + LayerInfoDTO(id="1", name="test2", areas=["area 2"]).model_dump(), ] # Delete the layer '1' that has 1 area @@ -643,7 +658,7 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: # Ensure the layer is deleted res = client.get(f"/v1/studies/{study_id}/layers") assert res.json() == [ - LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).dict(), + LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).model_dump(), ] # Create the layer again without areas @@ -657,7 +672,7 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: # Ensure the layer is deleted res = client.get(f"/v1/studies/{study_id}/layers") assert res.json() == [ - LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).dict(), + LayerInfoDTO(id="0", name="All", areas=["area 1", "area 2"]).model_dump(), ] # Try to delete a non-existing layer @@ -743,7 +758,7 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: "simplexOptimizationRange": SimplexOptimizationRange.WEEK.value, } - client.put( + res = client.put( f"/v1/studies/{study_id}/config/optimization/form", json={ "strategicReserve": False, @@ -751,6 +766,7 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: "simplexOptimizationRange": SimplexOptimizationRange.DAY.value, }, ) + res.raise_for_status() res_optimization_config = client.get(f"/v1/studies/{study_id}/config/optimization/form") res_optimization_config_json = res_optimization_config.json() assert res_optimization_config_json == { @@ -806,6 +822,15 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: "thresholdCsrVariableBoundsRelaxation": 3, } + # asserts csr field is an int + res = client.put( + f"/v1/studies/{study_id}/config/adequacypatch/form", + json={"thresholdCsrVariableBoundsRelaxation": 0.8}, + ) + assert res.status_code == 422 + assert res.json()["exception"] == "RequestValidationError" + assert res.json()["description"] == "Input should be a valid integer" + # General form res_general_config = client.get(f"/v1/studies/{study_id}/config/general/form") @@ -1248,7 +1273,7 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: }, "ntc": {"stochasticTsStatus": False, "intraModal": False}, } - res_ts_config = client.put( + client.put( f"/v1/studies/{study_id}/config/timeseries/form", json={ "thermal": {"stochasticTsStatus": True}, @@ -1391,7 +1416,7 @@ def test_area_management(client: TestClient, admin_access_token: str) -> None: res_links = client.get(f"/v1/studies/{study_id}/links") assert res_links.json() == [] - res = client.put( + client.put( f"/v1/studies/{study_id}/areas/area%201/ui", json={"x": 100, "y": 100, "color_rgb": [255, 0, 100]}, ) @@ -1653,7 +1678,7 @@ def test_import(client: TestClient, admin_access_token: str, internal_study_id: f"/v1/studies/{internal_study_id}/outputs", headers={"Authorization": f'Bearer {george_credentials["access_token"]}'}, ) - assert len(res.json()) == 6 + assert len(res.json()) == 7 # tests outputs import for .7z output_path_seven_zip = ASSETS_DIR / "output_adq.7z" @@ -1666,7 +1691,7 @@ def test_import(client: TestClient, admin_access_token: str, internal_study_id: f"/v1/studies/{internal_study_id}/outputs", headers={"Authorization": f'Bearer {george_credentials["access_token"]}'}, ) - assert len(res.json()) == 7 + assert len(res.json()) == 8 # test matrices import for .zip and .7z files matrices_zip_path = ASSETS_DIR / "matrices.zip" diff --git a/tests/integration/test_integration_token_end_to_end.py b/tests/integration/test_integration_token_end_to_end.py index bdab6a036d..6bfefe0d3b 100644 --- a/tests/integration/test_integration_token_end_to_end.py +++ b/tests/integration/test_integration_token_end_to_end.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import typing as t from unittest.mock import ANY @@ -197,7 +209,7 @@ def wait_unit_finished() -> bool: # read a result res = client.get(f"/v1/studies/{study_id}/outputs", headers=bot_headers) - assert len(res.json()) == 5 + assert len(res.json()) == 6 first_output_name = res.json()[0]["name"] res = client.get( f"/v1/studies/{study_id}/raw", @@ -212,7 +224,7 @@ def wait_unit_finished() -> bool: # remove output client.delete(f"/v1/studies/{study_id}/outputs/{first_output_name}", headers=bot_headers) res = client.get(f"/v1/studies/{study_id}/outputs", headers=bot_headers) - assert len(res.json()) == 4 + assert len(res.json()) == 5 # delete variant res = client.delete(f"/v1/studies/{variant_id}", headers=bot_headers) diff --git a/tests/integration/test_integration_variantmanager_tool.py b/tests/integration/test_integration_variantmanager_tool.py index 4b27c84848..85783fe789 100644 --- a/tests/integration/test_integration_variantmanager_tool.py +++ b/tests/integration/test_integration_variantmanager_tool.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import urllib.parse from pathlib import Path @@ -16,10 +28,12 @@ COMMAND_FILE, MATRIX_STORE_DIR, RemoteVariantGenerator, + create_http_client, extract_commands, generate_diff, generate_study, parse_commands, + set_auth_token, ) from tests.integration.assets import ASSETS_DIR @@ -50,7 +64,9 @@ def generate_study_with_server( ) assert res.status_code == 200, res.json() variant_id = res.json() - generator = RemoteVariantGenerator(variant_id, session=client, token=admin_credentials["access_token"]) + + set_auth_token(client, admin_credentials["access_token"]) + generator = RemoteVariantGenerator(variant_id, host="", session=client) return generator.apply_commands(commands, matrices_dir), variant_id diff --git a/tests/integration/test_integration_watcher.py b/tests/integration/test_integration_watcher.py index e151a3ade3..da28eb76c4 100644 --- a/tests/integration/test_integration_watcher.py +++ b/tests/integration/test_integration_watcher.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from fastapi import FastAPI from starlette.testclient import TestClient diff --git a/tests/integration/test_studies_upgrade.py b/tests/integration/test_studies_upgrade.py index 3eb92522af..37b5058ff2 100644 --- a/tests/integration/test_studies_upgrade.py +++ b/tests/integration/test_studies_upgrade.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os import pytest @@ -38,7 +50,6 @@ def test_upgrade_study__target_version(self, client: TestClient, user_access_tok assert task.status == TaskStatus.COMPLETED assert target_version in task.result.message, f"Version not in {task.result.message=}" - @pytest.mark.skipif(RUN_ON_WINDOWS, reason="This test runs randomly on Windows") def test_upgrade_study__bad_target_version( self, client: TestClient, user_access_token: str, internal_study_id: str ): @@ -48,12 +59,9 @@ def test_upgrade_study__bad_target_version( headers={"Authorization": f"Bearer {user_access_token}"}, params={"target_version": target_version}, ) - assert res.status_code == 200 - task_id = res.json() - assert task_id - task = wait_task_completion(client, user_access_token, task_id) - assert task.status == TaskStatus.FAILED - assert target_version in task.result.message, f"Version not in {task.result.message=}" + assert res.status_code == 400 + assert res.json()["exception"] == "UnsupportedStudyVersion" + assert f"Version '{target_version}' isn't among supported versions" in res.json()["description"] def test_upgrade_study__unmet_requirements(self, client: TestClient, admin_access_token: str): """ diff --git a/tests/integration/utils.py b/tests/integration/utils.py index 7781fe0a8a..fa5a34f286 100644 --- a/tests/integration/utils.py +++ b/tests/integration/utils.py @@ -1,4 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib +import os import time from typing import Callable @@ -17,24 +30,32 @@ def wait_for(predicate: Callable[[], bool], timeout: float = 10, sleep_time: flo raise TimeoutError(f"task is still in progress after {timeout} seconds") +IS_WINDOWS = os.name == "nt" +TIMEOUT_MULTIPLIER = 2 if IS_WINDOWS else 1 + + def wait_task_completion( client: TestClient, access_token: str, task_id: str, *, - timeout: float = 10, + base_timeout: float = 10, ) -> TaskDTO: - end_time = time.time() + timeout - while time.time() < end_time: - time.sleep(0.1) - res = client.request( - "GET", - f"/v1/tasks/{task_id}", - headers={"Authorization": f"Bearer {access_token}"}, - json={"wait_for_completion": True}, - ) - assert res.status_code == 200 + """ + base_timeout is multiplied by 2 on windows to cope with slow CI + """ + timeout = TIMEOUT_MULTIPLIER * base_timeout + params = {"wait_for_completion": True, "timeout": timeout} + res = client.request( + "GET", + f"/v1/tasks/{task_id}", + headers={"Authorization": f"Bearer {access_token}"}, + params=params, + ) + if res.status_code == 200: task = TaskDTO(**res.json()) if task.status not in {TaskStatus.PENDING, TaskStatus.RUNNING}: return task - raise TimeoutError(f"{timeout} seconds") + elif res.status_code == 408: + raise TimeoutError(f"{timeout} seconds") + raise ValueError(f"Unexpected status code {res.status_code}") diff --git a/tests/integration/variant_blueprint/__init__.py b/tests/integration/variant_blueprint/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/integration/variant_blueprint/__init__.py +++ b/tests/integration/variant_blueprint/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/integration/variant_blueprint/test_renewable_cluster.py b/tests/integration/variant_blueprint/test_renewable_cluster.py index e518244ff9..18e6af0c56 100644 --- a/tests/integration/variant_blueprint/test_renewable_cluster.py +++ b/tests/integration/variant_blueprint/test_renewable_cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import http import numpy as np diff --git a/tests/integration/variant_blueprint/test_st_storage.py b/tests/integration/variant_blueprint/test_st_storage.py index c28af6790d..b4092f0acb 100644 --- a/tests/integration/variant_blueprint/test_st_storage.py +++ b/tests/integration/variant_blueprint/test_st_storage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import http from unittest.mock import ANY @@ -221,18 +233,5 @@ def test_lifecycle( ) assert res.status_code == http.HTTPStatus.UNPROCESSABLE_ENTITY description = res.json()["description"] - """ - 4 validation errors for CreateSTStorage - parameters -> group - value is not a valid enumeration member […] - parameters -> injectionnominalcapacity - ensure this value is greater than or equal to 0 (type=value_error.number.not_ge; limit_value=0) - parameters -> initialleveloptim - value could not be parsed to a boolean (type=type_error.bool) - pmax_withdrawal - Matrix values should be between 0 and 1 (type=value_error) - """ - assert "parameters -> group" in description - assert "parameters -> injectionnominalcapacity" in description - assert "parameters -> initialleveloptim" in description - assert "pmax_withdrawal" in description + assert "Matrix values should be between 0 and 1" in description + assert "1 validation error for CreateSTStorage" in description diff --git a/tests/integration/variant_blueprint/test_thermal_cluster.py b/tests/integration/variant_blueprint/test_thermal_cluster.py index 245fd8a02a..db78599cee 100644 --- a/tests/integration/variant_blueprint/test_thermal_cluster.py +++ b/tests/integration/variant_blueprint/test_thermal_cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import http import random import typing as t @@ -128,7 +140,7 @@ def test_cascade_update( ) assert res.status_code == http.HTTPStatus.OK, res.json() task = TaskDTO(**res.json()) - assert task.dict() == { + assert task.model_dump() == { "completion_date_utc": mock.ANY, "creation_date_utc": mock.ANY, "id": task_id, diff --git a/tests/integration/variant_blueprint/test_variant_manager.py b/tests/integration/variant_blueprint/test_variant_manager.py index 82fa7ab95c..435f7565ac 100644 --- a/tests/integration/variant_blueprint/test_variant_manager.py +++ b/tests/integration/variant_blueprint/test_variant_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import logging import time @@ -187,7 +199,7 @@ def test_variant_manager( res = client.get(f"/v1/tasks/{res.json()}?wait_for_completion=true", headers=admin_headers) assert res.status_code == 200 - task_result = TaskDTO.parse_obj(res.json()) + task_result = TaskDTO.model_validate(res.json()) assert task_result.status == TaskStatus.COMPLETED assert task_result.result.success # type: ignore @@ -234,7 +246,7 @@ def test_comments(client: TestClient, admin_access_token: str, variant_id: str) # Wait for task completion res = client.get(f"/v1/tasks/{task_id}", headers=admin_headers, params={"wait_for_completion": True}) assert res.status_code == 200 - task_result = TaskDTO.parse_obj(res.json()) + task_result = TaskDTO.model_validate(res.json()) assert task_result.status == TaskStatus.COMPLETED assert task_result.result is not None assert task_result.result.success @@ -308,7 +320,7 @@ def test_outputs(client: TestClient, admin_access_token: str, variant_id: str, t # Wait for task completion res = client.get(f"/v1/tasks/{task_id}", headers=admin_headers, params={"wait_for_completion": True}) res.raise_for_status() - task_result = TaskDTO.parse_obj(res.json()) + task_result = TaskDTO.model_validate(res.json()) assert task_result.status == TaskStatus.COMPLETED assert task_result.result is not None assert task_result.result.success diff --git a/tests/integration/xpansion_studies_blueprint/__init__.py b/tests/integration/xpansion_studies_blueprint/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/integration/xpansion_studies_blueprint/__init__.py +++ b/tests/integration/xpansion_studies_blueprint/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/integration/xpansion_studies_blueprint/test_integration_xpansion.py b/tests/integration/xpansion_studies_blueprint/test_integration_xpansion.py index b3a563a71e..332b532680 100644 --- a/tests/integration/xpansion_studies_blueprint/test_integration_xpansion.py +++ b/tests/integration/xpansion_studies_blueprint/test_integration_xpansion.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import re import typing as t @@ -11,7 +23,6 @@ def _create_area( client: TestClient, - headers: t.Mapping[str, str], study_id: str, area_name: str, *, @@ -19,7 +30,6 @@ def _create_area( ) -> str: res = client.post( f"/v1/studies/{study_id}/areas", - headers=headers, json={"name": area_name, "type": "AREA", "metadata": {"country": country}}, ) assert res.status_code in {200, 201}, res.json() @@ -28,32 +38,28 @@ def _create_area( def _create_link( client: TestClient, - headers: t.Mapping[str, str], study_id: str, src_area_id: str, dst_area_id: str, ) -> None: - res = client.post( - f"/v1/studies/{study_id}/links", - headers=headers, - json={"area1": src_area_id, "area2": dst_area_id}, - ) + res = client.post(f"/v1/studies/{study_id}/links", json={"area1": src_area_id, "area2": dst_area_id}) assert res.status_code in {200, 201}, res.json() def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_token: str) -> None: headers = {"Authorization": f"Bearer {admin_access_token}"} + client.headers = headers - res = client.post("/v1/studies", headers=headers, params={"name": "foo", "version": "860"}) + res = client.post("/v1/studies", params={"name": "foo", "version": "860"}) assert res.status_code == 201, res.json() study_id = res.json() - area1_id = _create_area(client, headers, study_id, "area1", country="FR") - area2_id = _create_area(client, headers, study_id, "area2", country="DE") - area3_id = _create_area(client, headers, study_id, "area3", country="DE") - _create_link(client, headers, study_id, area1_id, area2_id) + area1_id = _create_area(client, study_id, "area1", country="FR") + area2_id = _create_area(client, study_id, "area2", country="DE") + area3_id = _create_area(client, study_id, "area3", country="DE") + _create_link(client, study_id, area1_id, area2_id) - res = client.post(f"/v1/studies/{study_id}/extensions/xpansion", headers=headers) + res = client.post(f"/v1/studies/{study_id}/extensions/xpansion") assert res.status_code in {200, 201}, res.json() expansion_path = tmp_path / "internal_workspace" / study_id / "user" / "expansion" @@ -61,9 +67,9 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t # Create a client for Xpansion with the xpansion URL xpansion_base_url = f"/v1/studies/{study_id}/extensions/xpansion/" - xp_client = TestClient(client.app, base_url=urljoin(client.base_url, xpansion_base_url)) - - res = xp_client.get("settings", headers=headers) + xp_client = TestClient(client.app, base_url=urljoin(str(client.base_url), xpansion_base_url)) + xp_client.headers = headers + res = xp_client.get("settings") assert res.status_code == 200 assert res.json() == { "master": "integer", @@ -82,7 +88,7 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "sensitivity_config": {"epsilon": 0.0, "projection": [], "capex": False}, } - res = xp_client.put("settings", headers=headers, json={"optimality_gap": 42}) + res = xp_client.put("settings", json={"optimality_gap": 42}) assert res.status_code == 200 assert res.json() == { "master": "integer", @@ -101,13 +107,13 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "sensitivity_config": {"epsilon": 0.0, "projection": [], "capex": False}, } - res = xp_client.put("settings", headers=headers, json={"additional-constraints": "missing.txt"}) + res = xp_client.put("settings", json={"additional-constraints": "missing.txt"}) assert res.status_code == 404 err_obj = res.json() assert re.search(r"file 'missing.txt' does not exist", err_obj["description"]) assert err_obj["exception"] == "XpansionFileNotFoundError" - res = xp_client.put("settings/additional-constraints", headers=headers, params={"filename": "missing.txt"}) + res = xp_client.put("settings/additional-constraints", params={"filename": "missing.txt"}) assert res.status_code == 404 err_obj = res.json() assert re.search(r"file 'missing.txt' does not exist", err_obj["description"]) @@ -127,7 +133,7 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "image/jpeg", ) } - res = xp_client.post("resources/constraints", headers=headers, files=files) + res = xp_client.post("resources/constraints", files=files) assert res.status_code in {200, 201} actual_path = expansion_path / "constraints" / filename_constraints1 assert actual_path.read_text() == content_constraints1 @@ -140,7 +146,7 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t ), } - res = xp_client.post("resources/constraints", headers=headers, files=files) + res = xp_client.post("resources/constraints", files=files) assert res.status_code == 409 err_obj = res.json() assert re.search( @@ -157,7 +163,7 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "image/jpeg", ), } - res = xp_client.post("resources/constraints", headers=headers, files=files) + res = xp_client.post("resources/constraints", files=files) assert res.status_code in {200, 201} files = { @@ -167,14 +173,14 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "image/jpeg", ), } - res = xp_client.post("resources/constraints", headers=headers, files=files) + res = xp_client.post("resources/constraints", files=files) assert res.status_code in {200, 201} - res = xp_client.get(f"resources/constraints/{filename_constraints1}", headers=headers) + res = xp_client.get(f"resources/constraints/{filename_constraints1}") assert res.status_code == 200 assert res.json() == content_constraints1 - res = xp_client.get("resources/constraints/", headers=headers) + res = xp_client.get("resources/constraints/") assert res.status_code == 200 assert res.json() == [ filename_constraints1, @@ -182,14 +188,10 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t filename_constraints3, ] - res = xp_client.put( - "settings/additional-constraints", - headers=headers, - params={"filename": filename_constraints1}, - ) + res = xp_client.put("settings/additional-constraints", params={"filename": filename_constraints1}) assert res.status_code == 200 - res = xp_client.delete(f"resources/constraints/{filename_constraints1}", headers=headers) + res = xp_client.delete(f"resources/constraints/{filename_constraints1}") assert res.status_code == 409 err_obj = res.json() assert re.search( @@ -199,10 +201,10 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t ) assert err_obj["exception"] == "FileCurrentlyUsedInSettings" - res = xp_client.put("settings/additional-constraints", headers=headers) + res = xp_client.put("settings/additional-constraints") assert res.status_code == 200 - res = xp_client.delete(f"resources/constraints/{filename_constraints1}", headers=headers) + res = xp_client.delete(f"resources/constraints/{filename_constraints1}") assert res.status_code == 200 candidate1 = { @@ -211,7 +213,7 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "annual-cost-per-mw": 1, "max-investment": 1.0, } - res = xp_client.post("candidates", headers=headers, json=candidate1) + res = xp_client.post("candidates", json=candidate1) assert res.status_code in {200, 201} candidate2 = { @@ -220,7 +222,7 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "annual-cost-per-mw": 1, "max-investment": 1.0, } - res = xp_client.post("candidates", headers=headers, json=candidate2) + res = xp_client.post("candidates", json=candidate2) assert res.status_code == 404 err_obj = res.json() assert re.search( @@ -236,7 +238,7 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "annual-cost-per-mw": 1, "max-investment": 1.0, } - res = xp_client.post("candidates", headers=headers, json=candidate3) + res = xp_client.post("candidates", json=candidate3) assert res.status_code == 404 err_obj = res.json() assert re.search( @@ -259,12 +261,12 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "txt/csv", ) } - res = xp_client.post("resources/capacities", headers=headers, files=files) + res = xp_client.post("resources/capacities", files=files) assert res.status_code in {200, 201} actual_path = expansion_path / "capa" / filename_capa1 assert actual_path.read_text() == content_capa1 - res = xp_client.post("resources/capacities", headers=headers, files=files) + res = xp_client.post("resources/capacities", files=files) assert res.status_code == 409 err_obj = res.json() assert re.search( @@ -281,7 +283,7 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "txt/csv", ) } - res = xp_client.post("resources/capacities", headers=headers, files=files) + res = xp_client.post("resources/capacities", files=files) assert res.status_code in {200, 201} files = { @@ -291,11 +293,11 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "txt/csv", ) } - res = xp_client.post("resources/capacities", headers=headers, files=files) + res = xp_client.post("resources/capacities", files=files) assert res.status_code in {200, 201} # get single capa - res = xp_client.get(f"resources/capacities/{filename_capa1}", headers=headers) + res = xp_client.get(f"resources/capacities/{filename_capa1}") assert res.status_code == 200 assert res.json() == { "columns": [0], @@ -303,7 +305,7 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "index": [0], } - res = xp_client.get("resources/capacities", headers=headers) + res = xp_client.get("resources/capacities") assert res.status_code == 200 assert res.json() == [filename_capa1, filename_capa2, filename_capa3] @@ -314,21 +316,21 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "max-investment": 1.0, "link-profile": filename_capa1, } - res = xp_client.post("candidates", headers=headers, json=candidate4) + res = xp_client.post("candidates", json=candidate4) assert res.status_code in {200, 201} - res = xp_client.get(f"candidates/{candidate1['name']}", headers=headers) + res = xp_client.get(f"candidates/{candidate1['name']}") assert res.status_code == 200 - assert res.json() == XpansionCandidateDTO.parse_obj(candidate1).dict(by_alias=True) + assert res.json() == XpansionCandidateDTO.model_validate(candidate1).model_dump(by_alias=True) - res = xp_client.get("candidates", headers=headers) + res = xp_client.get("candidates") assert res.status_code == 200 assert res.json() == [ - XpansionCandidateDTO.parse_obj(candidate1).dict(by_alias=True), - XpansionCandidateDTO.parse_obj(candidate4).dict(by_alias=True), + XpansionCandidateDTO.model_validate(candidate1).model_dump(by_alias=True), + XpansionCandidateDTO.model_validate(candidate4).model_dump(by_alias=True), ] - res = xp_client.delete(f"resources/capacities/{filename_capa1}", headers=headers) + res = xp_client.delete(f"resources/capacities/{filename_capa1}") assert res.status_code == 409 err_obj = res.json() assert re.search( @@ -343,13 +345,13 @@ def test_integration_xpansion(client: TestClient, tmp_path: Path, admin_access_t "annual-cost-per-mw": 1, "max-investment": 1.0, } - res = xp_client.put(f"candidates/{candidate4['name']}", headers=headers, json=candidate5) + res = xp_client.put(f"candidates/{candidate4['name']}", json=candidate5) assert res.status_code == 200 - res = xp_client.delete(f"resources/capacities/{filename_capa1}", headers=headers) + res = xp_client.delete(f"resources/capacities/{filename_capa1}") assert res.status_code == 200 - res = client.delete(f"/v1/studies/{study_id}/extensions/xpansion", headers=headers) + res = client.delete(f"/v1/studies/{study_id}/extensions/xpansion") assert res.status_code == 200 assert not expansion_path.exists() diff --git a/tests/launcher/__init__.py b/tests/launcher/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/launcher/__init__.py +++ b/tests/launcher/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/launcher/assets/__init__.py b/tests/launcher/assets/__init__.py index 773f16ec60..3fff24b6fe 100644 --- a/tests/launcher/assets/__init__.py +++ b/tests/launcher/assets/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path ASSETS_DIR = Path(__file__).parent.resolve() diff --git a/tests/launcher/test_extension_adequacy_patch.py b/tests/launcher/test_extension_adequacy_patch.py index 19b1f256f5..6d8f0f7c9a 100644 --- a/tests/launcher/test_extension_adequacy_patch.py +++ b/tests/launcher/test_extension_adequacy_patch.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock diff --git a/tests/launcher/test_local_launcher.py b/tests/launcher/test_local_launcher.py index 53adc03bf0..0bad3cdd74 100644 --- a/tests/launcher/test_local_launcher.py +++ b/tests/launcher/test_local_launcher.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os import textwrap import uuid diff --git a/tests/launcher/test_log_manager.py b/tests/launcher/test_log_manager.py index 46bb2f7561..cfc6b87b52 100644 --- a/tests/launcher/test_log_manager.py +++ b/tests/launcher/test_log_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import time from pathlib import Path diff --git a/tests/launcher/test_log_parser.py b/tests/launcher/test_log_parser.py index 1c17177255..d8356319bb 100644 --- a/tests/launcher/test_log_parser.py +++ b/tests/launcher/test_log_parser.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json import sys from typing import List, Union diff --git a/tests/launcher/test_model.py b/tests/launcher/test_model.py index fe7ccead1e..36f6bd8948 100644 --- a/tests/launcher/test_model.py +++ b/tests/launcher/test_model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re import typing as t import uuid diff --git a/tests/launcher/test_repository.py b/tests/launcher/test_repository.py index 1bee383473..f5bcf2672f 100644 --- a/tests/launcher/test_repository.py +++ b/tests/launcher/test_repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime from unittest.mock import Mock from uuid import uuid4 diff --git a/tests/launcher/test_service.py b/tests/launcher/test_service.py index 9095673070..0c4904a870 100644 --- a/tests/launcher/test_service.py +++ b/tests/launcher/test_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json import math import os @@ -15,7 +27,7 @@ from antarest.core.config import ( Config, - InvalidConfigurationError, + Launcher, LauncherConfig, LocalConfig, NbCoresConfig, @@ -40,13 +52,7 @@ LauncherParametersDTO, LogType, ) -from antarest.launcher.service import ( - EXECUTION_INFO_FILE, - LAUNCHER_PARAM_NAME_SUFFIX, - ORPHAN_JOBS_VISIBILITY_THRESHOLD, - JobNotFound, - LauncherService, -) +from antarest.launcher.service import EXECUTION_INFO_FILE, LAUNCHER_PARAM_NAME_SUFFIX, JobNotFound, LauncherService from antarest.login.auth import Auth from antarest.login.model import Identity from antarest.study.model import OwnerInfo, PublicMode, Study, StudyMetadataDTO @@ -89,7 +95,7 @@ def test_service_run_study(self, get_current_user_mock) -> None: study_id="study_uuid", job_status=JobStatus.PENDING, launcher="local", - launcher_params=LauncherParametersDTO().json(), + launcher_params=LauncherParametersDTO().model_dump_json(), ) repository = Mock() repository.save.return_value = pending @@ -130,12 +136,12 @@ def test_service_run_study(self, get_current_user_mock) -> None: # so we need to compare them manually. mock_call = repository.save.mock_calls[0] actual_obj: JobResult = mock_call.args[0] - assert actual_obj.to_dto().dict() == pending.to_dto().dict() + assert actual_obj.to_dto().model_dump() == pending.to_dto().model_dump() event_bus.push.assert_called_once_with( Event( type=EventType.STUDY_JOB_STARTED, - payload=pending.to_dto().dict(), + payload=pending.to_dto().model_dump(), permissions=PermissionInfo(owner=0), ) ) @@ -257,7 +263,7 @@ def test_service_get_jobs_from_database(self, db_session) -> None: job_status=JobStatus.SUCCESS, msg="Hello, World!", exit_code=0, - creation_date=now - timedelta(days=ORPHAN_JOBS_VISIBILITY_THRESHOLD + 1), + creation_date=now - timedelta(days=11), owner=identity_instance, ) ] @@ -308,7 +314,7 @@ def test_service_get_jobs_from_database(self, db_session) -> None: ) ), ) - == returned_faked_execution_results + == [] ) with pytest.raises(UserHasNotPermissionError): @@ -486,11 +492,6 @@ def test_service_get_solver_versions( "unknown", {}, id="local-config-unknown", - marks=pytest.mark.xfail( - reason="Configuration is not available for the 'unknown' launcher", - raises=InvalidConfigurationError, - strict=True, - ), ), pytest.param( { @@ -518,11 +519,6 @@ def test_service_get_solver_versions( "unknown", {}, id="slurm-config-unknown", - marks=pytest.mark.xfail( - reason="Configuration is not available for the 'unknown' launcher", - raises=InvalidConfigurationError, - strict=True, - ), ), pytest.param( { @@ -563,10 +559,13 @@ def test_get_nb_cores( ) # Fetch the number of cores - actual = launcher_service.get_nb_cores(solver) - - # Check the result - assert actual == NbCoresConfig(**expected) + try: + actual = launcher_service.get_nb_cores(Launcher(solver)) + except ValueError as e: + assert e.args[0] == f"'{solver}' is not a valid Launcher" + else: + # Check the result + assert actual == NbCoresConfig(**expected) @pytest.mark.unit_test def test_service_kill_job(self, tmp_path: Path) -> None: @@ -890,7 +889,7 @@ def test_save_solver_stats(self, tmp_path: Path) -> None: solver_stats=expected_saved_stats, owner_id=1, ) - assert actual_obj.to_dto().dict() == expected_obj.to_dto().dict() + assert actual_obj.to_dto().model_dump() == expected_obj.to_dto().model_dump() zip_file = tmp_path / "test.zip" with ZipFile(zip_file, "w", ZIP_DEFLATED) as output_data: @@ -907,7 +906,7 @@ def test_save_solver_stats(self, tmp_path: Path) -> None: solver_stats="0\n1", owner_id=1, ) - assert actual_obj.to_dto().dict() == expected_obj.to_dto().dict() + assert actual_obj.to_dto().model_dump() == expected_obj.to_dto().model_dump() @pytest.mark.parametrize( ["running_jobs", "expected_result", "default_launcher"], @@ -990,7 +989,7 @@ def test_get_load( job_repository.get_running.return_value = running_jobs - launcher_expected_result = LauncherLoadDTO.parse_obj(expected_result) + launcher_expected_result = LauncherLoadDTO.model_validate(expected_result) actual_result = launcher_service.get_load() assert launcher_expected_result.launcher_status == actual_result.launcher_status diff --git a/tests/launcher/test_slurm_launcher.py b/tests/launcher/test_slurm_launcher.py index a509342837..4482eee71a 100644 --- a/tests/launcher/test_slurm_launcher.py +++ b/tests/launcher/test_slurm_launcher.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os import random import textwrap diff --git a/tests/launcher/test_ssh_client.py b/tests/launcher/test_ssh_client.py index 0ced719cde..df0af69fb2 100644 --- a/tests/launcher/test_ssh_client.py +++ b/tests/launcher/test_ssh_client.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import math from unittest.mock import Mock diff --git a/tests/launcher/test_web.py b/tests/launcher/test_web.py index e0800cf019..e1104f87af 100644 --- a/tests/launcher/test_web.py +++ b/tests/launcher/test_web.py @@ -1,5 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import http -from typing import Dict, List, Union +from typing import List, Union from unittest.mock import Mock, call from uuid import uuid4 @@ -7,6 +19,7 @@ from fastapi import FastAPI from starlette.testclient import TestClient +from antarest.core.application import create_app_ctxt from antarest.core.config import Config, SecurityConfig from antarest.core.jwt import DEFAULT_ADMIN_USER, JWTGroup, JWTUser from antarest.core.requests import RequestParameters @@ -23,10 +36,9 @@ def create_app(service: Mock) -> FastAPI: - app = FastAPI(title=__name__) - + build_ctxt = create_app_ctxt(FastAPI(title=__name__)) build_launcher( - app, + build_ctxt, study_service=Mock(), file_transfer_manager=Mock(), task_service=Mock(), @@ -34,7 +46,7 @@ def create_app(service: Mock) -> FastAPI: config=Config(security=SecurityConfig(disabled=True)), cache=Mock(), ) - return app + return build_ctxt.build() @pytest.mark.unit_test @@ -74,7 +86,7 @@ def test_result() -> None: res = client.get(f"/v1/launcher/jobs/{job}") assert res.status_code == 200 - assert JobResultDTO.parse_obj(res.json()) == result.to_dto() + assert JobResultDTO.model_validate(res.json()) == result.to_dto() service.get_result.assert_called_once_with(job, RequestParameters(DEFAULT_ADMIN_USER)) @@ -98,11 +110,11 @@ def test_jobs() -> None: client = TestClient(app) res = client.get(f"/v1/launcher/jobs?study={str(study_id)}") assert res.status_code == 200 - assert [JobResultDTO.parse_obj(j) for j in res.json()] == [result.to_dto()] + assert [JobResultDTO.model_validate(j) for j in res.json()] == [result.to_dto()] res = client.get("/v1/launcher/jobs") assert res.status_code == 200 - assert [JobResultDTO.parse_obj(j) for j in res.json()] == [result.to_dto()] + assert [JobResultDTO.model_validate(j) for j in res.json()] == [result.to_dto()] service.get_jobs.assert_has_calls( [ call( @@ -136,7 +148,7 @@ def test_get_solver_versions() -> None: pytest.param( "", http.HTTPStatus.UNPROCESSABLE_ENTITY, - {"detail": "Unknown solver configuration: ''"}, + "Input should be 'slurm', 'local' or 'default'", id="empty", ), pytest.param("default", http.HTTPStatus.OK, ["1", "2", "3"], id="default"), @@ -145,7 +157,7 @@ def test_get_solver_versions() -> None: pytest.param( "remote", http.HTTPStatus.UNPROCESSABLE_ENTITY, - {"detail": "Unknown solver configuration: 'remote'"}, + "Input should be 'slurm', 'local' or 'default'", id="remote", ), ], @@ -153,7 +165,7 @@ def test_get_solver_versions() -> None: def test_get_solver_versions__with_query_string( solver: str, status_code: http.HTTPStatus, - expected: Union[List[str], Dict[str, str]], + expected: Union[List[str], str], ) -> None: service = Mock() if status_code == http.HTTPStatus.OK: @@ -165,7 +177,12 @@ def test_get_solver_versions__with_query_string( client = TestClient(app) res = client.get(f"/v1/launcher/versions?solver={solver}") assert res.status_code == status_code # OK or UNPROCESSABLE_ENTITY - assert res.json() == expected + if status_code == http.HTTPStatus.OK: + assert res.json() == expected + else: + actual = res.json()["detail"][0] + assert actual["type"] == "enum" + assert actual["msg"] == expected @pytest.mark.unit_test diff --git a/tests/login/__init__.py b/tests/login/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/login/__init__.py +++ b/tests/login/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/login/conftest.py b/tests/login/conftest.py index 61bebee728..38c90a9c8d 100644 --- a/tests/login/conftest.py +++ b/tests/login/conftest.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import pytest from antarest.core.config import Config diff --git a/tests/login/test_ldap.py b/tests/login/test_ldap.py index bb23cd86c2..aa674f68b4 100644 --- a/tests/login/test_ldap.py +++ b/tests/login/test_ldap.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json import threading import typing as t diff --git a/tests/login/test_login_service.py b/tests/login/test_login_service.py index e48a54a918..0c4c9b756c 100644 --- a/tests/login/test_login_service.py +++ b/tests/login/test_login_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t from unittest.mock import patch @@ -370,7 +382,7 @@ def test_get_group_info(self, login_service: LoginService) -> None: actual = login_service.get_group_info("superman", _param) assert actual is not None assert actual.name == "Superman" - assert [obj.dict() for obj in actual.users] == [ + assert [obj.model_dump() for obj in actual.users] == [ {"id": 2, "name": "Clark Kent", "role": RoleType.ADMIN}, {"id": 3, "name": "Lois Lane", "role": RoleType.READER}, ] @@ -450,7 +462,7 @@ def test_get_user_info(self, login_service: LoginService) -> None: clark_id = 2 actual = login_service.get_user_info(clark_id, _param) assert actual is not None - assert actual.dict() == { + assert actual.model_dump() == { "id": clark_id, "name": "Clark Kent", "roles": [ @@ -468,7 +480,7 @@ def test_get_user_info(self, login_service: LoginService) -> None: lois_id = 3 actual = login_service.get_user_info(lois_id, _param) assert actual is not None - assert actual.dict() == { + assert actual.model_dump() == { "id": lois_id, "name": "Lois Lane", "roles": [ @@ -491,7 +503,7 @@ def test_get_user_info(self, login_service: LoginService) -> None: _param = get_user_param(login_service, user_id=lois_id, group_id="superman") actual = login_service.get_user_info(lois_id, _param) assert actual is not None - assert actual.dict() == { + assert actual.model_dump() == { "id": lois_id, "name": "Lois Lane", "roles": [ @@ -512,7 +524,7 @@ def test_get_user_info(self, login_service: LoginService) -> None: _param = get_bot_param(login_service, bot_id=bot.id) actual = login_service.get_user_info(lois_id, _param) assert actual is not None - assert actual.dict() == { + assert actual.model_dump() == { "id": lois_id, "name": "Lois Lane", "roles": [ @@ -566,13 +578,13 @@ def test_get_bot_info(self, login_service: LoginService) -> None: _param = get_user_param(login_service, user_id=ADMIN_ID, group_id="admin") actual = login_service.get_bot_info(joh_bot.id, _param) assert actual is not None - assert actual.dict() == {"id": 6, "isAuthor": True, "name": "Maria", "roles": []} + assert actual.model_dump() == {"id": 6, "isAuthor": True, "name": "Maria", "roles": []} # Joh Fredersen can get its own bot _param = get_user_param(login_service, user_id=joh_id, group_id="superman") actual = login_service.get_bot_info(joh_bot.id, _param) assert actual is not None - assert actual.dict() == {"id": 6, "isAuthor": True, "name": "Maria", "roles": []} + assert actual.model_dump() == {"id": 6, "isAuthor": True, "name": "Maria", "roles": []} # The bot cannot get itself _param = get_bot_param(login_service, bot_id=joh_bot.id) @@ -601,13 +613,13 @@ def test_get_all_bots_by_owner(self, login_service: LoginService) -> None: _param = get_user_param(login_service, user_id=ADMIN_ID, group_id="admin") actual = login_service.get_all_bots_by_owner(joh_id, _param) expected = [{"id": joh_bot.id, "is_author": True, "name": "Maria", "owner": joh_id}] - assert [obj.to_dto().dict() for obj in actual] == expected + assert [obj.to_dto().model_dump() for obj in actual] == expected # Freder Fredersen can get its own bot _param = get_user_param(login_service, user_id=joh_id, group_id="superman") actual = login_service.get_all_bots_by_owner(joh_id, _param) expected = [{"id": joh_bot.id, "is_author": True, "name": "Maria", "owner": joh_id}] - assert [obj.to_dto().dict() for obj in actual] == expected + assert [obj.to_dto().model_dump() for obj in actual] == expected # The bot cannot get itself _param = get_bot_param(login_service, bot_id=joh_bot.id) @@ -718,7 +730,7 @@ def test_get_all_groups(self, login_service: LoginService) -> None: # The site admin can get all groups _param = get_user_param(login_service, user_id=ADMIN_ID, group_id="admin") actual = login_service.get_all_groups(_param) - assert [g.dict() for g in actual] == [ + assert [g.model_dump() for g in actual] == [ {"id": "admin", "name": "X-Men"}, {"id": "superman", "name": "Superman"}, {"id": "metropolis", "name": "Metropolis"}, @@ -727,19 +739,19 @@ def test_get_all_groups(self, login_service: LoginService) -> None: # The group admin can its own groups _param = get_user_param(login_service, user_id=2, group_id="superman") actual = login_service.get_all_groups(_param) - assert [g.dict() for g in actual] == [{"id": "superman", "name": "Superman"}] + assert [g.model_dump() for g in actual] == [{"id": "superman", "name": "Superman"}] # The user can get its own groups _param = get_user_param(login_service, user_id=3, group_id="superman") actual = login_service.get_all_groups(_param) - assert [g.dict() for g in actual] == [{"id": "superman", "name": "Superman"}] + assert [g.model_dump() for g in actual] == [{"id": "superman", "name": "Superman"}] @with_db_context def test_get_all_users(self, login_service: LoginService) -> None: # The site admin can get all users _param = get_user_param(login_service, user_id=ADMIN_ID, group_id="admin") actual = login_service.get_all_users(_param) - assert [u.dict() for u in actual] == [ + assert [u.model_dump() for u in actual] == [ {"id": 1, "name": "Professor Xavier"}, {"id": 2, "name": "Clark Kent"}, {"id": 3, "name": "Lois Lane"}, @@ -751,7 +763,7 @@ def test_get_all_users(self, login_service: LoginService) -> None: # note: I don't know why the group admin can get all users -- Laurent _param = get_user_param(login_service, user_id=2, group_id="superman") actual = login_service.get_all_users(_param) - assert [u.dict() for u in actual] == [ + assert [u.model_dump() for u in actual] == [ {"id": 1, "name": "Professor Xavier"}, {"id": 2, "name": "Clark Kent"}, {"id": 3, "name": "Lois Lane"}, @@ -762,7 +774,7 @@ def test_get_all_users(self, login_service: LoginService) -> None: # The user can get its own users _param = get_user_param(login_service, user_id=3, group_id="superman") actual = login_service.get_all_users(_param) - assert [u.dict() for u in actual] == [ + assert [u.model_dump() for u in actual] == [ {"id": 2, "name": "Clark Kent"}, {"id": 3, "name": "Lois Lane"}, ] @@ -777,7 +789,7 @@ def test_get_all_bots(self, login_service: LoginService) -> None: # The site admin can get all bots _param = get_user_param(login_service, user_id=ADMIN_ID, group_id="admin") actual = login_service.get_all_bots(_param) - assert [b.to_dto().dict() for b in actual] == [ + assert [b.to_dto().model_dump() for b in actual] == [ {"id": joh_bot.id, "is_author": True, "name": "Maria", "owner": joh_id}, ] @@ -796,7 +808,7 @@ def test_get_all_roles_in_group(self, login_service: LoginService) -> None: # The site admin can get all roles in a given group _param = get_user_param(login_service, user_id=ADMIN_ID, group_id="admin") actual = login_service.get_all_roles_in_group("superman", _param) - assert [b.to_dto().dict() for b in actual] == [ + assert [b.to_dto().model_dump() for b in actual] == [ { "group": {"id": "superman", "name": "Superman"}, "identity": {"id": 2, "name": "Clark Kent"}, @@ -812,7 +824,7 @@ def test_get_all_roles_in_group(self, login_service: LoginService) -> None: # The group admin can get all roles his own group _param = get_user_param(login_service, user_id=2, group_id="superman") actual = login_service.get_all_roles_in_group("superman", _param) - assert [b.to_dto().dict() for b in actual] == [ + assert [b.to_dto().model_dump() for b in actual] == [ { "group": {"id": "superman", "name": "Superman"}, "identity": {"id": 2, "name": "Clark Kent"}, diff --git a/tests/login/test_model.py b/tests/login/test_model.py index e1ef0bc928..a37cdb7bd5 100644 --- a/tests/login/test_model.py +++ b/tests/login/test_model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from sqlalchemy.engine.base import Engine # type: ignore from sqlalchemy.orm import sessionmaker # type: ignore @@ -12,7 +24,7 @@ User, init_admin_user, ) -from antarest.utils import SESSION_ARGS +from antarest.service_creator import SESSION_ARGS TEST_ADMIN_PASS_WORD = "test" diff --git a/tests/login/test_repository.py b/tests/login/test_repository.py index 5ab7406dc4..1eed93d437 100644 --- a/tests/login/test_repository.py +++ b/tests/login/test_repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import pytest from sqlalchemy.orm import Session # type: ignore diff --git a/tests/login/test_web.py b/tests/login/test_web.py index 0f7175fc54..389dc94cf7 100644 --- a/tests/login/test_web.py +++ b/tests/login/test_web.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import base64 import json from datetime import timedelta @@ -7,12 +19,13 @@ import pytest from fastapi import FastAPI -from fastapi_jwt_auth import AuthJWT from starlette.testclient import TestClient +from antarest.core.application import AppBuildContext, create_app_ctxt from antarest.core.config import Config, SecurityConfig from antarest.core.jwt import JWTGroup, JWTUser from antarest.core.requests import RequestParameters +from antarest.fastapi_jwt_auth import AuthJWT from antarest.login.main import build_login from antarest.login.model import ( Bot, @@ -51,15 +64,16 @@ def get_config(): authjwt_token_location=("headers", "cookies"), ) + app_ctxt = create_app_ctxt(app) build_login( - app, + app_ctxt, service=service, config=Config( resources_path=Path(), security=SecurityConfig(disabled=auth_disabled), ), ) - return app + return app_ctxt.build() class TokenType: @@ -177,7 +191,7 @@ def test_user() -> None: client = TestClient(app) res = client.get("/v1/users", headers=create_auth_token(app)) assert res.status_code == 200 - assert res.json() == [User(id=1, name="user").to_dto().dict()] + assert res.json() == [User(id=1, name="user").to_dto().model_dump()] @pytest.mark.unit_test @@ -189,7 +203,7 @@ def test_user_id() -> None: client = TestClient(app) res = client.get("/v1/users/1", headers=create_auth_token(app)) assert res.status_code == 200 - assert res.json() == User(id=1, name="user").to_dto().dict() + assert res.json() == User(id=1, name="user").to_dto().model_dump() @pytest.mark.unit_test @@ -201,7 +215,7 @@ def test_user_id_with_details() -> None: client = TestClient(app) res = client.get("/v1/users/1?details=true", headers=create_auth_token(app)) assert res.status_code == 200 - assert res.json() == IdentityDTO(id=1, name="user", roles=[]).dict() + assert res.json() == IdentityDTO(id=1, name="user", roles=[]).model_dump() @pytest.mark.unit_test @@ -216,12 +230,12 @@ def test_user_create() -> None: res = client.post( "/v1/users", headers=create_auth_token(app), - json=user.dict(), + json=user.model_dump(), ) assert res.status_code == 200 service.create_user.assert_called_once_with(user, PARAMS) - assert res.json() == user_id.to_dto().dict() + assert res.json() == user_id.to_dto().model_dump() @pytest.mark.unit_test @@ -232,7 +246,7 @@ def test_user_save() -> None: app = create_app(service) client = TestClient(app) - user_obj = user.to_dto().dict() + user_obj = user.to_dto().model_dump() res = client.put( "/v1/users/0", headers=create_auth_token(app), @@ -244,7 +258,7 @@ def test_user_save() -> None: assert service.save_user.call_count == 1 call = service.save_user.call_args_list[0] - assert call[0][0].to_dto().dict() == user_obj + assert call[0][0].to_dto().model_dump() == user_obj assert call[0][1] == PARAMS @@ -269,7 +283,7 @@ def test_group() -> None: client = TestClient(app) res = client.get("/v1/groups", headers=create_auth_token(app)) assert res.status_code == 200 - assert res.json() == [Group(id="my-group", name="group").to_dto().dict()] + assert res.json() == [Group(id="my-group", name="group").to_dto().model_dump()] @pytest.mark.unit_test @@ -281,7 +295,7 @@ def test_group_id() -> None: client = TestClient(app) res = client.get("/v1/groups/1", headers=create_auth_token(app)) assert res.status_code == 200 - assert res.json() == Group(id="my-group", name="group").to_dto().dict() + assert res.json() == Group(id="my-group", name="group").to_dto().model_dump() @pytest.mark.unit_test @@ -299,7 +313,7 @@ def test_group_create() -> None: ) assert res.status_code == 200 - assert res.json() == group.to_dto().dict() + assert res.json() == group.to_dto().model_dump() @pytest.mark.unit_test @@ -329,7 +343,7 @@ def test_role() -> None: client = TestClient(app) res = client.get("/v1/roles/group/g", headers=create_auth_token(app)) assert res.status_code == 200 - assert [RoleDetailDTO.parse_obj(el) for el in res.json()] == [role.to_dto()] + assert [RoleDetailDTO.model_validate(el) for el in res.json()] == [role.to_dto()] @pytest.mark.unit_test @@ -351,7 +365,7 @@ def test_role_create() -> None: ) assert res.status_code == 200 - assert RoleDetailDTO.parse_obj(res.json()) == role.to_dto().dict() + assert RoleDetailDTO.model_validate(res.json()) == role.to_dto() @pytest.mark.unit_test @@ -391,10 +405,10 @@ def test_bot_create() -> None: service.save_bot.return_value = bot service.get_group.return_value = Group(id="group", name="group") - print(create.json()) + create.model_dump_json() app = create_app(service) client = TestClient(app) - res = client.post("/v1/bots", headers=create_auth_token(app), json=create.dict()) + res = client.post("/v1/bots", headers=create_auth_token(app), json=create.model_dump()) assert res.status_code == 200 assert len(res.json().split(".")) == 3 @@ -410,7 +424,7 @@ def test_bot() -> None: client = TestClient(app) res = client.get("/v1/bots/0", headers=create_auth_token(app)) assert res.status_code == 200 - assert res.json() == bot.to_dto().dict() + assert res.json() == bot.to_dto().model_dump() @pytest.mark.unit_test @@ -424,11 +438,11 @@ def test_all_bots() -> None: client = TestClient(app) res = client.get("/v1/bots", headers=create_auth_token(app)) assert res.status_code == 200 - assert res.json() == [b.to_dto().dict() for b in bots] + assert res.json() == [b.to_dto().model_dump() for b in bots] res = client.get("/v1/bots?owner=4", headers=create_auth_token(app)) assert res.status_code == 200 - assert res.json() == [b.to_dto().dict() for b in bots] + assert res.json() == [b.to_dto().model_dump() for b in bots] service.get_all_bots.assert_called_once() service.get_all_bots_by_owner.assert_called_once() diff --git a/tests/matrixstore/__init__.py b/tests/matrixstore/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/matrixstore/__init__.py +++ b/tests/matrixstore/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/matrixstore/conftest.py b/tests/matrixstore/conftest.py index 745fff9aec..52285fb6f8 100644 --- a/tests/matrixstore/conftest.py +++ b/tests/matrixstore/conftest.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import unittest.mock import pytest diff --git a/tests/matrixstore/test_matrix_editor.py b/tests/matrixstore/test_matrix_editor.py index 2907cfb793..229e9e53f3 100644 --- a/tests/matrixstore/test_matrix_editor.py +++ b/tests/matrixstore/test_matrix_editor.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Any, Dict import pytest @@ -70,7 +82,7 @@ class TestMatrixSlice: ) def test_init(self, kwargs: Dict[str, Any], expected: Dict[str, Any]) -> None: obj = MatrixSlice(**kwargs) - assert obj.dict(by_alias=False) == expected + assert obj.model_dump(by_alias=False) == expected class TestOperation: @@ -97,12 +109,12 @@ class TestOperation: ) def test_init(self, kwargs: Dict[str, Any], expected: Dict[str, Any]) -> None: obj = Operation(**kwargs) - assert obj.dict(by_alias=False) == expected + assert obj.model_dump(by_alias=False) == expected @pytest.mark.parametrize("operation", list(OPERATIONS)) def test_init__valid_operation(self, operation: str) -> None: obj = Operation(operation=operation, value=123) - assert obj.dict(by_alias=False) == { + assert obj.model_dump(by_alias=False) == { "operation": operation, "value": 123.0, } @@ -192,4 +204,4 @@ class TestMatrixEditInstruction: ) def test_init(self, kwargs: Dict[str, Any], expected: Dict[str, Any]) -> None: obj = MatrixEditInstruction(**kwargs) - assert obj.dict(by_alias=False) == expected + assert obj.model_dump(by_alias=False) == expected diff --git a/tests/matrixstore/test_matrix_garbage_collector.py b/tests/matrixstore/test_matrix_garbage_collector.py index 6f6a81a498..1e02731910 100644 --- a/tests/matrixstore/test_matrix_garbage_collector.py +++ b/tests/matrixstore/test_matrix_garbage_collector.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from datetime import datetime from pathlib import Path from unittest.mock import Mock diff --git a/tests/matrixstore/test_repository.py b/tests/matrixstore/test_repository.py index b219eea295..968360b269 100644 --- a/tests/matrixstore/test_repository.py +++ b/tests/matrixstore/test_repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import typing as t from pathlib import Path diff --git a/tests/matrixstore/test_service.py b/tests/matrixstore/test_service.py index bdee95fe44..4de3b1894a 100644 --- a/tests/matrixstore/test_service.py +++ b/tests/matrixstore/test_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import io import json @@ -492,12 +504,8 @@ def test_dataset_lifecycle() -> None: dataset_repo.delete.assert_called_once() -def _create_upload_file(filename: str, file: io.BytesIO, content_type: str = "") -> UploadFile: - if hasattr(UploadFile, "content_type"): - # `content_type` attribute was replace by a read-ony property in starlette-v0.24. - headers = Headers(headers={"content-type": content_type}) - # noinspection PyTypeChecker,PyArgumentList - return UploadFile(filename=filename, file=file, headers=headers) - else: - # noinspection PyTypeChecker,PyArgumentList - return UploadFile(filename=filename, file=file, content_type=content_type) +def _create_upload_file(filename: str, file: t.IO = None, content_type: str = "") -> UploadFile: + # `content_type` attribute was replace by a read-ony property in starlette-v0.24. + headers = Headers(headers={"content-type": content_type}) + # noinspection PyTypeChecker,PyArgumentList + return UploadFile(filename=filename, file=file, headers=headers) diff --git a/tests/matrixstore/test_web.py b/tests/matrixstore/test_web.py index 36b7fc366d..d47fb030bc 100644 --- a/tests/matrixstore/test_web.py +++ b/tests/matrixstore/test_web.py @@ -1,12 +1,25 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock import pytest from fastapi import FastAPI -from fastapi_jwt_auth import AuthJWT from starlette.testclient import TestClient +from antarest.core.application import create_app_ctxt from antarest.core.config import Config, SecurityConfig +from antarest.fastapi_jwt_auth import AuthJWT from antarest.main import JwtSettings from antarest.matrixstore.main import build_matrix_service from antarest.matrixstore.model import MatrixDTO, MatrixInfoDTO @@ -14,7 +27,7 @@ def create_app(service: Mock, auth_disabled=False) -> FastAPI: - app = FastAPI(title=__name__) + build_ctxt = create_app_ctxt(FastAPI(title=__name__)) @AuthJWT.load_config def get_config(): @@ -25,7 +38,7 @@ def get_config(): ) build_matrix_service( - app, + build_ctxt, user_service=Mock(), file_transfer_manager=Mock(), task_service=Mock(), @@ -35,7 +48,7 @@ def get_config(): security=SecurityConfig(disabled=auth_disabled), ), ) - return app + return build_ctxt.build() @pytest.mark.unit_test @@ -62,7 +75,7 @@ def test_create() -> None: json=matrix_data, ) assert res.status_code == 200 - assert res.json() == matrix.dict() + assert res.json() == matrix.model_dump() @pytest.mark.unit_test @@ -84,7 +97,7 @@ def test_get() -> None: client = TestClient(app) res = client.get("/v1/matrix/123", headers=create_auth_token(app)) assert res.status_code == 200 - assert res.json() == matrix.dict() + assert res.json() == matrix.model_dump() service.get.assert_called_once_with("123") @@ -114,4 +127,4 @@ def test_import() -> None: files={"file": ("Matrix.zip", bytes(5), "application/zip")}, ) assert res.status_code == 200 - assert res.json() == matrix_info + assert [MatrixInfoDTO.model_validate(res.json()[0])] == matrix_info diff --git a/tests/storage/__init__.py b/tests/storage/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/__init__.py +++ b/tests/storage/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/business/__init__.py b/tests/storage/business/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/business/__init__.py +++ b/tests/storage/business/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/business/assets/__init__.py b/tests/storage/business/assets/__init__.py index 773f16ec60..3fff24b6fe 100644 --- a/tests/storage/business/assets/__init__.py +++ b/tests/storage/business/assets/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path ASSETS_DIR = Path(__file__).parent.resolve() diff --git a/tests/storage/business/test_arealink_manager.py b/tests/storage/business/test_arealink_manager.py index a8beff5fc0..cb1d29c971 100644 --- a/tests/storage/business/test_arealink_manager.py +++ b/tests/storage/business/test_arealink_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json import uuid from pathlib import Path @@ -162,35 +174,36 @@ def test_area_crud(empty_study: FileStudy, matrix_service: SimpleMatrixService): variant_id, [ CommandDTO( + id=None, action=CommandName.UPDATE_CONFIG.value, args=[ { "target": "input/areas/test/ui/ui/x", - "data": "100", + "data": 100, }, { "target": "input/areas/test/ui/ui/y", - "data": "200", + "data": 200, }, { "target": "input/areas/test/ui/ui/color_r", - "data": "255", + "data": 255, }, { "target": "input/areas/test/ui/ui/color_g", - "data": "0", + "data": 0, }, { "target": "input/areas/test/ui/ui/color_b", - "data": "100", + "data": 100, }, { "target": "input/areas/test/ui/layerX/0", - "data": "100", + "data": 100, }, { "target": "input/areas/test/ui/layerY/0", - "data": "200", + "data": 200, }, { "target": "input/areas/test/ui/layerColor/0", @@ -290,7 +303,7 @@ def test_get_all_area(): area_manager.patch_service = Mock() area_manager.patch_service.get.return_value = Patch( areas={"a1": PatchArea(country="fr")}, - thermal_clusters={"a1.a": PatchCluster.parse_obj({"code-oi": "1"})}, + thermal_clusters={"a1.a": PatchCluster.model_validate({"code-oi": "1"})}, ) file_tree_mock.get.side_effect = [ { @@ -350,7 +363,7 @@ def test_get_all_area(): }, ] areas = area_manager.get_all_areas(study, AreaType.AREA) - assert expected_areas == [area.dict() for area in areas] + assert expected_areas == [area.model_dump() for area in areas] expected_clusters = [ { @@ -363,7 +376,7 @@ def test_get_all_area(): } ] clusters = area_manager.get_all_areas(study, AreaType.DISTRICT) - assert expected_clusters == [area.dict() for area in clusters] + assert expected_clusters == [area.model_dump() for area in clusters] file_tree_mock.get.side_effect = [{}, {}, {}] expected_all = [ @@ -401,14 +414,14 @@ def test_get_all_area(): }, ] all_areas = area_manager.get_all_areas(study) - assert expected_all == [area.dict() for area in all_areas] + assert expected_all == [area.model_dump() for area in all_areas] links = link_manager.get_all_links(study) assert [ {"area1": "a1", "area2": "a2", "ui": None}, {"area1": "a1", "area2": "a3", "ui": None}, {"area1": "a2", "area2": "a3", "ui": None}, - ] == [link.dict() for link in links] + ] == [link.model_dump() for link in links] def test_update_area(): @@ -451,7 +464,7 @@ def test_update_area(): new_area_info = area_manager.update_area_metadata(study, "a1", PatchArea(country="fr")) assert new_area_info.id == "a1" - assert new_area_info.metadata == {"country": "fr", "tags": []} + assert new_area_info.metadata.model_dump() == {"country": "fr", "tags": []} def test_update_clusters(): @@ -484,7 +497,7 @@ def test_update_clusters(): area_manager.patch_service = Mock() area_manager.patch_service.get.return_value = Patch( areas={"a1": PatchArea(country="fr")}, - thermal_clusters={"a1.a": PatchCluster.parse_obj({"code-oi": "1"})}, + thermal_clusters={"a1.a": PatchCluster.model_validate({"code-oi": "1"})}, ) file_tree_mock.get.side_effect = [ { diff --git a/tests/storage/business/test_autoarchive_service.py b/tests/storage/business/test_autoarchive_service.py index 48e2c537b7..559126f00d 100644 --- a/tests/storage/business/test_autoarchive_service.py +++ b/tests/storage/business/test_autoarchive_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/business/test_config_manager.py b/tests/storage/business/test_config_manager.py index f4d344a27d..f89a4438be 100644 --- a/tests/storage/business/test_config_manager.py +++ b/tests/storage/business/test_config_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock @@ -19,7 +31,7 @@ def test_thematic_trimming_config() -> None: - command_context = CommandContext.construct() + command_context = CommandContext.model_construct() command_factory_mock = Mock() command_factory_mock.command_context = command_context raw_study_service = Mock(spec=RawStudyService) @@ -54,27 +66,27 @@ def test_thematic_trimming_config() -> None: study.version = config.version = 700 actual = thematic_trimming_manager.get_field_values(study) - fields_info = get_fields_info(study.version) + fields_info = get_fields_info(int(study.version)) expected = ThematicTrimmingFormFields(**dict.fromkeys(fields_info, True)) assert actual == expected study.version = config.version = 800 actual = thematic_trimming_manager.get_field_values(study) - fields_info = get_fields_info(study.version) + fields_info = get_fields_info(int(study.version)) expected = ThematicTrimmingFormFields(**dict.fromkeys(fields_info, True)) expected.avl_dtg = False assert actual == expected study.version = config.version = 820 actual = thematic_trimming_manager.get_field_values(study) - fields_info = get_fields_info(study.version) + fields_info = get_fields_info(int(study.version)) expected = ThematicTrimmingFormFields(**dict.fromkeys(fields_info, True)) expected.avl_dtg = False assert actual == expected study.version = config.version = 830 actual = thematic_trimming_manager.get_field_values(study) - fields_info = get_fields_info(study.version) + fields_info = get_fields_info(int(study.version)) expected = ThematicTrimmingFormFields(**dict.fromkeys(fields_info, True)) expected.dens = False expected.profit_by_plant = False @@ -82,7 +94,7 @@ def test_thematic_trimming_config() -> None: study.version = config.version = 840 actual = thematic_trimming_manager.get_field_values(study) - fields_info = get_fields_info(study.version) + fields_info = get_fields_info(int(study.version)) expected = ThematicTrimmingFormFields(**dict.fromkeys(fields_info, False)) expected.cong_fee_alg = True assert actual == expected diff --git a/tests/storage/business/test_export.py b/tests/storage/business/test_export.py index 759bc99ed3..667f357ab9 100644 --- a/tests/storage/business/test_export.py +++ b/tests/storage/business/test_export.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock from zipfile import ZipFile diff --git a/tests/storage/business/test_import.py b/tests/storage/business/test_import.py index 2cd08eeba9..ddf984dc06 100644 --- a/tests/storage/business/test_import.py +++ b/tests/storage/business/test_import.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import os import shutil diff --git a/tests/storage/business/test_patch_service.py b/tests/storage/business/test_patch_service.py index ed7dd6c444..3abb8790f0 100644 --- a/tests/storage/business/test_patch_service.py +++ b/tests/storage/business/test_patch_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import json import uuid @@ -182,7 +194,7 @@ def test_set_output_ref(self, tmp_path: Path): additional_data=StudyAdditionalData( author="john.doe", horizon="foo-horizon", - patch=patch_outputs.json(), + patch=patch_outputs.model_dump_json(), ), archived=False, owner=None, diff --git a/tests/storage/business/test_raw_study_service.py b/tests/storage/business/test_raw_study_service.py index 2b5c4b2dfd..9364edfa14 100644 --- a/tests/storage/business/test_raw_study_service.py +++ b/tests/storage/business/test_raw_study_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import os import platform diff --git a/tests/storage/business/test_repository.py b/tests/storage/business/test_repository.py index 5da1d6ef33..ed025de372 100644 --- a/tests/storage/business/test_repository.py +++ b/tests/storage/business/test_repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime from unittest.mock import Mock diff --git a/tests/storage/business/test_study_service_utils.py b/tests/storage/business/test_study_service_utils.py index dcd674e0e3..fd89592d65 100644 --- a/tests/storage/business/test_study_service_utils.py +++ b/tests/storage/business/test_study_service_utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import tarfile from hashlib import md5 diff --git a/tests/storage/business/test_study_version_upgrader.py b/tests/storage/business/test_study_version_upgrader.py index efe1e75315..4fa7e940ec 100644 --- a/tests/storage/business/test_study_version_upgrader.py +++ b/tests/storage/business/test_study_version_upgrader.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import filecmp import glob import os @@ -5,18 +17,83 @@ import shutil import zipfile from pathlib import Path -from typing import List +from typing import List, Optional import pandas import pytest +from pandas.errors import EmptyDataError +from antarest.core.exceptions import UnsupportedStudyVersion from antarest.study.storage.rawstudy.ini_reader import IniReader from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id from antarest.study.storage.rawstudy.model.filesystem.root.settings.generaldata import DUPLICATE_KEYS -from antarest.study.storage.study_upgrader import UPGRADE_METHODS, InvalidUpgrade, upgrade_study -from antarest.study.storage.study_upgrader.upgrader_840 import MAPPING_TRANSMISSION_CAPACITIES +from antarest.study.storage.study_upgrader import ( + InvalidUpgrade, + StudyUpgrader, + check_versions_coherence, + find_next_version, +) from tests.storage.business.assets import ASSETS_DIR +MAPPING_TRANSMISSION_CAPACITIES = { + True: "local-values", + False: "null-for-all-links", + "infinite": "infinite-for-all-links", +} + + +class TestFindNextVersion: + @pytest.mark.parametrize( + "from_version, expected", + [("700", "710"), ("870", "880")], + ) + def test_find_next_version_nominal(self, from_version: str, expected: str): + actual = find_next_version(from_version) + assert actual == expected + + @pytest.mark.parametrize( + "from_version, message", + [ + ("3.14", "Version '3.14' isn't among supported versions"), + ("880", "Your study is already in the latest supported version: '880'"), + ("900", "Version '900' isn't among supported versions"), + ], + ) + def test_find_next_version_fails(self, from_version: str, message: str): + with pytest.raises(UnsupportedStudyVersion, match=message): + find_next_version(from_version) + + +class TestCheckVersionCoherence: + @pytest.mark.parametrize( + "from_version, target_version", + [("700", "710"), ("870", "880"), ("820", "840")], + ) + def test_check_version_coherence_nominal(self, from_version: str, target_version: str): + check_versions_coherence(from_version, target_version) + + @pytest.mark.parametrize( + "from_version, target_version, message", + [ + ("1000", "710", "Version '1000' isn't among supported versions"), + ("820", "32", "Version '32' isn't among supported versions"), + ], + ) + def test_invalid_versions_fails(self, from_version: str, target_version: str, message: str): + with pytest.raises(UnsupportedStudyVersion, match=message): + check_versions_coherence(from_version, target_version) + + @pytest.mark.parametrize( + "from_version, target_version, message", + [ + ("860", "860", "Your study is already in the version you asked: 860"), + ("870", "840", "Cannot downgrade your study version : from 870 to 840"), + ], + ) + def test_check_version_coherence_fails(self, from_version: str, target_version: str, message: str): + with pytest.raises(InvalidUpgrade, match=message): + check_versions_coherence(from_version, target_version) + def test_end_to_end_upgrades(tmp_path: Path): # Prepare a study to upgrade @@ -32,7 +109,8 @@ def test_end_to_end_upgrades(tmp_path: Path): old_binding_constraint_values = get_old_binding_constraint_values(study_dir) # Only checks if the study_upgrader can go from the first supported version to the last one target_version = "880" - upgrade_study(study_dir, target_version) + study_upgrader = StudyUpgrader(study_dir, target_version) + study_upgrader.upgrade() assert_study_antares_file_is_updated(study_dir, target_version) assert_settings_are_updated(study_dir, old_values) assert_inputs_are_updated(study_dir, old_areas_values, old_binding_constraint_values) @@ -46,26 +124,20 @@ def test_fails_because_of_versions_asked(tmp_path: Path): with zipfile.ZipFile(path_study) as zip_output: zip_output.extractall(path=study_dir) # Try to upgrade with an unknown version - with pytest.raises( - InvalidUpgrade, - match=f"Version '600' unknown: possible versions are {', '.join([u[1] for u in UPGRADE_METHODS])}", - ): - upgrade_study(study_dir, "600") + with pytest.raises(InvalidUpgrade, match="Cannot downgrade from version '7.2' to '6'"): + StudyUpgrader(study_dir, "600").upgrade() # Try to upgrade with the current version - with pytest.raises(InvalidUpgrade, match="Your study is already in version '720'"): - upgrade_study(study_dir, "720") + with pytest.raises(InvalidUpgrade, match="Your study is already in version '7.2'"): + StudyUpgrader(study_dir, "720").upgrade() # Try to upgrade with an old version with pytest.raises( InvalidUpgrade, - match="Impossible to upgrade from version '720' to version '710'", + match="Cannot downgrade from version '7.2' to '7.1'", ): - upgrade_study(study_dir, "710") + StudyUpgrader(study_dir, "710").upgrade() # Try to upgrade with a version that does not exist - with pytest.raises( - InvalidUpgrade, - match=f"Version '820.rc' unknown: possible versions are {', '.join([u[1] for u in UPGRADE_METHODS])}", - ): - upgrade_study(study_dir, "820.rc") + with pytest.raises(InvalidUpgrade, match="Invalid version number '820.rc'"): + StudyUpgrader(study_dir, "820.rc").upgrade() def test_fallback_if_study_input_broken(tmp_path): @@ -78,10 +150,10 @@ def test_fallback_if_study_input_broken(tmp_path): before_upgrade_dir = tmp_path / "backup" shutil.copytree(study_dir, before_upgrade_dir, dirs_exist_ok=True) with pytest.raises( - expected_exception=pandas.errors.EmptyDataError, + expected_exception=EmptyDataError, match="No columns to parse from file", ): - upgrade_study(study_dir, "850") + StudyUpgrader(study_dir, "850").upgrade() assert are_same_dir(study_dir, before_upgrade_dir) @@ -231,8 +303,8 @@ def assert_folder_is_created(path: Path) -> None: assert (path / "series").is_dir() -def are_same_dir(dir1, dir2) -> bool: - dirs_cmp = filecmp.dircmp(dir1, dir2) +def are_same_dir(dir1, dir2, ignore: Optional[List[str]] = None) -> bool: + dirs_cmp = filecmp.dircmp(dir1, dir2, ignore=ignore) if len(dirs_cmp.left_only) > 0 or len(dirs_cmp.right_only) > 0 or len(dirs_cmp.funny_files) > 0: return False path_dir1 = Path(dir1) diff --git a/tests/storage/business/test_timeseries_config_manager.py b/tests/storage/business/test_timeseries_config_manager.py index 387e42f5dc..3bc7cd0ad9 100644 --- a/tests/storage/business/test_timeseries_config_manager.py +++ b/tests/storage/business/test_timeseries_config_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os import uuid from pathlib import Path @@ -44,7 +56,7 @@ def file_study_720(tmpdir: Path) -> FileStudy: def test_ts_field_values(file_study_820: FileStudy, file_study_720: FileStudy): command_factory_mock = Mock() - command_factory_mock.command_context = CommandContext.construct() + command_factory_mock.command_context = CommandContext.model_construct() raw_study_service = Mock(spec=RawStudyService) diff --git a/tests/storage/business/test_url_resolver_service.py b/tests/storage/business/test_url_resolver_service.py index 40dabc53c4..a7f6a601c5 100644 --- a/tests/storage/business/test_url_resolver_service.py +++ b/tests/storage/business/test_url_resolver_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os from unittest.mock import Mock diff --git a/tests/storage/business/test_variant_study_service.py b/tests/storage/business/test_variant_study_service.py index 7c6e00f99c..3a8a62b971 100644 --- a/tests/storage/business/test_variant_study_service.py +++ b/tests/storage/business/test_variant_study_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/business/test_watcher.py b/tests/storage/business/test_watcher.py index 6faeeabfe5..699a48f2c0 100644 --- a/tests/storage/business/test_watcher.py +++ b/tests/storage/business/test_watcher.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os from multiprocessing import Pool from pathlib import Path diff --git a/tests/storage/business/test_xpansion_manager.py b/tests/storage/business/test_xpansion_manager.py index 100bddd286..5c08c72242 100644 --- a/tests/storage/business/test_xpansion_manager.py +++ b/tests/storage/business/test_xpansion_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import os import typing as t @@ -197,7 +209,7 @@ def test_get_xpansion_settings(tmp_path: Path, version: int, expected_output: JS xpansion_manager.create_xpansion_configuration(study) actual = xpansion_manager.get_xpansion_settings(study) - assert actual.dict(by_alias=True) == expected_output + assert actual.model_dump(by_alias=True) == expected_output @pytest.mark.unit_test @@ -244,7 +256,7 @@ def test_update_xpansion_settings(tmp_path: Path) -> None: "timelimit": int(1e12), "sensitivity_config": {"epsilon": 10500.0, "projection": ["foo"], "capex": False}, } - assert actual.dict(by_alias=True) == expected + assert actual.model_dump(by_alias=True) == expected @pytest.mark.unit_test @@ -254,7 +266,7 @@ def test_add_candidate(tmp_path: Path) -> None: actual = empty_study.tree.get(["user", "expansion", "candidates"]) assert actual == {} - new_candidate = XpansionCandidateDTO.parse_obj( + new_candidate = XpansionCandidateDTO.model_validate( { "name": "candidate_1", "link": "area1 - area2", @@ -263,7 +275,7 @@ def test_add_candidate(tmp_path: Path) -> None: } ) - new_candidate2 = XpansionCandidateDTO.parse_obj( + new_candidate2 = XpansionCandidateDTO.model_validate( { "name": "candidate_2", "link": "area1 - area2", @@ -284,13 +296,13 @@ def test_add_candidate(tmp_path: Path) -> None: xpansion_manager.add_candidate(study, new_candidate) - candidates = {"1": new_candidate.dict(by_alias=True, exclude_none=True)} + candidates = {"1": new_candidate.model_dump(by_alias=True, exclude_none=True)} actual = empty_study.tree.get(["user", "expansion", "candidates"]) assert actual == candidates xpansion_manager.add_candidate(study, new_candidate2) - candidates["2"] = new_candidate2.dict(by_alias=True, exclude_none=True) + candidates["2"] = new_candidate2.model_dump(by_alias=True, exclude_none=True) actual = empty_study.tree.get(["user", "expansion", "candidates"]) assert actual == candidates @@ -302,7 +314,7 @@ def test_get_candidate(tmp_path: Path) -> None: assert empty_study.tree.get(["user", "expansion", "candidates"]) == {} - new_candidate = XpansionCandidateDTO.parse_obj( + new_candidate = XpansionCandidateDTO.model_validate( { "name": "candidate_1", "link": "area1 - area2", @@ -311,7 +323,7 @@ def test_get_candidate(tmp_path: Path) -> None: } ) - new_candidate2 = XpansionCandidateDTO.parse_obj( + new_candidate2 = XpansionCandidateDTO.model_validate( { "name": "candidate_2", "link": "area1 - area2", @@ -335,7 +347,7 @@ def test_get_candidates(tmp_path: Path) -> None: assert empty_study.tree.get(["user", "expansion", "candidates"]) == {} - new_candidate = XpansionCandidateDTO.parse_obj( + new_candidate = XpansionCandidateDTO.model_validate( { "name": "candidate_1", "link": "area1 - area2", @@ -344,7 +356,7 @@ def test_get_candidates(tmp_path: Path) -> None: } ) - new_candidate2 = XpansionCandidateDTO.parse_obj( + new_candidate2 = XpansionCandidateDTO.model_validate( { "name": "candidate_2", "link": "area1 - area2", @@ -372,7 +384,7 @@ def test_update_candidates(tmp_path: Path) -> None: make_link_and_areas(empty_study) - new_candidate = XpansionCandidateDTO.parse_obj( + new_candidate = XpansionCandidateDTO.model_validate( { "name": "candidate_1", "link": "area1 - area2", @@ -382,7 +394,7 @@ def test_update_candidates(tmp_path: Path) -> None: ) xpansion_manager.add_candidate(study, new_candidate) - new_candidate2 = XpansionCandidateDTO.parse_obj( + new_candidate2 = XpansionCandidateDTO.model_validate( { "name": "candidate_1", "link": "area1 - area2", @@ -403,7 +415,7 @@ def test_delete_candidate(tmp_path: Path) -> None: make_link_and_areas(empty_study) - new_candidate = XpansionCandidateDTO.parse_obj( + new_candidate = XpansionCandidateDTO.model_validate( { "name": "candidate_1", "link": "area1 - area2", @@ -413,7 +425,7 @@ def test_delete_candidate(tmp_path: Path) -> None: ) xpansion_manager.add_candidate(study, new_candidate) - new_candidate2 = XpansionCandidateDTO.parse_obj( + new_candidate2 = XpansionCandidateDTO.model_validate( { "name": "candidate_2", "link": "area1 - area2", @@ -488,14 +500,14 @@ def test_add_resources(tmp_path: Path) -> None: settings = xpansion_manager.get_xpansion_settings(study) settings.yearly_weights = filename3 - update_settings = UpdateXpansionSettings(**settings.dict()) + update_settings = UpdateXpansionSettings(**settings.model_dump()) xpansion_manager.update_xpansion_settings(study, update_settings) with pytest.raises(FileCurrentlyUsedInSettings): xpansion_manager.delete_resource(study, XpansionResourceFileType.WEIGHTS, filename3) settings.yearly_weights = "" - update_settings = UpdateXpansionSettings(**settings.dict()) + update_settings = UpdateXpansionSettings(**settings.model_dump()) xpansion_manager.update_xpansion_settings(study, update_settings) xpansion_manager.delete_resource(study, XpansionResourceFileType.WEIGHTS, filename3) diff --git a/tests/storage/conftest.py b/tests/storage/conftest.py index a690f808df..ee8ce55684 100644 --- a/tests/storage/conftest.py +++ b/tests/storage/conftest.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import uuid from pathlib import Path diff --git a/tests/storage/integration/conftest.py b/tests/storage/integration/conftest.py index 39636961cb..dcf7e5e830 100644 --- a/tests/storage/integration/conftest.py +++ b/tests/storage/integration/conftest.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime from pathlib import Path from unittest.mock import Mock @@ -97,7 +109,7 @@ def storage_service(tmp_path: Path, project_path: Path, sta_mini_zip_path: Path) ) matrix_service = SimpleMatrixService(matrix_content_repository=matrix_content_repository) storage_service = build_study_service( - application=Mock(), + app_ctxt=Mock(), cache=LocalCache(config=config.cache), file_transfer_manager=Mock(), task_service=task_service_mock, diff --git a/tests/storage/integration/data/__init__.py b/tests/storage/integration/data/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/integration/data/__init__.py +++ b/tests/storage/integration/data/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/integration/data/de_details_hourly.py b/tests/storage/integration/data/de_details_hourly.py index c3ee8e3971..779c794bb6 100644 --- a/tests/storage/integration/data/de_details_hourly.py +++ b/tests/storage/integration/data/de_details_hourly.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + de_details_hourly = { "columns": [ ("01_solar", "MWh", ""), diff --git a/tests/storage/integration/data/de_fr_values_hourly.py b/tests/storage/integration/data/de_fr_values_hourly.py index 556985fbee..43a40c2e12 100644 --- a/tests/storage/integration/data/de_fr_values_hourly.py +++ b/tests/storage/integration/data/de_fr_values_hourly.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import numpy de_fr_values_hourly = { diff --git a/tests/storage/integration/data/digest_file.py b/tests/storage/integration/data/digest_file.py index 363d2819bd..932be1eedd 100644 --- a/tests/storage/integration/data/digest_file.py +++ b/tests/storage/integration/data/digest_file.py @@ -1,2 +1,14 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + # fmt: off digest_file = {'columns': [str(i) for i in range(54)], 'data': [['', 'digest', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'VARIABLES', 'AREAS', 'LINKS', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '53', '4', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', 'OV. COST', 'OP. COST', 'MRG. PRICE', 'CO2 EMIS.', 'BALANCE', 'ROW BAL.', 'PSP', 'MISC. NDG', 'LOAD', 'H. ROR', 'WIND', 'SOLAR', 'NUCLEAR', 'LIGNITE', 'COAL', 'GAS', 'OIL', 'MIX. FUEL', 'MISC. DTG', 'H. STOR', 'H. PUMP', 'H. LEV', 'H. INFL', 'H. OVFL', 'H. VAL', 'H. COST', 'UNSP. ENRG', 'SPIL. ENRG', 'LOLD', 'LOLP', 'AVL DTG', 'DTG MRG', 'MAX MRG', 'NP COST', '01_solar', '02_wind_on', '03_wind_off', '04_res', '05_nuclear', '06_coal', '07_gas', '08_non-res', '09_hydro_pump', 'NODU', '01_solar', '02_wind_on', '03_wind_off', '04_res', '05_nuclear', '06_coal', '07_gas', '08_non-res', '09_hydro_pump'], ['', '', 'Euro', 'Euro', 'Euro', 'Tons', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', 'MWh', '%', 'MWh', '%', 'Euro/MWh', 'Euro', 'MWh', 'MWh', 'Hours', '%', 'MWh', 'MWh', 'MWh', 'Euro', 'NP Cost - Euro', 'NP Cost - Euro', 'NP Cost - Euro', 'NP Cost - Euro', 'NP Cost - Euro', 'NP Cost - Euro', 'NP Cost - Euro', 'NP Cost - Euro', 'NP Cost - Euro', ' ', 'NODU', 'NODU', 'NODU', 'NODU', 'NODU', 'NODU', 'NODU', 'NODU', 'NODU'], ['', '', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'values', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'values', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP', 'EXP'], ['', 'de', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'N/A', '0', '0', 'N/A', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'], ['', 'es', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'N/A', '0', '0', 'N/A', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'], ['', 'fr', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'N/A', '0', '0', 'N/A', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'], ['', 'it', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'N/A', '0', '0', 'N/A', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'digest', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'VARIABLES', 'AREAS', 'LINKS', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '0', '0', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'Links (FLOW LIN.)', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', 'From...', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '...To', 'de', 'es', 'fr', 'it', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'de', 'X', '--', '0', '--', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'es', '--', 'X', '0', '--', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'fr', '0', '0', 'X', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'it', '--', '--', '0', 'X', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'Links (FLOW QUAD.)', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', 'From...', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '...To', 'de', 'es', 'fr', 'it', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'de', 'X', '--', '0', '--', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'es', '--', 'X', '0', '--', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'fr', '0', '0', 'X', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', 'it', '--', '--', '0', 'X', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']]} diff --git a/tests/storage/integration/data/set_id_annual.py b/tests/storage/integration/data/set_id_annual.py index dde1a172e0..353f2a03f5 100644 --- a/tests/storage/integration/data/set_id_annual.py +++ b/tests/storage/integration/data/set_id_annual.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import math set_id_annual = { diff --git a/tests/storage/integration/data/set_values_monthly.py b/tests/storage/integration/data/set_values_monthly.py index 0cc1ad2d32..efe6fe7052 100644 --- a/tests/storage/integration/data/set_values_monthly.py +++ b/tests/storage/integration/data/set_values_monthly.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import math set_values_monthly = { diff --git a/tests/storage/integration/test_STA_mini.py b/tests/storage/integration/test_STA_mini.py index f165c3c2dd..35aaa4092d 100644 --- a/tests/storage/integration/test_STA_mini.py +++ b/tests/storage/integration/test_STA_mini.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import shutil from datetime import datetime @@ -10,6 +22,7 @@ from fastapi import FastAPI from starlette.testclient import TestClient +from antarest.core.application import create_app_ctxt from antarest.core.jwt import DEFAULT_ADMIN_USER, JWTGroup, JWTUser from antarest.core.model import JSON from antarest.core.requests import RequestParameters @@ -34,19 +47,23 @@ ) -def assert_url_content(storage_service: StudyService, url: str, expected_output: dict) -> None: - app = FastAPI(title=__name__) +def create_test_client(service: StudyService) -> TestClient: + build_ctxt = create_app_ctxt(FastAPI(title=__name__)) build_study_service( - app, + build_ctxt, cache=Mock(), user_service=Mock(), task_service=Mock(), file_transfer_manager=Mock(), - study_service=storage_service, + study_service=service, matrix_service=Mock(spec=MatrixService), - config=storage_service.storage_service.raw_study_service.config, + config=service.storage_service.raw_study_service.config, ) - client = TestClient(app) + return TestClient(build_ctxt.build()) + + +def assert_url_content(storage_service: StudyService, url: str, expected_output: dict) -> None: + client = create_test_client(storage_service) res = client.get(url) assert_study(res.json(), expected_output) @@ -481,18 +498,7 @@ def test_sta_mini_copy(storage_service) -> None: source_study_name = UUID destination_study_name = "copy-STA-mini" - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - user_service=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=storage_service, - matrix_service=Mock(spec=MatrixService), - config=storage_service.storage_service.raw_study_service.config, - ) - client = TestClient(app) + client = create_test_client(storage_service) result = client.post(f"/v1/studies/{source_study_name}/copy?dest={destination_study_name}&use_task=false") assert result.status_code == HTTPStatus.CREATED.value @@ -578,18 +584,7 @@ def test_sta_mini_import(tmp_path: Path, storage_service) -> None: sta_mini_zip_filepath = shutil.make_archive(tmp_path, "zip", path_study) sta_mini_zip_path = Path(sta_mini_zip_filepath) - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=storage_service, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - config=storage_service.storage_service.raw_study_service.config, - ) - client = TestClient(app) + client = create_test_client(storage_service) study_data = io.BytesIO(sta_mini_zip_path.read_bytes()) result = client.post("/v1/studies/_import", files={"study": study_data}) @@ -608,18 +603,7 @@ def test_sta_mini_import_output(tmp_path: Path, storage_service) -> None: sta_mini_output_zip_path = Path(sta_mini_output_zip_filepath) - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=storage_service, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - config=storage_service.storage_service.raw_study_service.config, - ) - client = TestClient(app) + client = create_test_client(storage_service) study_output_data = io.BytesIO(sta_mini_output_zip_path.read_bytes()) result = client.post( diff --git a/tests/storage/integration/test_exporter.py b/tests/storage/integration/test_exporter.py index aed77f61fe..46e077a9ca 100644 --- a/tests/storage/integration/test_exporter.py +++ b/tests/storage/integration/test_exporter.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import json import zipfile @@ -9,6 +21,7 @@ from fastapi import FastAPI from starlette.testclient import TestClient +from antarest.core.application import create_app_ctxt from antarest.core.config import Config, SecurityConfig, StorageConfig, WorkspaceConfig from antarest.core.filetransfer.model import FileDownloadTaskDTO from antarest.core.jwt import DEFAULT_ADMIN_USER @@ -42,10 +55,10 @@ def assert_url_content(url: str, tmp_dir: Path, sta_mini_zip_path: Path) -> byte repo = Mock() repo.get.return_value = md - app = FastAPI(title=__name__) + build_ctxt = create_app_ctxt(FastAPI(title=__name__)) ftm = SimpleFileTransferManager(Config(storage=StorageConfig(tmp_dir=tmp_dir))) build_study_service( - app, + build_ctxt, cache=Mock(), user_service=Mock(), task_service=SimpleSyncTaskService(), @@ -57,7 +70,7 @@ def assert_url_content(url: str, tmp_dir: Path, sta_mini_zip_path: Path) -> byte ) # Simulate the download of data using a streamed request - client = TestClient(app) + client = TestClient(build_ctxt.build()) if client.stream is False: # `TestClient` is based on `Requests` (old way before AntaREST-v2.15) # noinspection PyArgumentList diff --git a/tests/storage/integration/test_write_STA_mini.py b/tests/storage/integration/test_write_STA_mini.py index 069d138e6c..302bbd6e52 100644 --- a/tests/storage/integration/test_write_STA_mini.py +++ b/tests/storage/integration/test_write_STA_mini.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import Optional import pytest diff --git a/tests/storage/rawstudies/__init__.py b/tests/storage/rawstudies/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/rawstudies/__init__.py +++ b/tests/storage/rawstudies/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/rawstudies/samples/__init__.py b/tests/storage/rawstudies/samples/__init__.py index 773f16ec60..3fff24b6fe 100644 --- a/tests/storage/rawstudies/samples/__init__.py +++ b/tests/storage/rawstudies/samples/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path ASSETS_DIR = Path(__file__).parent.resolve() diff --git a/tests/storage/rawstudies/test_factory.py b/tests/storage/rawstudies/test_factory.py index e2cd4391b3..80b2a2e19c 100644 --- a/tests/storage/rawstudies/test_factory.py +++ b/tests/storage/rawstudies/test_factory.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock from antarest.core.interfaces.cache import CacheConstants @@ -53,8 +65,8 @@ def test_factory_cache() -> None: cache.get.return_value = None study = factory.create_from_fs(path, study_id) assert study.config == config - cache.put.assert_called_once_with(cache_id, FileStudyTreeConfigDTO.from_build_config(config).dict()) + cache.put.assert_called_once_with(cache_id, FileStudyTreeConfigDTO.from_build_config(config).model_dump()) - cache.get.return_value = FileStudyTreeConfigDTO.from_build_config(config).dict() + cache.get.return_value = FileStudyTreeConfigDTO.from_build_config(config).model_dump() study = factory.create_from_fs(path, study_id) assert study.config == config diff --git a/tests/storage/rawstudies/test_helpers.py b/tests/storage/rawstudies/test_helpers.py index 789a39ca05..4f540d56be 100644 --- a/tests/storage/rawstudies/test_helpers.py +++ b/tests/storage/rawstudies/test_helpers.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock, call import pytest diff --git a/tests/storage/repository/__init__.py b/tests/storage/repository/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/__init__.py +++ b/tests/storage/repository/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/antares_io/__init__.py b/tests/storage/repository/antares_io/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/antares_io/__init__.py +++ b/tests/storage/repository/antares_io/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/antares_io/reader/test_ini_reader.py b/tests/storage/repository/antares_io/reader/test_ini_reader.py index 4ff38a32c6..6c1a18533a 100644 --- a/tests/storage/repository/antares_io/reader/test_ini_reader.py +++ b/tests/storage/repository/antares_io/reader/test_ini_reader.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import textwrap from pathlib import Path diff --git a/tests/storage/repository/antares_io/writer/test_ini_writer.py b/tests/storage/repository/antares_io/writer/test_ini_writer.py index b762469b7a..1affe2dc9c 100644 --- a/tests/storage/repository/antares_io/writer/test_ini_writer.py +++ b/tests/storage/repository/antares_io/writer/test_ini_writer.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from typing import Callable diff --git a/tests/storage/repository/filesystem/__init__.py b/tests/storage/repository/filesystem/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/__init__.py +++ b/tests/storage/repository/filesystem/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/config/__init__.py b/tests/storage/repository/filesystem/config/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/config/__init__.py +++ b/tests/storage/repository/filesystem/config/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/config/test_config_files.py b/tests/storage/repository/filesystem/config/test_config_files.py index 93482d359d..a0fdf6d4f5 100644 --- a/tests/storage/repository/filesystem/config/test_config_files.py +++ b/tests/storage/repository/filesystem/config/test_config_files.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import logging import textwrap import typing as t @@ -403,7 +415,7 @@ def test_parse_thermal_860(study_path: Path, version, caplog) -> None: assert not caplog.text else: expected = [ThermalConfig(id="t1", name="t1")] - assert "extra fields not permitted" in caplog.text + assert "Extra inputs are not permitted" in caplog.text assert actual == expected diff --git a/tests/storage/repository/filesystem/config/test_files.py b/tests/storage/repository/filesystem/config/test_files.py index 99ed686280..fbdf160bce 100644 --- a/tests/storage/repository/filesystem/config/test_files.py +++ b/tests/storage/repository/filesystem/config/test_files.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import zipfile from pathlib import Path from unittest.mock import Mock, patch diff --git a/tests/storage/repository/filesystem/config/test_ruleset_matrices.py b/tests/storage/repository/filesystem/config/test_ruleset_matrices.py index 40651bce59..183a9481c8 100644 --- a/tests/storage/repository/filesystem/config/test_ruleset_matrices.py +++ b/tests/storage/repository/filesystem/config/test_ruleset_matrices.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import numpy as np diff --git a/tests/storage/repository/filesystem/config/test_utils.py b/tests/storage/repository/filesystem/config/test_utils.py index 617bc05ff0..cf470df38f 100644 --- a/tests/storage/repository/filesystem/config/test_utils.py +++ b/tests/storage/repository/filesystem/config/test_utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import string import pytest @@ -21,12 +33,12 @@ def test_transform_name_to_id__valid_chars(name): assert transform_name_to_id(name, lower=False) == name -@pytest.mark.parametrize("name", set(string.punctuation) - set(VALID_CHARS)) +@pytest.mark.parametrize("name", sorted(set(string.punctuation) - set(VALID_CHARS))) def test_transform_name_to_id__punctuation(name): assert not transform_name_to_id(name) -@pytest.mark.parametrize("name", set(string.whitespace) - set(VALID_CHARS)) +@pytest.mark.parametrize("name", sorted(set(string.whitespace) - set(VALID_CHARS))) def test_transform_name_to_id__whitespace(name): assert not transform_name_to_id(name) diff --git a/tests/storage/repository/filesystem/matrix/__init__.py b/tests/storage/repository/filesystem/matrix/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/matrix/__init__.py +++ b/tests/storage/repository/filesystem/matrix/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/matrix/test_date_serializer.py b/tests/storage/repository/filesystem/matrix/test_date_serializer.py index d9df33eb63..31ed6e8eab 100644 --- a/tests/storage/repository/filesystem/matrix/test_date_serializer.py +++ b/tests/storage/repository/filesystem/matrix/test_date_serializer.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path import pandas as pd diff --git a/tests/storage/repository/filesystem/matrix/test_head_writer.py b/tests/storage/repository/filesystem/matrix/test_head_writer.py index e76d6b036b..bdc579a811 100644 --- a/tests/storage/repository/filesystem/matrix/test_head_writer.py +++ b/tests/storage/repository/filesystem/matrix/test_head_writer.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.model.filesystem.matrix.head_writer import AreaHeadWriter, LinkHeadWriter diff --git a/tests/storage/repository/filesystem/matrix/test_input_series_matrix.py b/tests/storage/repository/filesystem/matrix/test_input_series_matrix.py index b6ac49fce1..153ce522e1 100644 --- a/tests/storage/repository/filesystem/matrix/test_input_series_matrix.py +++ b/tests/storage/repository/filesystem/matrix/test_input_series_matrix.py @@ -1,3 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +import itertools +import shutil import textwrap import typing as t from pathlib import Path @@ -92,3 +106,71 @@ def test_save(self, my_study_config: FileStudyTreeConfig) -> None: """ ) assert actual == expected + + +class TestCopyAndRenameFile: + node: InputSeriesMatrix + fake_node: InputSeriesMatrix + target: str + file: Path + link: Path + modified_file: Path + modified_link: Path + + def _set_up(self, tmp_path: Path) -> None: + self.file = tmp_path / "my-study" / "lazy.txt" + self.file.parent.mkdir() + + self.link = self.file.parent / f"{self.file.name}.link" + self.link.write_text("Link: Mock File Content") + + config = FileStudyTreeConfig(study_path=self.file.parent, path=self.file, version=-1, study_id="") + context = ContextServer(matrix=Mock(), resolver=Mock()) + self.node = InputSeriesMatrix(context=context, config=config) + + self.modified_file = self.file.parent / "lazy_modified.txt" + self.modified_link = self.file.parent / f"{self.modified_file.name}.link" + config2 = FileStudyTreeConfig(study_path=self.file.parent, path=self.modified_file, version=-1, study_id="") + self.fake_node = InputSeriesMatrix(context=Mock(), config=config2) + self.target = self.modified_file.stem + + def _checks_behavior(self, rename: bool, target_is_link: bool): + # Asserts `_infer_path` fails if there's no file + with pytest.raises(ChildNotFoundError): + self.fake_node._infer_path() + + # Checks `copy_file`, `rename_file` methods + if target_is_link: + assert not self.modified_link.exists() + assert self.link.exists() + assert not self.file.exists() + assert not self.modified_file.exists() + + self.node.rename_file(self.target) if rename else self.node.copy_file(self.target) + + assert not self.link.exists() if rename else self.link.exists() + assert self.modified_link.exists() + assert not self.file.exists() + assert not self.modified_file.exists() + assert self.modified_link.read_text() == "Link: Mock File Content" + + else: + content = b"No Link: Mock File Content" + self.node.save(content) + assert self.file.read_text() == content.decode("utf-8") + assert not self.link.exists() + assert not self.modified_file.exists() + + self.node.rename_file(self.target) if rename else self.node.copy_file(self.target) + + assert not self.link.exists() + assert not self.file.exists() if rename else self.file.exists() + assert self.modified_file.exists() + assert not self.modified_link.exists() + assert self.modified_file.read_text() == content.decode("utf-8") + + def test_copy_and_rename_file(self, tmp_path: Path): + for rename, target_is_link in itertools.product([True, False], repeat=2): + self._set_up(tmp_path) + self._checks_behavior(rename, target_is_link) + shutil.rmtree(tmp_path / "my-study") diff --git a/tests/storage/repository/filesystem/matrix/test_matrix_node.py b/tests/storage/repository/filesystem/matrix/test_matrix_node.py index 6858a5ff0f..decac6e2e0 100644 --- a/tests/storage/repository/filesystem/matrix/test_matrix_node.py +++ b/tests/storage/repository/filesystem/matrix/test_matrix_node.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from tempfile import TemporaryDirectory from typing import List, Optional diff --git a/tests/storage/repository/filesystem/matrix/test_output_series_matrix.py b/tests/storage/repository/filesystem/matrix/test_output_series_matrix.py index e6eb256c51..8ed2a07fe0 100644 --- a/tests/storage/repository/filesystem/matrix/test_output_series_matrix.py +++ b/tests/storage/repository/filesystem/matrix/test_output_series_matrix.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/repository/filesystem/root/__init__.py b/tests/storage/repository/filesystem/root/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/__init__.py +++ b/tests/storage/repository/filesystem/root/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/input/__init__.py b/tests/storage/repository/filesystem/root/input/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/input/__init__.py +++ b/tests/storage/repository/filesystem/root/input/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/input/hydro/__init__.py b/tests/storage/repository/filesystem/root/input/hydro/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/input/hydro/__init__.py +++ b/tests/storage/repository/filesystem/root/input/hydro/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/input/hydro/common/__init__.py b/tests/storage/repository/filesystem/root/input/hydro/common/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/input/hydro/common/__init__.py +++ b/tests/storage/repository/filesystem/root/input/hydro/common/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/input/hydro/common/capacity/__init__.py b/tests/storage/repository/filesystem/root/input/hydro/common/capacity/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/input/hydro/common/capacity/__init__.py +++ b/tests/storage/repository/filesystem/root/input/hydro/common/capacity/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/input/hydro/common/capacity/test_capacity.py b/tests/storage/repository/filesystem/root/input/hydro/common/capacity/test_capacity.py index a6b45080ca..ee2fb3bdbf 100644 --- a/tests/storage/repository/filesystem/root/input/hydro/common/capacity/test_capacity.py +++ b/tests/storage/repository/filesystem/root/input/hydro/common/capacity/test_capacity.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import uuid from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/repository/filesystem/root/input/hydro/series/__init__.py b/tests/storage/repository/filesystem/root/input/hydro/series/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/input/hydro/series/__init__.py +++ b/tests/storage/repository/filesystem/root/input/hydro/series/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/input/hydro/series/area/__init__.py b/tests/storage/repository/filesystem/root/input/hydro/series/area/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/input/hydro/series/area/__init__.py +++ b/tests/storage/repository/filesystem/root/input/hydro/series/area/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/input/hydro/series/area/test_area.py b/tests/storage/repository/filesystem/root/input/hydro/series/area/test_area.py index 312f1d9b2a..4a1c7da570 100644 --- a/tests/storage/repository/filesystem/root/input/hydro/series/area/test_area.py +++ b/tests/storage/repository/filesystem/root/input/hydro/series/area/test_area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import uuid from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/repository/filesystem/root/output/__init__.py b/tests/storage/repository/filesystem/root/output/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/output/__init__.py +++ b/tests/storage/repository/filesystem/root/output/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/output/simulation/__init__.py b/tests/storage/repository/filesystem/root/output/simulation/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/output/simulation/__init__.py +++ b/tests/storage/repository/filesystem/root/output/simulation/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/output/simulation/mode/__init__.py b/tests/storage/repository/filesystem/root/output/simulation/mode/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/output/simulation/mode/__init__.py +++ b/tests/storage/repository/filesystem/root/output/simulation/mode/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/output/simulation/mode/common/__init__.py b/tests/storage/repository/filesystem/root/output/simulation/mode/common/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/root/output/simulation/mode/common/__init__.py +++ b/tests/storage/repository/filesystem/root/output/simulation/mode/common/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_area.py b/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_area.py index 2ff4f6a44a..ca6a127e37 100644 --- a/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_area.py +++ b/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import uuid from pathlib import Path diff --git a/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_binding_const.py b/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_binding_const.py index 248468d5de..8ee6a31266 100644 --- a/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_binding_const.py +++ b/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_binding_const.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import uuid from pathlib import Path diff --git a/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_link.py b/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_link.py index 765187a186..28123774c5 100644 --- a/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_link.py +++ b/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_link.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import uuid from pathlib import Path diff --git a/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_set.py b/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_set.py index 0213647a8e..f6016deb7c 100644 --- a/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_set.py +++ b/tests/storage/repository/filesystem/root/output/simulation/mode/common/test_set.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import uuid from pathlib import Path diff --git a/tests/storage/repository/filesystem/special_node/__init__.py b/tests/storage/repository/filesystem/special_node/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/repository/filesystem/special_node/__init__.py +++ b/tests/storage/repository/filesystem/special_node/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/repository/filesystem/special_node/input_areas_list_test.py b/tests/storage/repository/filesystem/special_node/input_areas_list_test.py index 0616db9a5c..2bdf043763 100644 --- a/tests/storage/repository/filesystem/special_node/input_areas_list_test.py +++ b/tests/storage/repository/filesystem/special_node/input_areas_list_test.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/repository/filesystem/test_bucket_node.py b/tests/storage/repository/filesystem/test_bucket_node.py index 5cf61e53bb..1ea2ecf75f 100644 --- a/tests/storage/repository/filesystem/test_bucket_node.py +++ b/tests/storage/repository/filesystem/test_bucket_node.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/repository/filesystem/test_folder_node.py b/tests/storage/repository/filesystem/test_folder_node.py index ae017d7007..073fead252 100644 --- a/tests/storage/repository/filesystem/test_folder_node.py +++ b/tests/storage/repository/filesystem/test_folder_node.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json import textwrap import typing as t diff --git a/tests/storage/repository/filesystem/test_ini_file_node.py b/tests/storage/repository/filesystem/test_ini_file_node.py index 6808270c01..f4571d3ea9 100644 --- a/tests/storage/repository/filesystem/test_ini_file_node.py +++ b/tests/storage/repository/filesystem/test_ini_file_node.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import shutil import textwrap import typing as t diff --git a/tests/storage/repository/filesystem/test_lazy_node.py b/tests/storage/repository/filesystem/test_lazy_node.py index a2c72415f5..82e5cdeb0a 100644 --- a/tests/storage/repository/filesystem/test_lazy_node.py +++ b/tests/storage/repository/filesystem/test_lazy_node.py @@ -1,9 +1,19 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from typing import List, Optional from unittest.mock import Mock -import pytest - from antarest.study.storage.rawstudy.model.filesystem.config.model import FileStudyTreeConfig from antarest.study.storage.rawstudy.model.filesystem.context import ContextServer from antarest.study.storage.rawstudy.model.filesystem.lazy_node import LazyNode @@ -140,113 +150,3 @@ def test_save_txt(tmp_path: Path): assert file.read_text() == content assert not link.exists() resolver.resolve.assert_called_once_with(content) - - -@pytest.mark.parametrize("target_is_link", [True, False]) -def test_rename_file(tmp_path: Path, target_is_link: bool): - file = tmp_path / "my-study/lazy.txt" - file.parent.mkdir() - - link = file.parent / f"{file.name}.link" - link.write_text("Link: Mock File Content") - - resolver = Mock() - resolver.resolve.return_value = None - - resolver2 = Mock() - resolver2.resolve.return_value = None - - config = FileStudyTreeConfig(study_path=file, path=file, version=-1, study_id="") - context = ContextServer(matrix=Mock(), resolver=resolver) - node = MockLazyNode(context=context, config=config) - - renaming_file = file.parent / "lazy_rename.txt" - renaming_link = file.parent / f"{renaming_file.name}.link" - config2 = FileStudyTreeConfig(study_path=renaming_file, path=renaming_file, version=-1, study_id="") - context2 = ContextServer(matrix=Mock(), resolver=resolver2) - target = MockLazyNode(context=context2, config=config2) - - if target_is_link: - assert not renaming_link.exists() - assert link.exists() - assert not file.exists() - assert not renaming_file.exists() - - node.rename_file(target) - - assert not link.exists() - assert renaming_link.exists() - assert not file.exists() - assert not renaming_file.exists() - assert renaming_link.read_text() == "Link: Mock File Content" - - else: - content = "No Link: Mock File Content" - node.save(content) - assert file.read_text() == content - assert not link.exists() - assert not renaming_file.exists() - resolver.resolve.assert_called_once_with(content) - - node.rename_file(target) - - assert not link.exists() - assert not file.exists() - assert renaming_file.exists() - assert not renaming_link.exists() - assert renaming_file.read_text() == "No Link: Mock File Content" - - -@pytest.mark.parametrize("target_is_link", [True, False]) -def test_copy_file(tmp_path: Path, target_is_link: bool): - file = tmp_path / "my-study/lazy.txt" - file.parent.mkdir() - - link = file.parent / f"{file.name}.link" - link.write_text("Link: Mock File Content") - - resolver = Mock() - resolver.resolve.return_value = None - - resolver2 = Mock() - resolver2.resolve.return_value = None - - config = FileStudyTreeConfig(study_path=file, path=file, version=-1, study_id="") - context = ContextServer(matrix=Mock(), resolver=resolver) - node = MockLazyNode(context=context, config=config) - - copied_file = file.parent / "lazy_copy.txt" - copied_link = file.parent / f"{copied_file.name}.link" - config2 = FileStudyTreeConfig(study_path=copied_file, path=copied_file, version=-1, study_id="") - context2 = ContextServer(matrix=Mock(), resolver=resolver2) - target = MockLazyNode(context=context2, config=config2) - - if target_is_link: - assert not copied_link.exists() - assert link.exists() - assert not file.exists() - assert not copied_file.exists() - - node.copy_file(target) - - assert link.exists() - assert copied_link.exists() - assert not file.exists() - assert not copied_file.exists() - assert copied_link.read_text() == "Link: Mock File Content" - - else: - content = "No Link: Mock File Content" - node.save(content) - assert file.read_text() == content - assert not link.exists() - assert not copied_file.exists() - resolver.resolve.assert_called_once_with(content) - - node.copy_file(target) - - assert not link.exists() - assert file.exists() - assert copied_file.exists() - assert not copied_link.exists() - assert copied_file.read_text() == "No Link: Mock File Content" diff --git a/tests/storage/repository/filesystem/test_raw_file_node.py b/tests/storage/repository/filesystem/test_raw_file_node.py index 1232c575c3..04f2d6cb21 100644 --- a/tests/storage/repository/filesystem/test_raw_file_node.py +++ b/tests/storage/repository/filesystem/test_raw_file_node.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/repository/filesystem/test_scenariobuilder.py b/tests/storage/repository/filesystem/test_scenariobuilder.py index 91b964e621..bb65b140c5 100644 --- a/tests/storage/repository/filesystem/test_scenariobuilder.py +++ b/tests/storage/repository/filesystem/test_scenariobuilder.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/repository/filesystem/test_ts_numbers_vector.py b/tests/storage/repository/filesystem/test_ts_numbers_vector.py index a415bfddd8..f92383371e 100644 --- a/tests/storage/repository/filesystem/test_ts_numbers_vector.py +++ b/tests/storage/repository/filesystem/test_ts_numbers_vector.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock diff --git a/tests/storage/repository/filesystem/utils.py b/tests/storage/repository/filesystem/utils.py index cb563e8567..385802430f 100644 --- a/tests/storage/repository/filesystem/utils.py +++ b/tests/storage/repository/filesystem/utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from typing import List, Optional from zipfile import ZipFile diff --git a/tests/storage/repository/test_study.py b/tests/storage/repository/test_study.py index 7aa5fb23cd..43f51554a9 100644 --- a/tests/storage/repository/test_study.py +++ b/tests/storage/repository/test_study.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json from datetime import datetime diff --git a/tests/storage/study_upgrader/conftest.py b/tests/storage/study_upgrader/conftest.py index 8081ca70c9..4e17e64e22 100644 --- a/tests/storage/study_upgrader/conftest.py +++ b/tests/storage/study_upgrader/conftest.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing import zipfile from pathlib import Path diff --git a/tests/storage/study_upgrader/test_upgrade_710.py b/tests/storage/study_upgrader/test_upgrade_710.py index a389178999..33763594b8 100644 --- a/tests/storage/study_upgrader/test_upgrade_710.py +++ b/tests/storage/study_upgrader/test_upgrade_710.py @@ -1,5 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.study_upgrader import upgrade_710 +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.study_upgrader.conftest import StudyAssets @@ -9,7 +21,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_710(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "710") + study_upgrader.upgrade() # compare generaldata.ini actual_path = study_assets.study_dir.joinpath("settings/generaldata.ini") diff --git a/tests/storage/study_upgrader/test_upgrade_720.py b/tests/storage/study_upgrader/test_upgrade_720.py index 43eb2009f1..61f6cea7ea 100644 --- a/tests/storage/study_upgrader/test_upgrade_720.py +++ b/tests/storage/study_upgrader/test_upgrade_720.py @@ -1,4 +1,16 @@ -from antarest.study.storage.study_upgrader import upgrade_720 +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.business.test_study_version_upgrader import are_same_dir from tests.storage.study_upgrader.conftest import StudyAssets @@ -9,7 +21,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_720(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "720") + study_upgrader.upgrade() # compare folder - assert are_same_dir(study_assets.study_dir, study_assets.expected_dir) + assert are_same_dir(study_assets.study_dir, study_assets.expected_dir, ignore=["study.antares"]) diff --git a/tests/storage/study_upgrader/test_upgrade_800.py b/tests/storage/study_upgrader/test_upgrade_800.py index b2c72fcee1..d03f483502 100644 --- a/tests/storage/study_upgrader/test_upgrade_800.py +++ b/tests/storage/study_upgrader/test_upgrade_800.py @@ -1,5 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.study_upgrader import upgrade_800 +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.study_upgrader.conftest import StudyAssets @@ -9,7 +21,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_800(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "800") + study_upgrader.upgrade() # compare generaldata.ini actual_path = study_assets.study_dir.joinpath("settings/generaldata.ini") diff --git a/tests/storage/study_upgrader/test_upgrade_810.py b/tests/storage/study_upgrader/test_upgrade_810.py index 9639beb94f..9ba51de57f 100644 --- a/tests/storage/study_upgrader/test_upgrade_810.py +++ b/tests/storage/study_upgrader/test_upgrade_810.py @@ -1,5 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.study_upgrader import upgrade_810 +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.business.test_study_version_upgrader import are_same_dir from tests.storage.study_upgrader.conftest import StudyAssets @@ -10,7 +22,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_810(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "810") + study_upgrader.upgrade() # compare generaldata.ini actual_path = study_assets.study_dir.joinpath("settings/generaldata.ini") diff --git a/tests/storage/study_upgrader/test_upgrade_820.py b/tests/storage/study_upgrader/test_upgrade_820.py index 730b7c0127..41cf4198d3 100644 --- a/tests/storage/study_upgrader/test_upgrade_820.py +++ b/tests/storage/study_upgrader/test_upgrade_820.py @@ -1,5 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.study_upgrader import upgrade_820 +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.business.test_study_version_upgrader import are_same_dir from tests.storage.study_upgrader.conftest import StudyAssets @@ -10,7 +22,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_820(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "820") + study_upgrader.upgrade() # compare generaldata.ini actual_path = study_assets.study_dir.joinpath("settings/generaldata.ini") diff --git a/tests/storage/study_upgrader/test_upgrade_830.py b/tests/storage/study_upgrader/test_upgrade_830.py index d0612ef889..146029f17e 100644 --- a/tests/storage/study_upgrader/test_upgrade_830.py +++ b/tests/storage/study_upgrader/test_upgrade_830.py @@ -1,5 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.study_upgrader import upgrade_830 +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.business.test_study_version_upgrader import are_same_dir from tests.storage.study_upgrader.conftest import StudyAssets @@ -10,7 +22,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_830(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "830") + study_upgrader.upgrade() # compare generaldata.ini actual_path = study_assets.study_dir.joinpath("settings/generaldata.ini") diff --git a/tests/storage/study_upgrader/test_upgrade_840.py b/tests/storage/study_upgrader/test_upgrade_840.py index 4f95cef265..b5b99ddae5 100644 --- a/tests/storage/study_upgrader/test_upgrade_840.py +++ b/tests/storage/study_upgrader/test_upgrade_840.py @@ -1,5 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.study_upgrader import upgrade_840 +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.study_upgrader.conftest import StudyAssets @@ -9,7 +21,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_840(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "840") + study_upgrader.upgrade() # compare generaldata.ini actual_path = study_assets.study_dir.joinpath("settings/generaldata.ini") diff --git a/tests/storage/study_upgrader/test_upgrade_850.py b/tests/storage/study_upgrader/test_upgrade_850.py index 362cf1ab50..c4c040b5cb 100644 --- a/tests/storage/study_upgrader/test_upgrade_850.py +++ b/tests/storage/study_upgrader/test_upgrade_850.py @@ -1,5 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader -from antarest.study.storage.study_upgrader import upgrade_850 +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.study_upgrader.conftest import StudyAssets @@ -10,7 +22,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_850(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "850") + study_upgrader.upgrade() # compare generaldata.ini actual_path = study_assets.study_dir.joinpath("settings/generaldata.ini") diff --git a/tests/storage/study_upgrader/test_upgrade_860.py b/tests/storage/study_upgrader/test_upgrade_860.py index cd20d438cb..704c4aaf44 100644 --- a/tests/storage/study_upgrader/test_upgrade_860.py +++ b/tests/storage/study_upgrader/test_upgrade_860.py @@ -1,4 +1,16 @@ -from antarest.study.storage.study_upgrader import upgrade_860 +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.business.test_study_version_upgrader import are_same_dir from tests.storage.study_upgrader.conftest import StudyAssets @@ -9,7 +21,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_860(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "860") + study_upgrader.upgrade() # compare input folder actual_input_path = study_assets.study_dir.joinpath("input") diff --git a/tests/storage/study_upgrader/test_upgrade_870.py b/tests/storage/study_upgrader/test_upgrade_870.py index f22a7a30ef..f4fb6721b6 100644 --- a/tests/storage/study_upgrader/test_upgrade_870.py +++ b/tests/storage/study_upgrader/test_upgrade_870.py @@ -1,4 +1,16 @@ -from antarest.study.storage.study_upgrader import upgrade_870 +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.business.test_study_version_upgrader import are_same_dir from tests.storage.study_upgrader.conftest import StudyAssets @@ -9,7 +21,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_870(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "870") + study_upgrader.upgrade() # compare input folders (bindings + thermals) actual_input_path = study_assets.study_dir.joinpath("input") @@ -23,7 +36,8 @@ def test_empty_binding_constraints(study_assets: StudyAssets): """ # upgrade the study - upgrade_870(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "870") + study_upgrader.upgrade() # compare input folders (bindings + thermals) actual_input_path = study_assets.study_dir.joinpath("input") diff --git a/tests/storage/study_upgrader/test_upgrade_880.py b/tests/storage/study_upgrader/test_upgrade_880.py index 36dfa7dcc6..465092c4a8 100644 --- a/tests/storage/study_upgrader/test_upgrade_880.py +++ b/tests/storage/study_upgrader/test_upgrade_880.py @@ -1,4 +1,16 @@ -from antarest.study.storage.study_upgrader import upgrade_880 +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from antarest.study.storage.study_upgrader import StudyUpgrader from tests.storage.business.test_study_version_upgrader import are_same_dir from tests.storage.study_upgrader.conftest import StudyAssets @@ -9,7 +21,8 @@ def test_nominal_case(study_assets: StudyAssets): """ # upgrade the study - upgrade_880(study_assets.study_dir) + study_upgrader = StudyUpgrader(study_assets.study_dir, "880") + study_upgrader.upgrade() # compare st-storage folders (st-storage) actual_input_path = study_assets.study_dir / "input" / "st-storage" diff --git a/tests/storage/test_model.py b/tests/storage/test_model.py index d17d6c89a4..f59ce30137 100644 --- a/tests/storage/test_model.py +++ b/tests/storage/test_model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from antarest.study.storage.rawstudy.model.filesystem.config.binding_constraint import BindingConstraintFrequency @@ -55,5 +67,5 @@ def test_file_study_tree_config_dto(): enr_modelling="aggregated", ) config_dto = FileStudyTreeConfigDTO.from_build_config(config) - assert sorted(list(config_dto.dict()) + ["cache"]) == sorted(list(config.__dict__)) + assert sorted(list(config_dto.model_dump()) + ["cache"]) == sorted(list(config.__dict__)) assert config_dto.to_build_config() == config diff --git a/tests/storage/test_service.py b/tests/storage/test_service.py index 891099dbcc..47ba9fe49c 100644 --- a/tests/storage/test_service.py +++ b/tests/storage/test_service.py @@ -1,7 +1,21 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import contextlib import os +import textwrap import typing as t import uuid +from configparser import MissingSectionHeaderError from datetime import datetime, timedelta, timezone from pathlib import Path from unittest.mock import ANY, Mock, call, patch, seal @@ -583,7 +597,7 @@ def test_download_output() -> None: name="east", type=StudyDownloadType.AREA, data={ - 1: [ + "1": [ TimeSerie(name="H. VAL", unit="Euro/MWh", data=[0.5]), TimeSerie(name="some cluster", unit="Euro/MWh", data=[0.8]), ] @@ -647,7 +661,7 @@ def test_download_output() -> None: TimeSeriesData( name="east^west", type=StudyDownloadType.LINK, - data={1: [TimeSerie(name="H. VAL", unit="Euro/MWh", data=[0.5])]}, + data={"1": [TimeSerie(name="H. VAL", unit="Euro/MWh", data=[0.5])]}, ) ], warnings=[], @@ -681,7 +695,7 @@ def test_download_output() -> None: name="north", type=StudyDownloadType.DISTRICT, data={ - 1: [ + "1": [ TimeSerie(name="H. VAL", unit="Euro/MWh", data=[0.5]), TimeSerie(name="some cluster", unit="Euro/MWh", data=[0.8]), ] @@ -1377,7 +1391,7 @@ def test_unarchive_output(tmp_path: Path) -> None: src=str(tmp_path / "output" / f"{output_id}.zip"), dest=str(tmp_path / "output" / output_id), remove_src=False, - ).dict(), + ).model_dump(), name=f"Unarchive output {study_name}/{output_id} ({study_id})", ref_id=study_id, request_params=RequestParameters(user=DEFAULT_ADMIN_USER), @@ -1508,7 +1522,7 @@ def test_archive_output_locks(tmp_path: Path) -> None: src=str(tmp_path / "output" / f"{output_id}.zip"), dest=str(tmp_path / "output" / output_id), remove_src=False, - ).dict(), + ).model_dump(), name=f"Unarchive output {study_name}/{output_id} ({study_id})", ref_id=study_id, request_params=RequestParameters(user=DEFAULT_ADMIN_USER), @@ -1728,7 +1742,7 @@ def test_task_upgrade_study(tmp_path: Path) -> None: @with_db_context -@patch("antarest.study.service.upgrade_study") +@patch("antarest.study.storage.study_upgrader.StudyUpgrader.upgrade") @pytest.mark.parametrize("workspace", ["other_workspace", DEFAULT_WORKSPACE_NAME]) def test_upgrade_study__raw_study__nominal( upgrade_study_mock: Mock, @@ -1740,7 +1754,17 @@ def test_upgrade_study__raw_study__nominal( target_version = "800" current_version = "720" (tmp_path / "study.antares").touch() - (tmp_path / "study.antares").write_text(f"version = {current_version}") + (tmp_path / "study.antares").write_text( + textwrap.dedent( + f""" + [antares] + version = {current_version} + caption = + created = 1682506382.235618 + lastsave = 1682506382.23562 + author = Unknown""" + ) + ) # Prepare a RAW study # noinspection PyArgumentList @@ -1796,8 +1820,7 @@ def test_upgrade_study__raw_study__nominal( notifier = Mock() actual = task(notifier) - # The `upgrade_study()` function must be called with the right parameters - upgrade_study_mock.assert_called_with(tmp_path, target_version) + upgrade_study_mock.assert_called_once_with() # The study must be updated in the database actual_study: RawStudy = db.session.query(Study).get(study_id) @@ -1823,7 +1846,7 @@ def test_upgrade_study__raw_study__nominal( @with_db_context -@patch("antarest.study.service.upgrade_study") +@patch("antarest.study.storage.study_upgrader.StudyUpgrader.upgrade") def test_upgrade_study__variant_study__nominal( upgrade_study_mock: Mock, tmp_path: Path, @@ -1912,14 +1935,14 @@ def test_upgrade_study__variant_study__nominal( @with_db_context -@patch("antarest.study.service.upgrade_study") -def test_upgrade_study__raw_study__failed(upgrade_study_mock: Mock, tmp_path: Path) -> None: +def test_upgrade_study__raw_study__failed(tmp_path: Path) -> None: study_id = str(uuid.uuid4()) study_name = "my_study" target_version = "800" old_version = "720" (tmp_path / "study.antares").touch() (tmp_path / "study.antares").write_text(f"version = {old_version}") + # The study.antares file doesn't have an header the upgrade should fail. # Prepare a RAW study # noinspection PyArgumentList @@ -1960,9 +1983,6 @@ def test_upgrade_study__raw_study__failed(upgrade_study_mock: Mock, tmp_path: Pa # An event of type `STUDY_EDITED` must be pushed when the upgrade is done. event_bus = Mock() - # The `upgrade_study()` function raise an exception - upgrade_study_mock.side_effect = Exception("INVALID_UPGRADE") - # Prepare the task for an upgrade task = StudyUpgraderTask( study_id, @@ -1976,7 +1996,7 @@ def test_upgrade_study__raw_study__failed(upgrade_study_mock: Mock, tmp_path: Pa # The task is called with a `TaskUpdateNotifier` a parameter. # Some messages could be emitted using the notifier (not a requirement). notifier = Mock() - with pytest.raises(Exception, match="INVALID_UPGRADE"): + with pytest.raises(MissingSectionHeaderError, match="File contains no section headers"): task(notifier) # The study must not be updated in the database diff --git a/tests/storage/web/__init__.py b/tests/storage/web/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/storage/web/__init__.py +++ b/tests/storage/web/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/storage/web/test_studies_bp.py b/tests/storage/web/test_studies_bp.py index 2ee0a9c7e2..33cedcc8df 100644 --- a/tests/storage/web/test_studies_bp.py +++ b/tests/storage/web/test_studies_bp.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import io import json import shutil @@ -12,9 +24,11 @@ from markupsafe import Markup from starlette.testclient import TestClient +from antarest.core.application import create_app_ctxt from antarest.core.config import Config, SecurityConfig, StorageConfig, WorkspaceConfig from antarest.core.exceptions import UrlNotMatchJsonDataError from antarest.core.filetransfer.model import FileDownloadDTO, FileDownloadTaskDTO +from antarest.core.filetransfer.service import FileTransferManager from antarest.core.jwt import JWTGroup, JWTUser from antarest.core.requests import RequestParameters from antarest.core.roles import RoleType @@ -36,6 +50,7 @@ TimeSerie, TimeSeriesData, ) +from antarest.study.service import StudyService from tests.storage.conftest import SimpleFileTransferManager from tests.storage.integration.conftest import UUID @@ -54,23 +69,29 @@ ) -@pytest.mark.unit_test -def test_server() -> None: - mock_service = Mock() - mock_service.get.return_value = {} - - app = FastAPI(title=__name__) +def create_test_client( + service: StudyService, file_transfer_manager: FileTransferManager = Mock(), raise_server_exceptions: bool = True +) -> TestClient: + app_ctxt = create_app_ctxt(FastAPI(title=__name__)) build_study_service( - app, + app_ctxt, cache=Mock(), task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_service, + file_transfer_manager=file_transfer_manager, + study_service=service, config=CONFIG, user_service=Mock(), matrix_service=Mock(spec=MatrixService), ) - client = TestClient(app) + return TestClient(app_ctxt.build(), raise_server_exceptions=raise_server_exceptions) + + +@pytest.mark.unit_test +def test_server() -> None: + mock_service = Mock() + mock_service.get.return_value = {} + + client = create_test_client(mock_service) client.get("/v1/studies/study1/raw?path=settings/general/params") mock_service.get.assert_called_once_with( @@ -83,18 +104,7 @@ def test_404() -> None: mock_storage_service = Mock() mock_storage_service.get.side_effect = UrlNotMatchJsonDataError("Test") - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app, raise_server_exceptions=False) + client = create_test_client(mock_storage_service, raise_server_exceptions=False) result = client.get("/v1/studies/study1/raw?path=settings/general/params") assert result.status_code == HTTPStatus.NOT_FOUND @@ -107,18 +117,7 @@ def test_server_with_parameters() -> None: mock_storage_service = Mock() mock_storage_service.get.return_value = {} - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app) + client = create_test_client(mock_storage_service) result = client.get("/v1/studies/study1/raw?depth=4") parameters = RequestParameters(user=ADMIN) @@ -146,18 +145,7 @@ def test_create_study(tmp_path: str, project_path) -> None: storage_service = Mock() storage_service.create_study.return_value = "my-uuid" - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app) + client = create_test_client(storage_service) result_right = client.post("/v1/studies?name=study2") @@ -181,18 +169,7 @@ def test_import_study_zipped(tmp_path: Path, project_path) -> None: study_uuid = str(uuid.uuid4()) mock_storage_service.import_study.return_value = study_uuid - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app) + client = create_test_client(mock_storage_service) result = client.post("/v1/studies") @@ -211,18 +188,7 @@ def test_copy_study(tmp_path: Path) -> None: storage_service = Mock() storage_service.copy_study.return_value = "/studies/study-copied" - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app) + client = create_test_client(storage_service) result = client.post(f"/v1/studies/{UUID}/copy?dest=study-copied") @@ -273,21 +239,10 @@ def test_list_studies(tmp_path: str) -> None: storage_service = Mock() storage_service.get_studies_information.return_value = studies - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app) + client = create_test_client(storage_service) result = client.get("/v1/studies") - assert {k: StudyMetadataDTO.parse_obj(v) for k, v in result.json().items()} == studies + assert {k: StudyMetadataDTO.model_validate(v) for k, v in result.json().items()} == studies def test_study_metadata(tmp_path: str) -> None: @@ -308,21 +263,10 @@ def test_study_metadata(tmp_path: str) -> None: storage_service = Mock() storage_service.get_study_information.return_value = study - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app) + client = create_test_client(storage_service) result = client.get("/v1/studies/1") - assert StudyMetadataDTO.parse_obj(result.json()) == study + assert StudyMetadataDTO.model_validate(result.json()) == study @pytest.mark.unit_test @@ -340,20 +284,8 @@ def test_export_files(tmp_path: Path) -> None: ) mock_storage_service.export_study.return_value = expected - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - # Simulate the download of data using a streamed request - client = TestClient(app) + client = create_test_client(mock_storage_service) if client.stream is False: # `TestClient` is based on `Requests` (old way before AntaREST-v2.15) # noinspection PyArgumentList @@ -370,7 +302,7 @@ def test_export_files(tmp_path: Path) -> None: res.raise_for_status() result = json.loads(data.getvalue()) - assert FileDownloadTaskDTO(**result).json() == expected.json() + assert FileDownloadTaskDTO(**result).model_dump_json() == expected.model_dump_json() mock_storage_service.export_study.assert_called_once_with(UUID, PARAMS, True) @@ -390,18 +322,7 @@ def test_export_params(tmp_path: Path) -> None: ) mock_storage_service.export_study.return_value = expected - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app) + client = create_test_client(mock_storage_service) client.get(f"/v1/studies/{UUID}/export?no_output=true") client.get(f"/v1/studies/{UUID}/export?no_output=false") mock_storage_service.export_study.assert_has_calls( @@ -416,18 +337,7 @@ def test_export_params(tmp_path: Path) -> None: def test_delete_study() -> None: mock_storage_service = Mock() - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app) + client = create_test_client(mock_storage_service) study_uuid = "8319b5f8-2a35-4984-9ace-2ab072bd6eef" client.delete(f"/v1/studies/{study_uuid}") @@ -440,18 +350,7 @@ def test_edit_study() -> None: mock_storage_service = Mock() mock_storage_service.edit_study.return_value = {} - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_storage_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app) + client = create_test_client(mock_storage_service) client.post("/v1/studies/my-uuid/raw?path=url/to/change", json={"Hello": "World"}) mock_storage_service.edit_study.assert_called_once_with("my-uuid", "url/to/change", {"Hello": "World"}, PARAMS) @@ -485,18 +384,7 @@ def test_validate() -> None: mock_service = Mock() mock_service.check_errors.return_value = ["Hello"] - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app, raise_server_exceptions=False) + client = create_test_client(mock_service, raise_server_exceptions=False) res = client.get("/v1/studies/my-uuid/raw/validate") assert res.json() == ["Hello"] @@ -539,24 +427,13 @@ def test_output_download(tmp_path: Path) -> None: synthesis=False, includeClusters=True, ) - - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=SimpleFileTransferManager(Config(storage=StorageConfig(tmp_dir=tmp_path))), - study_service=mock_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app, raise_server_exceptions=False) + ftm = SimpleFileTransferManager(Config(storage=StorageConfig(tmp_dir=tmp_path))) + client = create_test_client(mock_service, ftm, raise_server_exceptions=False) res = client.post( f"/v1/studies/{UUID}/outputs/my-output-id/download", - json=study_download.dict(), + json=study_download.model_dump(), ) - assert res.json() == output_data.dict() + assert res.json() == output_data.model_dump() @pytest.mark.unit_test @@ -576,18 +453,8 @@ def test_output_whole_download(tmp_path: Path) -> None: ) mock_service.export_output.return_value = expected - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=SimpleFileTransferManager(Config(storage=StorageConfig(tmp_dir=tmp_path))), - study_service=mock_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app, raise_server_exceptions=False) + ftm = SimpleFileTransferManager(Config(storage=StorageConfig(tmp_dir=tmp_path))) + client = create_test_client(mock_service, ftm, raise_server_exceptions=False) res = client.get( f"/v1/studies/{UUID}/outputs/{output_id}/export", ) @@ -600,18 +467,7 @@ def test_sim_reference() -> None: study_id = str(uuid.uuid4()) output_id = "my-output-id" - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app, raise_server_exceptions=False) + client = create_test_client(mock_service, raise_server_exceptions=False) res = client.put(f"/v1/studies/{study_id}/outputs/{output_id}/reference") mock_service.set_sim_reference.assert_called_once_with(study_id, output_id, True, PARAMS) assert res.status_code == HTTPStatus.OK @@ -644,38 +500,17 @@ def test_sim_result() -> None: ) ] mock_service.get_study_sim_result.return_value = result_data - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=mock_service, - config=CONFIG, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - ) - client = TestClient(app, raise_server_exceptions=False) + + client = create_test_client(mock_service, raise_server_exceptions=False) res = client.get(f"/v1/studies/{study_id}/outputs") - assert res.json() == result_data + actual_object = [StudySimResultDTO.parse_obj(res.json()[0])] + assert actual_object == result_data @pytest.mark.unit_test def test_study_permission_management(tmp_path: Path) -> None: storage_service = Mock() - - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=storage_service, - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - config=CONFIG, - ) - client = TestClient(app, raise_server_exceptions=False) + client = create_test_client(storage_service, raise_server_exceptions=False) result = client.put(f"/v1/studies/{UUID}/owner/2") storage_service.change_owner.assert_called_with( @@ -715,18 +550,7 @@ def test_study_permission_management(tmp_path: Path) -> None: @pytest.mark.unit_test def test_get_study_versions(tmp_path: Path) -> None: - app = FastAPI(title=__name__) - build_study_service( - app, - cache=Mock(), - task_service=Mock(), - file_transfer_manager=Mock(), - study_service=Mock(), - user_service=Mock(), - matrix_service=Mock(spec=MatrixService), - config=CONFIG, - ) - client = TestClient(app, raise_server_exceptions=False) + client = create_test_client(Mock(), raise_server_exceptions=False) result = client.get("/v1/studies/_versions") assert result.json() == list(STUDY_REFERENCE_TEMPLATES.keys()) diff --git a/tests/study/__init__.py b/tests/study/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/study/__init__.py +++ b/tests/study/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/study/business/__init__.py b/tests/study/business/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/study/business/__init__.py +++ b/tests/study/business/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/study/business/areas/__init__.py b/tests/study/business/areas/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/study/business/areas/__init__.py +++ b/tests/study/business/areas/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/study/business/areas/assets/__init__.py b/tests/study/business/areas/assets/__init__.py index 773f16ec60..3fff24b6fe 100644 --- a/tests/study/business/areas/assets/__init__.py +++ b/tests/study/business/areas/assets/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path ASSETS_DIR = Path(__file__).parent.resolve() diff --git a/tests/study/business/areas/test_st_storage_management.py b/tests/study/business/areas/test_st_storage_management.py index 74089bc7cd..56a42d88a0 100644 --- a/tests/study/business/areas/test_st_storage_management.py +++ b/tests/study/business/areas/test_st_storage_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import io import re @@ -64,6 +76,8 @@ "east": {"list": {}}, } +GEN = np.random.default_rng(1000) + class TestSTStorageManager: @pytest.fixture(name="study_storage_service") @@ -135,7 +149,7 @@ def test_get_all_storages__nominal_case( # Check actual = { - area_id: [form.dict(by_alias=True) for form in clusters_by_ids.values()] + area_id: [form.model_dump(by_alias=True) for form in clusters_by_ids.values()] for area_id, clusters_by_ids in all_storages.items() } expected = { @@ -241,7 +255,7 @@ def test_get_st_storages__nominal_case( groups = manager.get_storages(study, area_id="West") # Check - actual = [form.dict(by_alias=True) for form in groups] + actual = [form.model_dump(by_alias=True) for form in groups] expected = [ { "efficiency": 0.94, @@ -353,7 +367,7 @@ def test_get_st_storage__nominal_case( edit_form = manager.get_storage(study, area_id="West", storage_id="storage1") # Assert that the returned storage fields match the expected fields - actual = edit_form.dict(by_alias=True) + actual = edit_form.model_dump(by_alias=True) expected = { "efficiency": 0.94, "group": STStorageGroup.BATTERY, @@ -443,11 +457,11 @@ def test_update_storage__nominal_case( actual = {(call_args[0][0], tuple(call_args[0][1])) for call_args in file_study.tree.save.call_args_list} expected = { ( - str(0.0), + 0.0, ("input", "st-storage", "clusters", "West", "list", "storage1", "initiallevel"), ), ( - str(False), + False, ("input", "st-storage", "clusters", "West", "list", "storage1", "initialleveloptim"), ), } @@ -516,16 +530,15 @@ def test_get_matrix__nominal_case( # Prepare the mocks storage = study_storage_service.get_storage(study) file_study = storage.get_raw(study) - array = np.random.rand(8760, 1) * 1000 + array = GEN.random((8760, 1)) * 1000 + expected = { + "index": list(range(8760)), + "columns": [0], + "data": array.tolist(), + } file_study.tree = Mock( spec=FileStudyTree, - get=Mock( - return_value={ - "index": list(range(8760)), - "columns": [0], - "data": array.tolist(), - } - ), + get=Mock(return_value=expected), ) # Given the following arguments @@ -535,8 +548,8 @@ def test_get_matrix__nominal_case( matrix = manager.get_matrix(study, area_id="West", storage_id="storage1", ts_name="inflows") # Assert that the returned storage fields match the expected fields - actual = matrix.dict(by_alias=True) - assert actual == matrix + actual = matrix.model_dump(by_alias=True) + assert actual == expected def test_get_matrix__config_not_found( self, @@ -604,7 +617,7 @@ def test_get_matrix__invalid_matrix( # Prepare the mocks storage = study_storage_service.get_storage(study) file_study = storage.get_raw(study) - array = np.random.rand(365, 1) * 1000 + array = GEN.random((365, 1)) * 1000 matrix = { "index": list(range(365)), "columns": [0], @@ -637,11 +650,11 @@ def test_validate_matrices__nominal( # prepare some random matrices, insuring `lower_rule_curve` <= `upper_rule_curve` matrices = { - "pmax_injection": np.random.rand(8760, 1), - "pmax_withdrawal": np.random.rand(8760, 1), - "lower_rule_curve": np.random.rand(8760, 1) / 2, - "upper_rule_curve": np.random.rand(8760, 1) / 2 + 0.5, - "inflows": np.random.rand(8760, 1) * 1000, + "pmax_injection": GEN.random((8760, 1)), + "pmax_withdrawal": GEN.random((8760, 1)), + "lower_rule_curve": GEN.random((8760, 1)) / 2, + "upper_rule_curve": GEN.random((8760, 1)) / 2 + 0.5, + "inflows": GEN.random((8760, 1)) * 1000, } # Prepare the mocks @@ -674,11 +687,11 @@ def test_validate_matrices__out_of_bound( # prepare some random matrices, insuring `lower_rule_curve` <= `upper_rule_curve` matrices = { - "pmax_injection": np.random.rand(8760, 1) * 2 - 0.5, # out of bound - "pmax_withdrawal": np.random.rand(8760, 1) * 2 - 0.5, # out of bound - "lower_rule_curve": np.random.rand(8760, 1) * 2 - 0.5, # out of bound - "upper_rule_curve": np.random.rand(8760, 1) * 2 - 0.5, # out of bound - "inflows": np.random.rand(8760, 1) * 1000, + "pmax_injection": GEN.random((8760, 1)) * 2 - 0.5, # out of bound + "pmax_withdrawal": GEN.random((8760, 1)) * 2 - 0.5, # out of bound + "lower_rule_curve": GEN.random((8760, 1)) * 2 - 0.5, # out of bound + "upper_rule_curve": GEN.random((8760, 1)) * 2 - 0.5, # out of bound + "inflows": GEN.random((8760, 1)) * 1000, } # Prepare the mocks @@ -695,7 +708,6 @@ def tree_get(url: t.Sequence[str], **_: t.Any) -> t.MutableMapping[str, t.Any]: file_study = storage.get_raw(study) file_study.tree = Mock(spec=FileStudyTree, get=tree_get) - # Given the following arguments, the validation shouldn't raise any exception manager = STStorageManager(study_storage_service) # Run the method being tested and expect an exception @@ -704,29 +716,11 @@ def tree_get(url: t.Sequence[str], **_: t.Any) -> t.MutableMapping[str, t.Any]: match=re.escape("4 validation errors"), ) as ctx: manager.validate_matrices(study, area_id="West", storage_id="storage1") - errors = ctx.value.errors() - assert errors == [ - { - "loc": ("pmax_injection",), - "msg": "Matrix values should be between 0 and 1", - "type": "value_error", - }, - { - "loc": ("pmax_withdrawal",), - "msg": "Matrix values should be between 0 and 1", - "type": "value_error", - }, - { - "loc": ("lower_rule_curve",), - "msg": "Matrix values should be between 0 and 1", - "type": "value_error", - }, - { - "loc": ("upper_rule_curve",), - "msg": "Matrix values should be between 0 and 1", - "type": "value_error", - }, - ] + assert ctx.value.error_count() == 4 + for error in ctx.value.errors(): + assert error["type"] == "value_error" + assert error["msg"] == "Value error, Matrix values should be between 0 and 1" + assert error["loc"][0] in ["upper_rule_curve", "lower_rule_curve", "pmax_withdrawal", "pmax_injection"] # noinspection SpellCheckingInspection def test_validate_matrices__rule_curve( @@ -738,13 +732,15 @@ def test_validate_matrices__rule_curve( # The study must be fetched from the database study: RawStudy = db_session.query(Study).get(study_uuid) - # prepare some random matrices, insuring `lower_rule_curve` <= `upper_rule_curve` + # prepare some random matrices, not respecting `lower_rule_curve` <= `upper_rule_curve` + upper_curve = np.zeros((8760, 1)) + lower_curve = np.ones((8760, 1)) matrices = { - "pmax_injection": np.random.rand(8760, 1), - "pmax_withdrawal": np.random.rand(8760, 1), - "lower_rule_curve": np.random.rand(8760, 1), - "upper_rule_curve": np.random.rand(8760, 1), - "inflows": np.random.rand(8760, 1) * 1000, + "pmax_injection": GEN.random((8760, 1)), + "pmax_withdrawal": GEN.random((8760, 1)), + "lower_rule_curve": lower_curve, + "upper_rule_curve": upper_curve, + "inflows": GEN.random((8760, 1)) * 1000, } # Prepare the mocks @@ -761,7 +757,7 @@ def tree_get(url: t.Sequence[str], **_: t.Any) -> t.MutableMapping[str, t.Any]: file_study = storage.get_raw(study) file_study.tree = Mock(spec=FileStudyTree, get=tree_get) - # Given the following arguments, the validation shouldn't raise any exception + # Given the following arguments manager = STStorageManager(study_storage_service) # Run the method being tested and expect an exception @@ -771,6 +767,8 @@ def tree_get(url: t.Sequence[str], **_: t.Any) -> t.MutableMapping[str, t.Any]: ) as ctx: manager.validate_matrices(study, area_id="West", storage_id="storage1") error = ctx.value.errors()[0] - assert error["loc"] == ("__root__",) - assert "lower_rule_curve" in error["msg"] - assert "upper_rule_curve" in error["msg"] + assert error["type"] == "value_error" + assert ( + error["msg"] + == "Value error, Each 'lower_rule_curve' value must be lower or equal to each 'upper_rule_curve'" + ) diff --git a/tests/study/business/areas/test_thermal_management.py b/tests/study/business/areas/test_thermal_management.py index dd52ec9538..6bb2e34d7e 100644 --- a/tests/study/business/areas/test_thermal_management.py +++ b/tests/study/business/areas/test_thermal_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import re import shutil @@ -132,7 +144,7 @@ def test_get_cluster__study_legacy( form = manager.get_cluster(study, area_id="north", cluster_id="2 avail and must 1") # Assert that the returned fields match the expected fields - actual = form.dict(by_alias=True) + actual = form.model_dump(by_alias=True) expected = { "id": "2 avail and must 1", "group": ThermalClusterGroup.GAS, @@ -198,7 +210,7 @@ def test_get_clusters__study_legacy( groups = manager.get_clusters(study, area_id="north") # Assert that the returned fields match the expected fields - actual = [form.dict(by_alias=True) for form in groups] + actual = [form.model_dump(by_alias=True) for form in groups] expected = [ { "id": "2 avail and must 1", @@ -354,7 +366,7 @@ def test_create_cluster__study_legacy( form = manager.create_cluster(study, area_id="north", cluster_data=cluster_data) # Assert that the returned fields match the expected fields - actual = form.dict(by_alias=True) + actual = form.model_dump(by_alias=True) expected = { "co2": 12.59, "enabled": True, @@ -414,7 +426,7 @@ def test_update_cluster( # Assert that the returned fields match the expected fields form = manager.get_cluster(study, area_id="north", cluster_id="2 avail and must 1") - actual = form.dict(by_alias=True) + actual = form.model_dump(by_alias=True) expected = { "id": "2 avail and must 1", "group": ThermalClusterGroup.GAS, diff --git a/tests/study/business/test_all_optional_metaclass.py b/tests/study/business/test_all_optional_metaclass.py index 1c379f6460..b8d1197c5e 100644 --- a/tests/study/business/test_all_optional_metaclass.py +++ b/tests/study/business/test_all_optional_metaclass.py @@ -1,349 +1,60 @@ -import typing as t +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. -import pytest -from pydantic import BaseModel, Field, ValidationError +from pydantic import BaseModel, Field -from antarest.study.business.all_optional_meta import AllOptionalMetaclass +from antarest.study.business.all_optional_meta import all_optional_model, camel_case_model -# ============================================== -# Classic way to use default and optional values -# ============================================== +class Model(BaseModel): + float_with_default: float = 1 + float_without_default: float + boolean_with_default: bool = True + boolean_without_default: bool + field_with_alias: str = Field(default="default", alias="field-with-alias") -class ClassicModel(BaseModel): - mandatory: float = Field(ge=0, le=1) - mandatory_with_default: float = Field(ge=0, le=1, default=0.2) - mandatory_with_none: float = Field(ge=0, le=1, default=None) - optional: t.Optional[float] = Field(ge=0, le=1) - optional_with_default: t.Optional[float] = Field(ge=0, le=1, default=0.2) - optional_with_none: t.Optional[float] = Field(ge=0, le=1, default=None) - -class ClassicSubModel(ClassicModel): - pass - - -class TestClassicModel: - """ - Test that default and optional values work as expected. - """ - - @pytest.mark.parametrize("cls", [ClassicModel, ClassicSubModel]) - def test_classes(self, cls: t.Type[BaseModel]) -> None: - assert cls.__fields__["mandatory"].required is True - assert cls.__fields__["mandatory"].allow_none is False - assert cls.__fields__["mandatory"].default is None - assert cls.__fields__["mandatory"].default_factory is None # undefined - - assert cls.__fields__["mandatory_with_default"].required is False - assert cls.__fields__["mandatory_with_default"].allow_none is False - assert cls.__fields__["mandatory_with_default"].default == 0.2 - assert cls.__fields__["mandatory_with_default"].default_factory is None # undefined - - assert cls.__fields__["mandatory_with_none"].required is False - assert cls.__fields__["mandatory_with_none"].allow_none is True - assert cls.__fields__["mandatory_with_none"].default is None - assert cls.__fields__["mandatory_with_none"].default_factory is None # undefined - - assert cls.__fields__["optional"].required is False - assert cls.__fields__["optional"].allow_none is True - assert cls.__fields__["optional"].default is None - assert cls.__fields__["optional"].default_factory is None # undefined - - assert cls.__fields__["optional_with_default"].required is False - assert cls.__fields__["optional_with_default"].allow_none is True - assert cls.__fields__["optional_with_default"].default == 0.2 - assert cls.__fields__["optional_with_default"].default_factory is None # undefined - - assert cls.__fields__["optional_with_none"].required is False - assert cls.__fields__["optional_with_none"].allow_none is True - assert cls.__fields__["optional_with_none"].default is None - assert cls.__fields__["optional_with_none"].default_factory is None # undefined - - @pytest.mark.parametrize("cls", [ClassicModel, ClassicSubModel]) - def test_initialization(self, cls: t.Type[ClassicModel]) -> None: - # We can build a model without providing optional or default values. - # The initialized value will be the default value or `None` for optional values. - obj = cls(mandatory=0.5) - assert obj.mandatory == 0.5 - assert obj.mandatory_with_default == 0.2 - assert obj.mandatory_with_none is None - assert obj.optional is None - assert obj.optional_with_default == 0.2 - assert obj.optional_with_none is None - - # We must provide a value for mandatory fields. - with pytest.raises(ValidationError): - cls() - - @pytest.mark.parametrize("cls", [ClassicModel, ClassicSubModel]) - def test_validation(self, cls: t.Type[ClassicModel]) -> None: - # We CANNOT use `None` as a value for a field with a default value. - with pytest.raises(ValidationError): - cls(mandatory=0.5, mandatory_with_default=None) - - # We can use `None` as a value for optional fields with default value. - cls(mandatory=0.5, optional_with_default=None) - - # We can validate a model with valid values. - cls( - mandatory=0.5, - mandatory_with_default=0.2, - mandatory_with_none=0.2, - optional=0.5, - optional_with_default=0.2, - optional_with_none=0.2, - ) - - # We CANNOT validate a model with invalid values. - with pytest.raises(ValidationError): - cls(mandatory=2) - - with pytest.raises(ValidationError): - cls(mandatory=0.5, mandatory_with_default=2) - - with pytest.raises(ValidationError): - cls(mandatory=0.5, mandatory_with_none=2) - - with pytest.raises(ValidationError): - cls(mandatory=0.5, optional=2) - - with pytest.raises(ValidationError): - cls(mandatory=0.5, optional_with_default=2) - - with pytest.raises(ValidationError): - cls(mandatory=0.5, optional_with_none=2) - - -# ========================== -# Using AllOptionalMetaclass -# ========================== - - -class AllOptionalModel(BaseModel, metaclass=AllOptionalMetaclass): - mandatory: float = Field(ge=0, le=1) - mandatory_with_default: float = Field(ge=0, le=1, default=0.2) - mandatory_with_none: float = Field(ge=0, le=1, default=None) - optional: t.Optional[float] = Field(ge=0, le=1) - optional_with_default: t.Optional[float] = Field(ge=0, le=1, default=0.2) - optional_with_none: t.Optional[float] = Field(ge=0, le=1, default=None) - - -class AllOptionalSubModel(AllOptionalModel): - pass - - -class InheritedAllOptionalModel(ClassicModel, metaclass=AllOptionalMetaclass): - pass - - -class TestAllOptionalModel: - """ - Test that AllOptionalMetaclass works with base classes. - """ - - @pytest.mark.parametrize("cls", [AllOptionalModel, AllOptionalSubModel, InheritedAllOptionalModel]) - def test_classes(self, cls: t.Type[BaseModel]) -> None: - assert cls.__fields__["mandatory"].required is False - assert cls.__fields__["mandatory"].allow_none is True - assert cls.__fields__["mandatory"].default is None - assert cls.__fields__["mandatory"].default_factory is None # undefined - - assert cls.__fields__["mandatory_with_default"].required is False - assert cls.__fields__["mandatory_with_default"].allow_none is True - assert cls.__fields__["mandatory_with_default"].default == 0.2 - assert cls.__fields__["mandatory_with_default"].default_factory is None # undefined - - assert cls.__fields__["mandatory_with_none"].required is False - assert cls.__fields__["mandatory_with_none"].allow_none is True - assert cls.__fields__["mandatory_with_none"].default is None - assert cls.__fields__["mandatory_with_none"].default_factory is None # undefined - - assert cls.__fields__["optional"].required is False - assert cls.__fields__["optional"].allow_none is True - assert cls.__fields__["optional"].default is None - assert cls.__fields__["optional"].default_factory is None # undefined - - assert cls.__fields__["optional_with_default"].required is False - assert cls.__fields__["optional_with_default"].allow_none is True - assert cls.__fields__["optional_with_default"].default == 0.2 - assert cls.__fields__["optional_with_default"].default_factory is None # undefined - - assert cls.__fields__["optional_with_none"].required is False - assert cls.__fields__["optional_with_none"].allow_none is True - assert cls.__fields__["optional_with_none"].default is None - assert cls.__fields__["optional_with_none"].default_factory is None # undefined - - @pytest.mark.parametrize("cls", [AllOptionalModel, AllOptionalSubModel, InheritedAllOptionalModel]) - def test_initialization(self, cls: t.Type[AllOptionalModel]) -> None: - # We can build a model without providing values. - # The initialized value will be the default value or `None` for optional values. - # Note that the mandatory fields are not required anymore, and can be `None`. - obj = cls() - assert obj.mandatory is None - assert obj.mandatory_with_default == 0.2 - assert obj.mandatory_with_none is None - assert obj.optional is None - assert obj.optional_with_default == 0.2 - assert obj.optional_with_none is None - - # If we convert the model to a dictionary, without `None` values, - # we should have a dictionary with default values only. - actual = obj.dict(exclude_none=True) - expected = { - "mandatory_with_default": 0.2, - "optional_with_default": 0.2, - } - assert actual == expected - - @pytest.mark.parametrize("cls", [AllOptionalModel, AllOptionalSubModel, InheritedAllOptionalModel]) - def test_validation(self, cls: t.Type[AllOptionalModel]) -> None: - # We can use `None` as a value for all fields. - cls(mandatory=None) - cls(mandatory_with_default=None) - cls(mandatory_with_none=None) - cls(optional=None) - cls(optional_with_default=None) - cls(optional_with_none=None) - - # We can validate a model with valid values. - cls( - mandatory=0.5, - mandatory_with_default=0.2, - mandatory_with_none=0.2, - optional=0.5, - optional_with_default=0.2, - optional_with_none=0.2, - ) - - # We CANNOT validate a model with invalid values. - with pytest.raises(ValidationError): - cls(mandatory=2) - - with pytest.raises(ValidationError): - cls(mandatory_with_default=2) - - with pytest.raises(ValidationError): - cls(mandatory_with_none=2) - - with pytest.raises(ValidationError): - cls(optional=2) - - with pytest.raises(ValidationError): - cls(optional_with_default=2) - - with pytest.raises(ValidationError): - cls(optional_with_none=2) - - -# The `use_none` keyword argument is set to `True` to allow the use of `None` -# as a default value for the fields of the model. - - -class UseNoneModel(BaseModel, metaclass=AllOptionalMetaclass, use_none=True): - mandatory: float = Field(ge=0, le=1) - mandatory_with_default: float = Field(ge=0, le=1, default=0.2) - mandatory_with_none: float = Field(ge=0, le=1, default=None) - optional: t.Optional[float] = Field(ge=0, le=1) - optional_with_default: t.Optional[float] = Field(ge=0, le=1, default=0.2) - optional_with_none: t.Optional[float] = Field(ge=0, le=1, default=None) - - -class UseNoneSubModel(UseNoneModel): +@all_optional_model +class OptionalModel(Model): pass -class InheritedUseNoneModel(ClassicModel, metaclass=AllOptionalMetaclass, use_none=True): +@all_optional_model +@camel_case_model +class OptionalCamelCaseModel(Model): pass -class TestUseNoneModel: - @pytest.mark.parametrize("cls", [UseNoneModel, UseNoneSubModel, InheritedUseNoneModel]) - def test_classes(self, cls: t.Type[BaseModel]) -> None: - assert cls.__fields__["mandatory"].required is False - assert cls.__fields__["mandatory"].allow_none is True - assert cls.__fields__["mandatory"].default is None - assert cls.__fields__["mandatory"].default_factory is None # undefined - - assert cls.__fields__["mandatory_with_default"].required is False - assert cls.__fields__["mandatory_with_default"].allow_none is True - assert cls.__fields__["mandatory_with_default"].default is None - assert cls.__fields__["mandatory_with_default"].default_factory is None # undefined - - assert cls.__fields__["mandatory_with_none"].required is False - assert cls.__fields__["mandatory_with_none"].allow_none is True - assert cls.__fields__["mandatory_with_none"].default is None - assert cls.__fields__["mandatory_with_none"].default_factory is None # undefined - - assert cls.__fields__["optional"].required is False - assert cls.__fields__["optional"].allow_none is True - assert cls.__fields__["optional"].default is None - assert cls.__fields__["optional"].default_factory is None # undefined - - assert cls.__fields__["optional_with_default"].required is False - assert cls.__fields__["optional_with_default"].allow_none is True - assert cls.__fields__["optional_with_default"].default is None - assert cls.__fields__["optional_with_default"].default_factory is None # undefined - - assert cls.__fields__["optional_with_none"].required is False - assert cls.__fields__["optional_with_none"].allow_none is True - assert cls.__fields__["optional_with_none"].default is None - assert cls.__fields__["optional_with_none"].default_factory is None # undefined - - @pytest.mark.parametrize("cls", [UseNoneModel, UseNoneSubModel, InheritedUseNoneModel]) - def test_initialization(self, cls: t.Type[UseNoneModel]) -> None: - # We can build a model without providing values. - # The initialized value will be the default value or `None` for optional values. - # Note that the mandatory fields are not required anymore, and can be `None`. - obj = cls() - assert obj.mandatory is None - assert obj.mandatory_with_default is None - assert obj.mandatory_with_none is None - assert obj.optional is None - assert obj.optional_with_default is None - assert obj.optional_with_none is None - - # If we convert the model to a dictionary, without `None` values, - # we should have an empty dictionary. - actual = obj.dict(exclude_none=True) - expected = {} - assert actual == expected - - @pytest.mark.parametrize("cls", [UseNoneModel, UseNoneSubModel, InheritedUseNoneModel]) - def test_validation(self, cls: t.Type[UseNoneModel]) -> None: - # We can use `None` as a value for all fields. - cls(mandatory=None) - cls(mandatory_with_default=None) - cls(mandatory_with_none=None) - cls(optional=None) - cls(optional_with_default=None) - cls(optional_with_none=None) - - # We can validate a model with valid values. - cls( - mandatory=0.5, - mandatory_with_default=0.2, - mandatory_with_none=0.2, - optional=0.5, - optional_with_default=0.2, - optional_with_none=0.2, - ) - - # We CANNOT validate a model with invalid values. - with pytest.raises(ValidationError): - cls(mandatory=2) - - with pytest.raises(ValidationError): - cls(mandatory_with_default=2) - - with pytest.raises(ValidationError): - cls(mandatory_with_none=2) - - with pytest.raises(ValidationError): - cls(optional=2) - - with pytest.raises(ValidationError): - cls(optional_with_default=2) - - with pytest.raises(ValidationError): - cls(optional_with_none=2) +def test_model() -> None: + optional_model = OptionalModel() + assert optional_model.float_with_default is None + assert optional_model.float_without_default is None + assert optional_model.boolean_with_default is None + assert optional_model.boolean_without_default is None + assert optional_model.field_with_alias is None + + optional_model = OptionalModel(boolean_with_default=False) + assert optional_model.float_with_default is None + assert optional_model.float_without_default is None + assert optional_model.boolean_with_default is False + assert optional_model.boolean_without_default is None + assert optional_model.field_with_alias is None + + # build with alias should succeed + args = {"field-with-alias": "test"} + optional_model = OptionalModel(**args) + assert optional_model.field_with_alias == "test" + + # build with camel_case should succeed + args = {"fieldWithAlias": "test"} + camel_case_model = OptionalCamelCaseModel(**args) + assert camel_case_model.field_with_alias == "test" diff --git a/tests/study/business/test_allocation_manager.py b/tests/study/business/test_allocation_manager.py index 82f49b2ec4..a7fec22f2e 100644 --- a/tests/study/business/test_allocation_manager.py +++ b/tests/study/business/test_allocation_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import re import uuid @@ -35,7 +47,7 @@ def test_base(self): def test_camel_case(self): field = AllocationField(areaId="NORTH", coefficient=1) - assert field.dict(by_alias=True) == { + assert field.model_dump(by_alias=True) == { "areaId": "NORTH", "coefficient": 1, } diff --git a/tests/study/business/test_binding_constraint_management.py b/tests/study/business/test_binding_constraint_management.py index 17bf1628ec..dcec736496 100644 --- a/tests/study/business/test_binding_constraint_management.py +++ b/tests/study/business/test_binding_constraint_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import typing as t import pytest diff --git a/tests/study/business/test_correlation_manager.py b/tests/study/business/test_correlation_manager.py index e772b2f27f..56d66c9e47 100644 --- a/tests/study/business/test_correlation_manager.py +++ b/tests/study/business/test_correlation_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import uuid from unittest.mock import Mock, patch diff --git a/tests/study/business/test_district_manager.py b/tests/study/business/test_district_manager.py index 5411145882..51c040302d 100644 --- a/tests/study/business/test_district_manager.py +++ b/tests/study/business/test_district_manager.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock, patch import pytest diff --git a/tests/study/business/test_matrix_management.py b/tests/study/business/test_matrix_management.py index c52f84b411..11bf3dfd2b 100644 --- a/tests/study/business/test_matrix_management.py +++ b/tests/study/business/test_matrix_management.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from typing import List, Tuple import pandas as pd diff --git a/tests/study/storage/__init__.py b/tests/study/storage/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/study/storage/__init__.py +++ b/tests/study/storage/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/study/storage/rawstudy/__init__.py b/tests/study/storage/rawstudy/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/study/storage/rawstudy/__init__.py +++ b/tests/study/storage/rawstudy/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/study/storage/rawstudy/test_raw_study_service.py b/tests/study/storage/rawstudy/test_raw_study_service.py index bc09fc0a3f..acf6557bd4 100644 --- a/tests/study/storage/rawstudy/test_raw_study_service.py +++ b/tests/study/storage/rawstudy/test_raw_study_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import typing as t import zipfile diff --git a/tests/study/storage/test_abstract_storage_service.py b/tests/study/storage/test_abstract_storage_service.py index 09d82ea083..97793c206d 100644 --- a/tests/study/storage/test_abstract_storage_service.py +++ b/tests/study/storage/test_abstract_storage_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import zipfile from pathlib import Path diff --git a/tests/study/storage/test_study_version_upgrader.py b/tests/study/storage/test_study_version_upgrader.py deleted file mode 100644 index 97c9a479c6..0000000000 --- a/tests/study/storage/test_study_version_upgrader.py +++ /dev/null @@ -1,117 +0,0 @@ -from pathlib import Path - -import pytest - -from antarest.core.exceptions import StudyValidationError -from antarest.study.storage.study_upgrader import ( - UPGRADE_METHODS, - InvalidUpgrade, - can_upgrade_version, - find_next_version, - get_current_version, -) - - -class TestFindNextVersion: - @pytest.mark.parametrize( - "from_version, expected", - [ - (UPGRADE_METHODS[0].old, UPGRADE_METHODS[0].new), - (UPGRADE_METHODS[-1].old, UPGRADE_METHODS[-1].new), - (UPGRADE_METHODS[-1].new, ""), - ("3.14", ""), - ], - ) - def test_find_next_version(self, from_version: str, expected: str): - actual = find_next_version(from_version) - assert actual == expected - - -class TestCanUpgradeVersion: - @pytest.mark.parametrize( - "from_version, to_version", - [ - pytest.param("700", "710"), - pytest.param( - "123", - "123", - marks=pytest.mark.xfail( - reason="same versions", - raises=InvalidUpgrade, - strict=True, - ), - ), - pytest.param( - "000", - "123", - marks=pytest.mark.xfail( - reason="version '000' not in 'old' versions", - raises=InvalidUpgrade, - strict=True, - ), - ), - pytest.param( - "700", - "999", - marks=pytest.mark.xfail( - reason="version '999' not in 'new' versions", - raises=InvalidUpgrade, - strict=True, - ), - ), - pytest.param( - "720", - "710", - marks=pytest.mark.xfail( - reason="versions inverted", - raises=InvalidUpgrade, - strict=True, - ), - ), - pytest.param( - 800, - "456", - marks=pytest.mark.xfail( - reason="integer version 800 not in 'old' versions", - raises=InvalidUpgrade, - strict=True, - ), - ), - pytest.param( - "700", - 800, - marks=pytest.mark.xfail( - reason="integer version 800 not in 'new' versions", - raises=InvalidUpgrade, - strict=True, - ), - ), - ], - ) - def test_can_upgrade_version(self, from_version: str, to_version: str): - can_upgrade_version(from_version, to_version) - - -class TestGetCurrentVersion: - @pytest.mark.parametrize( - "version", - [ - pytest.param("710"), - pytest.param(" 71"), - pytest.param(" 7.1 "), - pytest.param( - "", - marks=pytest.mark.xfail( - reason="empty version", - raises=StudyValidationError, - strict=True, - ), - ), - ], - ) - def test_get_current_version(self, tmp_path: Path, version: str): - # prepare the "study.antares" file - study_antares_path = tmp_path.joinpath("study.antares") - study_antares_path.write_text(f"version = {version}", encoding="utf-8") - actual = get_current_version(tmp_path) - assert actual == version.strip(), f"{actual=}" diff --git a/tests/study/storage/variantstudy/__init__.py b/tests/study/storage/variantstudy/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/study/storage/variantstudy/__init__.py +++ b/tests/study/storage/variantstudy/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/study/storage/variantstudy/business/__init__.py b/tests/study/storage/variantstudy/business/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/study/storage/variantstudy/business/__init__.py +++ b/tests/study/storage/variantstudy/business/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/study/storage/variantstudy/business/test_matrix_constants_generator.py b/tests/study/storage/variantstudy/business/test_matrix_constants_generator.py index da5ebd91d6..f47bc75a8b 100644 --- a/tests/study/storage/variantstudy/business/test_matrix_constants_generator.py +++ b/tests/study/storage/variantstudy/business/test_matrix_constants_generator.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import numpy as np from antarest.matrixstore.repository import MatrixContentRepository diff --git a/tests/study/storage/variantstudy/model/__init__.py b/tests/study/storage/variantstudy/model/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/study/storage/variantstudy/model/__init__.py +++ b/tests/study/storage/variantstudy/model/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/study/storage/variantstudy/model/test_dbmodel.py b/tests/study/storage/variantstudy/model/test_dbmodel.py index 6ed1bbcba1..aff5686dcb 100644 --- a/tests/study/storage/variantstudy/model/test_dbmodel.py +++ b/tests/study/storage/variantstudy/model/test_dbmodel.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import json import typing as t @@ -152,7 +164,7 @@ def test_init(self, db_session: Session, variant_study_id: str) -> None: # check CommandBlock.to_dto() dto = obj.to_dto() # note: it is easier to compare the dict representation of the DTO - assert dto.dict() == { + assert dto.model_dump() == { "id": command_id, "action": command, "args": json.loads(args), diff --git a/tests/study/storage/variantstudy/test_snapshot_generator.py b/tests/study/storage/variantstudy/test_snapshot_generator.py index e9de3da131..0f2d4775ef 100644 --- a/tests/study/storage/variantstudy/test_snapshot_generator.py +++ b/tests/study/storage/variantstudy/test_snapshot_generator.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import configparser import datetime import json @@ -851,7 +863,7 @@ def test_generate__nominal_case( assert len(db_recorder.sql_statements) == 5, str(db_recorder) # Check: the variant generation must succeed. - assert results.dict() == { + assert results.model_dump() == { "success": True, "details": [ { @@ -1036,7 +1048,7 @@ def test_generate__with_denormalize_true( ) # Check the results - assert results.dict() == { + assert results.model_dump() == { "success": True, "details": [ { @@ -1159,7 +1171,7 @@ def test_generate__notification_failure( ) # Check the results - assert results.dict() == { + assert results.model_dump() == { "success": True, "details": [ { @@ -1241,7 +1253,7 @@ def test_generate__variant_of_variant( ) # Check the results - assert results.dict() == { + assert results.model_dump() == { "success": True, "details": [ { diff --git a/tests/study/storage/variantstudy/test_variant_study_service.py b/tests/study/storage/variantstudy/test_variant_study_service.py index 9dce83e735..80a3de302d 100644 --- a/tests/study/storage/variantstudy/test_variant_study_service.py +++ b/tests/study/storage/variantstudy/test_variant_study_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import re from pathlib import Path diff --git a/tests/study/test_model.py b/tests/study/test_model.py index 04785a28df..c93bdacc49 100644 --- a/tests/study/test_model.py +++ b/tests/study/test_model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + """ Test the database model. """ diff --git a/tests/study/test_repository.py b/tests/study/test_repository.py index f7314cdaaa..bcdcea759b 100644 --- a/tests/study/test_repository.py +++ b/tests/study/test_repository.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import typing as t from unittest.mock import Mock @@ -905,9 +917,9 @@ def test_get_all__non_admin_permissions_filter( user_2 = User(id=102, name="user2") user_3 = User(id=103, name="user3") - group_1 = Group(id=101, name="group1") - group_2 = Group(id=102, name="group2") - group_3 = Group(id=103, name="group3") + group_1 = Group(id="101", name="group1") + group_2 = Group(id="102", name="group2") + group_3 = Group(id="103", name="group3") user_groups_mapping = {101: [group_2.id], 102: [group_1.id], 103: []} @@ -1179,23 +1191,23 @@ def test_update_tags( (None, [], False, ["5", "6"]), (None, [], True, ["1", "2", "3", "4", "7", "8"]), (None, [], None, ["1", "2", "3", "4", "5", "6", "7", "8"]), - (None, [1, 3, 5, 7], False, ["5"]), - (None, [1, 3, 5, 7], True, ["1", "3", "7"]), - (None, [1, 3, 5, 7], None, ["1", "3", "5", "7"]), + (None, ["1", "3", "5", "7"], False, ["5"]), + (None, ["1", "3", "5", "7"], True, ["1", "3", "7"]), + (None, ["1", "3", "5", "7"], None, ["1", "3", "5", "7"]), (True, [], False, ["5"]), (True, [], True, ["1", "2", "3", "4", "8"]), (True, [], None, ["1", "2", "3", "4", "5", "8"]), - (True, [1, 3, 5, 7], False, ["5"]), - (True, [1, 3, 5, 7], True, ["1", "3"]), - (True, [1, 3, 5, 7], None, ["1", "3", "5"]), - (True, [2, 4, 6, 8], True, ["2", "4", "8"]), - (True, [2, 4, 6, 8], None, ["2", "4", "8"]), + (True, ["1", "3", "5", "7"], False, ["5"]), + (True, ["1", "3", "5", "7"], True, ["1", "3"]), + (True, ["1", "3", "5", "7"], None, ["1", "3", "5"]), + (True, ["2", "4", "6", "8"], True, ["2", "4", "8"]), + (True, ["2", "4", "6", "8"], None, ["2", "4", "8"]), (False, [], False, ["6"]), (False, [], True, ["7"]), (False, [], None, ["6", "7"]), - (False, [1, 3, 5, 7], False, []), - (False, [1, 3, 5, 7], True, ["7"]), - (False, [1, 3, 5, 7], None, ["7"]), + (False, ["1", "3", "5", "7"], False, []), + (False, ["1", "3", "5", "7"], True, ["7"]), + (False, ["1", "3", "5", "7"], None, ["7"]), ], ) def test_count_studies__general_case( @@ -1209,14 +1221,14 @@ def test_count_studies__general_case( icache: Mock = Mock(spec=ICache) repository = StudyMetadataRepository(cache_service=icache, session=db_session) - study_1 = VariantStudy(id=1, name="study-1") - study_2 = VariantStudy(id=2, name="study-2") - study_3 = VariantStudy(id=3, name="study-3") - study_4 = VariantStudy(id=4, name="study-4") - study_5 = RawStudy(id=5, name="study-5", missing=datetime.datetime.now(), workspace=DEFAULT_WORKSPACE_NAME) - study_6 = RawStudy(id=6, name="study-6", missing=datetime.datetime.now(), workspace=test_workspace) - study_7 = RawStudy(id=7, name="study-7", missing=None, workspace=test_workspace) - study_8 = RawStudy(id=8, name="study-8", missing=None, workspace=DEFAULT_WORKSPACE_NAME) + study_1 = VariantStudy(id="1", name="study-1") + study_2 = VariantStudy(id="2", name="study-2") + study_3 = VariantStudy(id="3", name="study-3") + study_4 = VariantStudy(id="4", name="study-4") + study_5 = RawStudy(id="5", name="study-5", missing=datetime.datetime.now(), workspace=DEFAULT_WORKSPACE_NAME) + study_6 = RawStudy(id="6", name="study-6", missing=datetime.datetime.now(), workspace=test_workspace) + study_7 = RawStudy(id="7", name="study-7", missing=None, workspace=test_workspace) + study_8 = RawStudy(id="8", name="study-8", missing=None, workspace=DEFAULT_WORKSPACE_NAME) db_session.add_all([study_1, study_2, study_3, study_4, study_5, study_6, study_7, study_8]) db_session.commit() diff --git a/tests/study/test_service.py b/tests/study/test_service.py index 274525021f..8192104209 100644 --- a/tests/study/test_service.py +++ b/tests/study/test_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path import pytest diff --git a/tests/test_front.py b/tests/test_front.py new file mode 100644 index 0000000000..5046a868cf --- /dev/null +++ b/tests/test_front.py @@ -0,0 +1,111 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + +from pathlib import Path + +import pytest +from fastapi import FastAPI +from starlette.testclient import TestClient + +from antarest.front import RedirectMiddleware, add_front_app + + +@pytest.fixture +def base_back_app() -> FastAPI: + """ + A simple app which has only one backend endpoint + """ + app = FastAPI(title=__name__) + + @app.get(path="/api/a-backend-endpoint") + def get_from_api() -> str: + return "back" + + return app + + +@pytest.fixture +def resources_dir(tmp_path: Path) -> Path: + resource_dir = tmp_path / "resources" + resource_dir.mkdir() + webapp_dir = resource_dir / "webapp" + webapp_dir.mkdir() + with open(webapp_dir / "index.html", mode="w") as f: + f.write("index") + with open(webapp_dir / "front.css", mode="w") as f: + f.write("css") + return resource_dir + + +@pytest.fixture +def app_with_home(base_back_app) -> FastAPI: + """ + A simple app which has only a home endpoint and one backend endpoint + """ + + @base_back_app.get(path="/") + def home() -> str: + return "home" + + return base_back_app + + +@pytest.fixture +def redirect_app(app_with_home: FastAPI) -> FastAPI: + """ + Same as app with redirect middleware + """ + route_paths = [r.path for r in app_with_home.routes] # type: ignore + app_with_home.add_middleware(RedirectMiddleware, route_paths=route_paths) + return app_with_home + + +def test_redirect_middleware_does_not_modify_home(redirect_app: FastAPI) -> None: + client = TestClient(redirect_app) + response = client.get("/") + assert response.status_code == 200 + assert response.json() == "home" + + +def test_redirect_middleware_redirects_unknown_routes_to_home(redirect_app: FastAPI) -> None: + client = TestClient(redirect_app) + response = client.get("/a-front-route") + assert response.status_code == 200 + assert response.json() == "home" + + +def test_redirect_middleware_does_not_redirect_backend_routes(redirect_app: FastAPI) -> None: + client = TestClient(redirect_app) + response = client.get("/api/a-backend-endpoint") + assert response.status_code == 200 + assert response.json() == "back" + + +def test_frontend_paths(base_back_app, resources_dir: Path) -> None: + add_front_app(base_back_app, resources_dir, "/api") + client = TestClient(base_back_app) + + config_response = client.get("/config.json") + assert config_response.status_code == 200 + assert config_response.json() == {"restEndpoint": "/api", "wsEndpoint": "/api/ws"} + + index_response = client.get("/index.html") + assert index_response.status_code == 200 + assert index_response.text == "index" + + front_route_response = client.get("/any-route") + assert front_route_response.status_code == 200 + assert front_route_response.text == "index" + + front_static_file_response = client.get("/static/front.css") + assert front_static_file_response.status_code == 200 + assert front_static_file_response.text == "css" diff --git a/tests/test_resources.py b/tests/test_resources.py index 330116e507..8c9abf46a6 100644 --- a/tests/test_resources.py +++ b/tests/test_resources.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import pathlib import zipfile from typing import Sequence diff --git a/tests/variantstudy/__init__.py b/tests/variantstudy/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/variantstudy/__init__.py +++ b/tests/variantstudy/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/variantstudy/assets/__init__.py b/tests/variantstudy/assets/__init__.py index 773f16ec60..3fff24b6fe 100644 --- a/tests/variantstudy/assets/__init__.py +++ b/tests/variantstudy/assets/__init__.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path ASSETS_DIR = Path(__file__).parent.resolve() diff --git a/tests/variantstudy/conftest.py b/tests/variantstudy/conftest.py index b08851b07b..beaaf34065 100644 --- a/tests/variantstudy/conftest.py +++ b/tests/variantstudy/conftest.py @@ -1,4 +1,17 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import hashlib +import re import typing as t import zipfile from pathlib import Path @@ -8,7 +21,7 @@ import numpy.typing as npt import pytest -from antarest.study.storage.study_upgrader import get_current_version +from antarest.core.exceptions import StudyValidationError if t.TYPE_CHECKING: # noinspection PyPackageRequirements @@ -163,7 +176,7 @@ def empty_study_fixture(request: "SubRequest", tmp_path: Path, matrix_service: M zip_empty_study.extractall(empty_study_destination_path) # Detect the version of the study from `study.antares` file. - version = get_current_version(empty_study_destination_path) + version = _get_current_version(empty_study_destination_path) config = FileStudyTreeConfig( study_path=empty_study_destination_path, @@ -185,3 +198,16 @@ def empty_study_fixture(request: "SubRequest", tmp_path: Path, matrix_service: M ), ) return file_study + + +def _get_current_version(study_path: Path) -> str: + antares_path = study_path / "study.antares" + pattern = r"version\s*=\s*([\w.-]+)\s*" + with antares_path.open(encoding="utf-8") as lines: + for line in lines: + if match := re.fullmatch(pattern, line): + return match[1].rstrip() + raise StudyValidationError( + f"File parsing error: the version number is not found in '{antares_path}'" + f" or does not match the expected '{pattern}' format." + ) diff --git a/tests/variantstudy/model/__init__.py b/tests/variantstudy/model/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/variantstudy/model/__init__.py +++ b/tests/variantstudy/model/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/variantstudy/model/command/__init__.py b/tests/variantstudy/model/command/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/variantstudy/model/command/__init__.py +++ b/tests/variantstudy/model/command/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/variantstudy/model/command/helpers.py b/tests/variantstudy/model/command/helpers.py index d2dfd55c1e..4e6a792c61 100644 --- a/tests/variantstudy/model/command/helpers.py +++ b/tests/variantstudy/model/command/helpers.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path diff --git a/tests/variantstudy/model/command/test_alias_decoder.py b/tests/variantstudy/model/command/test_alias_decoder.py index f295301dd1..193c13a151 100644 --- a/tests/variantstudy/model/command/test_alias_decoder.py +++ b/tests/variantstudy/model/command/test_alias_decoder.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock, patch import pytest diff --git a/tests/variantstudy/model/command/test_create_area.py b/tests/variantstudy/model/command/test_create_area.py index 2036b12b93..0bb8c104c7 100644 --- a/tests/variantstudy/model/command/test_create_area.py +++ b/tests/variantstudy/model/command/test_create_area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import configparser from unittest.mock import Mock diff --git a/tests/variantstudy/model/command/test_create_cluster.py b/tests/variantstudy/model/command/test_create_cluster.py index 6554bbe6c2..35c21e91ab 100644 --- a/tests/variantstudy/model/command/test_create_cluster.py +++ b/tests/variantstudy/model/command/test_create_cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import configparser import re @@ -16,11 +28,13 @@ from antarest.study.storage.variantstudy.model.command.update_config import UpdateConfig from antarest.study.storage.variantstudy.model.command_context import CommandContext +GEN = np.random.default_rng(1000) + class TestCreateCluster: def test_init(self, command_context: CommandContext): - prepro = np.random.rand(365, 6).tolist() - modulation = np.random.rand(8760, 4).tolist() + prepro = GEN.random((365, 6)).tolist() + modulation = GEN.random((8760, 4)).tolist() cl = CreateCluster( area_id="foo", cluster_name="Cluster1", @@ -40,7 +54,7 @@ def test_init(self, command_context: CommandContext): modulation_id = command_context.matrix_service.create(modulation) assert cl.area_id == "foo" assert cl.cluster_name == "Cluster1" - assert cl.parameters == {"group": "Nuclear", "nominalcapacity": "2400", "unitcount": "2"} + assert cl.parameters == {"group": "Nuclear", "nominalcapacity": 2400, "unitcount": 2} assert cl.prepro == f"matrix://{prepro_id}" assert cl.modulation == f"matrix://{modulation_id}" @@ -73,8 +87,8 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): "market-bid-cost": "30", } - prepro = np.random.rand(365, 6).tolist() - modulation = np.random.rand(8760, 4).tolist() + prepro = GEN.random((365, 6)).tolist() + modulation = GEN.random((8760, 4)).tolist() command = CreateCluster( area_id=area_id, cluster_name=cluster_name, @@ -135,8 +149,8 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): ) def test_to_dto(self, command_context: CommandContext): - prepro = np.random.rand(365, 6).tolist() - modulation = np.random.rand(8760, 4).tolist() + prepro = GEN.random((365, 6)).tolist() + modulation = GEN.random((8760, 4)).tolist() command = CreateCluster( area_id="foo", cluster_name="Cluster1", @@ -148,12 +162,12 @@ def test_to_dto(self, command_context: CommandContext): prepro_id = command_context.matrix_service.create(prepro) modulation_id = command_context.matrix_service.create(modulation) dto = command.to_dto() - assert dto.dict() == { + assert dto.model_dump() == { "action": "create_cluster", "args": { "area_id": "foo", "cluster_name": "Cluster1", - "parameters": {"group": "Nuclear", "nominalcapacity": "2400", "unitcount": "2"}, + "parameters": {"group": "Nuclear", "nominalcapacity": 2400, "unitcount": 2}, "prepro": prepro_id, "modulation": modulation_id, }, @@ -163,8 +177,8 @@ def test_to_dto(self, command_context: CommandContext): def test_match(command_context: CommandContext): - prepro = np.random.rand(365, 6).tolist() - modulation = np.random.rand(8760, 4).tolist() + prepro = GEN.random((365, 6)).tolist() + modulation = GEN.random((8760, 4)).tolist() base = CreateCluster( area_id="foo", cluster_name="foo", @@ -223,8 +237,8 @@ def test_revert(command_context: CommandContext): def test_create_diff(command_context: CommandContext): - prepro_a = np.random.rand(365, 6).tolist() - modulation_a = np.random.rand(8760, 4).tolist() + prepro_a = GEN.random((365, 6)).tolist() + modulation_a = GEN.random((8760, 4)).tolist() base = CreateCluster( area_id="foo", cluster_name="foo", @@ -234,8 +248,8 @@ def test_create_diff(command_context: CommandContext): command_context=command_context, ) - prepro_b = np.random.rand(365, 6).tolist() - modulation_b = np.random.rand(8760, 4).tolist() + prepro_b = GEN.random((365, 6)).tolist() + modulation_b = GEN.random((8760, 4)).tolist() other_match = CreateCluster( area_id="foo", cluster_name="foo", diff --git a/tests/variantstudy/model/command/test_create_link.py b/tests/variantstudy/model/command/test_create_link.py index eb11d65398..9d847f0f24 100644 --- a/tests/variantstudy/model/command/test_create_link.py +++ b/tests/variantstudy/model/command/test_create_link.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import configparser import numpy as np @@ -25,16 +37,15 @@ def test_validation(self, empty_study: FileStudy, command_context: CommandContex area1_id = transform_name_to_id(area1) area2 = "Area2" - area2_id = transform_name_to_id(area2) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area1, "command_context": command_context, } ).apply(empty_study) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area2, "command_context": command_context, @@ -42,7 +53,7 @@ def test_validation(self, empty_study: FileStudy, command_context: CommandContex ).apply(empty_study) with pytest.raises(ValidationError): - create_link_command: ICommand = CreateLink( + CreateLink( area1=area1_id, area2=area1_id, parameters={}, @@ -61,21 +72,21 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): area3 = "Area3" area3_id = transform_name_to_id(area3) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area1, "command_context": command_context, } ).apply(empty_study) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area2, "command_context": command_context, } ).apply(empty_study) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area3, "command_context": command_context, @@ -133,7 +144,7 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): # TODO:assert matrix default content : 1 column, 8760 rows, value = 1 - output = CreateLink.parse_obj( + output = CreateLink.model_validate( { "area1": area1_id, "area2": area2_id, @@ -161,7 +172,7 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): "filter-year-by-year": "hourly", } - create_link_command: ICommand = CreateLink.parse_obj( + create_link_command: ICommand = CreateLink.model_validate( { "area1": area3_id, "area2": area1_id, diff --git a/tests/variantstudy/model/command/test_create_renewables_cluster.py b/tests/variantstudy/model/command/test_create_renewables_cluster.py index 78e6dcf15e..b23d6ba553 100644 --- a/tests/variantstudy/model/command/test_create_renewables_cluster.py +++ b/tests/variantstudy/model/command/test_create_renewables_cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import configparser import re from unittest import mock @@ -34,7 +46,7 @@ def test_init(self, command_context: CommandContext) -> None: # Check the command data assert cl.area_id == "foo" assert cl.cluster_name == "Cluster1" - assert cl.parameters == {"group": "Solar Thermal", "nominalcapacity": "2400", "unitcount": "2"} + assert cl.parameters == {"group": "Solar Thermal", "nominalcapacity": 2400, "unitcount": 2} def test_validate_cluster_name(self, command_context: CommandContext) -> None: with pytest.raises(ValidationError, match="cluster_name"): @@ -119,12 +131,12 @@ def test_to_dto(self, command_context: CommandContext) -> None: command_context=command_context, ) dto = command.to_dto() - assert dto.dict() == { + assert dto.model_dump() == { "action": "create_renewables_cluster", # "renewables" with a final "s". "args": { "area_id": "foo", "cluster_name": "Cluster1", - "parameters": {"group": "Solar Thermal", "nominalcapacity": "2400", "unitcount": "2"}, + "parameters": {"group": "Solar Thermal", "nominalcapacity": 2400, "unitcount": 2}, }, "id": None, "version": 1, diff --git a/tests/variantstudy/model/command/test_create_st_storage.py b/tests/variantstudy/model/command/test_create_st_storage.py index c35ea37665..14fbef9b8b 100644 --- a/tests/variantstudy/model/command/test_create_st_storage.py +++ b/tests/variantstudy/model/command/test_create_st_storage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re import numpy as np @@ -7,7 +19,7 @@ from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id from antarest.study.storage.rawstudy.model.filesystem.config.st_storage import STStorageConfig from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy -from antarest.study.storage.study_upgrader import upgrade_study +from antarest.study.storage.study_upgrader import StudyUpgrader from antarest.study.storage.variantstudy.business.utils import strip_matrix_protocol from antarest.study.storage.variantstudy.model.command.common import CommandName from antarest.study.storage.variantstudy.model.command.create_area import CreateArea @@ -17,6 +29,8 @@ from antarest.study.storage.variantstudy.model.command_context import CommandContext from antarest.study.storage.variantstudy.model.model import CommandDTO +GEN = np.random.default_rng(1000) + @pytest.fixture(name="recent_study") def recent_study_fixture(empty_study: FileStudy) -> FileStudy: @@ -29,7 +43,7 @@ def recent_study_fixture(empty_study: FileStudy) -> FileStudy: Returns: FileStudy: The FileStudy object upgraded to the required version. """ - upgrade_study(empty_study.config.study_path, str(REQUIRED_VERSION)) + StudyUpgrader(empty_study.config.study_path, str(REQUIRED_VERSION)).upgrade() empty_study.config.version = REQUIRED_VERSION return empty_study @@ -63,8 +77,8 @@ def recent_study_fixture(empty_study: FileStudy) -> FileStudy: class TestCreateSTStorage: # noinspection SpellCheckingInspection def test_init(self, command_context: CommandContext): - pmax_injection = np.random.rand(8760, 1) - inflows = np.random.uniform(0, 1000, size=(8760, 1)) + pmax_injection = GEN.random((8760, 1)) + inflows = GEN.uniform(0, 1000, size=(8760, 1)) cmd = CreateSTStorage( command_context=command_context, area_id="area_fr", @@ -100,17 +114,22 @@ def test_init__invalid_storage_name(self, recent_study: FileStudy, command_conte parameters=STStorageConfig(**parameters), ) # We get 2 errors because the `storage_name` is duplicated in the `parameters`: - assert ctx.value.errors() == [ - { - "loc": ("__root__",), - "msg": "Invalid name '?%$$'.", - "type": "value_error", - } - ] + assert ctx.value.error_count() == 1 + raised_error = ctx.value.errors()[0] + assert raised_error["type"] == "value_error" + assert raised_error["msg"] == "Value error, Invalid name '?%$$'." + assert raised_error["input"] == { + "efficiency": 0.94, + "group": "Battery", + "initialleveloptim": True, + "injectionnominalcapacity": 1500, + "name": "?%$$", + "reservoircapacity": 20000, + "withdrawalnominalcapacity": 1500, + } - # noinspection SpellCheckingInspection def test_init__invalid_matrix_values(self, command_context: CommandContext): - array = np.random.rand(8760, 1) # OK + array = GEN.random((8760, 1)) array[10] = 25 # BAD with pytest.raises(ValidationError) as ctx: CreateSTStorage( @@ -119,17 +138,15 @@ def test_init__invalid_matrix_values(self, command_context: CommandContext): parameters=STStorageConfig(**PARAMETERS), pmax_injection=array.tolist(), # type: ignore ) - assert ctx.value.errors() == [ - { - "loc": ("pmax_injection",), - "msg": "Matrix values should be between 0 and 1", - "type": "value_error", - } - ] + assert ctx.value.error_count() == 1 + raised_error = ctx.value.errors()[0] + assert raised_error["type"] == "value_error" + assert raised_error["msg"] == "Value error, Matrix values should be between 0 and 1" + assert "pmax_injection" in raised_error["input"] # noinspection SpellCheckingInspection def test_init__invalid_matrix_shape(self, command_context: CommandContext): - array = np.random.rand(24, 1) # BAD SHAPE + array = GEN.random((24, 1)) # BAD SHAPE with pytest.raises(ValidationError) as ctx: CreateSTStorage( command_context=command_context, @@ -137,18 +154,14 @@ def test_init__invalid_matrix_shape(self, command_context: CommandContext): parameters=STStorageConfig(**PARAMETERS), pmax_injection=array.tolist(), # type: ignore ) - assert ctx.value.errors() == [ - { - "loc": ("pmax_injection",), - "msg": "Invalid matrix shape (24, 1), expected (8760, 1)", - "type": "value_error", - } - ] - - # noinspection SpellCheckingInspection + assert ctx.value.error_count() == 1 + raised_error = ctx.value.errors()[0] + assert raised_error["type"] == "value_error" + assert raised_error["msg"] == "Value error, Invalid matrix shape (24, 1), expected (8760, 1)" + assert "pmax_injection" in raised_error["input"] def test_init__invalid_nan_value(self, command_context: CommandContext): - array = np.random.rand(8760, 1) # OK + array = GEN.random((8760, 1)) # OK array[20] = np.nan # BAD with pytest.raises(ValidationError) as ctx: CreateSTStorage( @@ -157,37 +170,25 @@ def test_init__invalid_nan_value(self, command_context: CommandContext): parameters=STStorageConfig(**PARAMETERS), pmax_injection=array.tolist(), # type: ignore ) - assert ctx.value.errors() == [ - { - "loc": ("pmax_injection",), - "msg": "Matrix values cannot contain NaN", - "type": "value_error", - } - ] - - # noinspection SpellCheckingInspection + assert ctx.value.error_count() == 1 + raised_error = ctx.value.errors()[0] + assert raised_error["type"] == "value_error" + assert raised_error["msg"] == "Value error, Matrix values cannot contain NaN" + assert "pmax_injection" in raised_error["input"] def test_init__invalid_matrix_type(self, command_context: CommandContext): - array = {"data": [1, 2, 3]} with pytest.raises(ValidationError) as ctx: CreateSTStorage( command_context=command_context, area_id="area_fr", parameters=STStorageConfig(**PARAMETERS), - pmax_injection=array, # type: ignore + pmax_injection=[1, 2, 3], ) - assert ctx.value.errors() == [ - { - "loc": ("pmax_injection",), - "msg": "value is not a valid list", - "type": "type_error.list", - }, - { - "loc": ("pmax_injection",), - "msg": "str type expected", - "type": "type_error.str", - }, - ] + assert ctx.value.error_count() == 1 + raised_error = ctx.value.errors()[0] + assert raised_error["type"] == "value_error" + assert raised_error["msg"] == "Value error, Invalid matrix shape (3,), expected (8760, 1)" + assert "pmax_injection" in raised_error["input"] def test_apply_config__invalid_version(self, empty_study: FileStudy, command_context: CommandContext): # Given an old study in version 720 @@ -293,8 +294,8 @@ def test_apply__nominal_case(self, recent_study: FileStudy, command_context: Com create_area.apply(recent_study) # Then, apply the command to create a new ST Storage - pmax_injection = np.random.rand(8760, 1) - inflows = np.random.uniform(0, 1000, size=(8760, 1)) + pmax_injection = GEN.random((8760, 1)) + inflows = GEN.uniform(0, 1000, size=(8760, 1)) cmd = CreateSTStorage( command_context=command_context, area_id=transform_name_to_id(create_area.area_name), @@ -427,8 +428,8 @@ def test_create_diff__not_equals(self, command_context: CommandContext): area_id="area_fr", parameters=STStorageConfig(**PARAMETERS), ) - upper_rule_curve = np.random.rand(8760, 1) - inflows = np.random.uniform(0, 1000, size=(8760, 1)) + upper_rule_curve = GEN.random((8760, 1)) + inflows = GEN.uniform(0, 1000, size=(8760, 1)) other = CreateSTStorage( command_context=command_context, area_id=cmd.area_id, diff --git a/tests/variantstudy/model/command/test_manage_binding_constraints.py b/tests/variantstudy/model/command/test_manage_binding_constraints.py index f2dc3ccaf5..746790ef3d 100644 --- a/tests/variantstudy/model/command/test_manage_binding_constraints.py +++ b/tests/variantstudy/model/command/test_manage_binding_constraints.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock import numpy as np @@ -589,7 +601,7 @@ def test__update_matrices_names( # update matrices names _update_matrices_names( file_study=empty_study, - binding_constraint_id="bd_rename_matrices", + bc_id="bd_rename_matrices", existing_operator=existing_operator, new_operator=new_operator, ) diff --git a/tests/variantstudy/model/command/test_manage_district.py b/tests/variantstudy/model/command/test_manage_district.py index 78d30bb19f..47b6e55c42 100644 --- a/tests/variantstudy/model/command/test_manage_district.py +++ b/tests/variantstudy/model/command/test_manage_district.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.rawstudy.ini_reader import IniReader from antarest.study.storage.rawstudy.model.filesystem.config.files import build from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id @@ -14,7 +26,6 @@ def test_manage_district(empty_study: FileStudy, command_context: CommandContext): - study_path = empty_study.config.study_path area1 = "Area1" area1_id = transform_name_to_id(area1) @@ -22,23 +33,22 @@ def test_manage_district(empty_study: FileStudy, command_context: CommandContext area2_id = transform_name_to_id(area2) area3 = "Area3" - area3_id = transform_name_to_id(area3) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area1, "command_context": command_context, } ).apply(empty_study) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area2, "command_context": command_context, } ).apply(empty_study) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area3, "command_context": command_context, diff --git a/tests/variantstudy/model/command/test_remove_area.py b/tests/variantstudy/model/command/test_remove_area.py index 8849bffbd3..474ce51a42 100644 --- a/tests/variantstudy/model/command/test_remove_area.py +++ b/tests/variantstudy/model/command/test_remove_area.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import pytest from checksumdir import dirhash @@ -200,7 +212,7 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): if empty_study.config.version >= 810: default_ruleset[f"r,{area_id2},0,{renewable_id.lower()}"] = 1 if empty_study.config.version >= 870: - default_ruleset[f"bc,bd 2,0"] = 1 + default_ruleset["bc,bd 2,0"] = 1 if empty_study.config.version >= 920: default_ruleset[f"hfl,{area_id2},0"] = 1 if empty_study.config.version >= 910: diff --git a/tests/variantstudy/model/command/test_remove_cluster.py b/tests/variantstudy/model/command/test_remove_cluster.py index cb1af2fdab..77f6ec36c2 100644 --- a/tests/variantstudy/model/command/test_remove_cluster.py +++ b/tests/variantstudy/model/command/test_remove_cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import numpy as np import pytest from checksumdir import dirhash diff --git a/tests/variantstudy/model/command/test_remove_link.py b/tests/variantstudy/model/command/test_remove_link.py index 2704a54013..e7e46bb6af 100644 --- a/tests/variantstudy/model/command/test_remove_link.py +++ b/tests/variantstudy/model/command/test_remove_link.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os import typing as t import uuid @@ -58,7 +70,7 @@ def test_remove_link__validation(self, area1: str, area2: str, expected: t.Dict[ and that the areas are well-ordered in alphabetical order (Antares Solver convention). """ command = RemoveLink(area1=area1, area2=area2, command_context=Mock(spec=CommandContext)) - actual = command.dict(include={"area1", "area2"}) + actual = command.model_dump(include={"area1", "area2"}) assert actual == expected @staticmethod diff --git a/tests/variantstudy/model/command/test_remove_renewables_cluster.py b/tests/variantstudy/model/command/test_remove_renewables_cluster.py index 447ce2bea6..d0fe02c54e 100644 --- a/tests/variantstudy/model/command/test_remove_renewables_cluster.py +++ b/tests/variantstudy/model/command/test_remove_renewables_cluster.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from checksumdir import dirhash from antarest.study.storage.rawstudy.model.filesystem.config.model import EnrModelling, transform_name_to_id diff --git a/tests/variantstudy/model/command/test_remove_st_storage.py b/tests/variantstudy/model/command/test_remove_st_storage.py index 963a6d128a..032a303650 100644 --- a/tests/variantstudy/model/command/test_remove_st_storage.py +++ b/tests/variantstudy/model/command/test_remove_st_storage.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re import pytest @@ -5,7 +17,7 @@ from antarest.study.storage.rawstudy.model.filesystem.config.model import transform_name_to_id from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy -from antarest.study.storage.study_upgrader import upgrade_study +from antarest.study.storage.study_upgrader import StudyUpgrader from antarest.study.storage.variantstudy.model.command.common import CommandName from antarest.study.storage.variantstudy.model.command.create_area import CreateArea from antarest.study.storage.variantstudy.model.command.create_st_storage import CreateSTStorage @@ -25,7 +37,7 @@ def recent_study_fixture(empty_study: FileStudy) -> FileStudy: Returns: FileStudy: The FileStudy object upgraded to the required version. """ - upgrade_study(empty_study.config.study_path, str(REQUIRED_VERSION)) + StudyUpgrader(empty_study.config.study_path, str(REQUIRED_VERSION)).upgrade() empty_study.config.version = REQUIRED_VERSION return empty_study @@ -71,9 +83,11 @@ def test_init__invalid_storage_id(self, recent_study: FileStudy, command_context assert ctx.value.errors() == [ { "ctx": {"pattern": "[a-z0-9_(),& -]+"}, + "input": "?%$$", "loc": ("storage_id",), - "msg": 'string does not match regex "[a-z0-9_(),& -]+"', - "type": "value_error.str.regex", + "msg": "String should match pattern '[a-z0-9_(),& -]+'", + "type": "string_pattern_mismatch", + "url": "https://errors.pydantic.dev/2.8/v/string_pattern_mismatch", } ] diff --git a/tests/variantstudy/model/command/test_replace_matrix.py b/tests/variantstudy/model/command/test_replace_matrix.py index 5436f1e98d..8a215692f5 100644 --- a/tests/variantstudy/model/command/test_replace_matrix.py +++ b/tests/variantstudy/model/command/test_replace_matrix.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock, patch import numpy as np @@ -20,7 +32,7 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): area1 = "Area1" area1_id = transform_name_to_id(area1) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area1, "command_context": command_context, @@ -28,7 +40,7 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): ).apply(empty_study) target_element = f"input/hydro/common/capacity/maxpower_{area1_id}" - replace_matrix = ReplaceMatrix.parse_obj( + replace_matrix = ReplaceMatrix.model_validate( { "target": target_element, "matrix": [[0]], @@ -44,7 +56,7 @@ def test_apply(self, empty_study: FileStudy, command_context: CommandContext): assert matrix_id in target_path.read_text() target_element = "fake/matrix/path" - replace_matrix = ReplaceMatrix.parse_obj( + replace_matrix = ReplaceMatrix.model_validate( { "target": target_element, "matrix": [[0]], diff --git a/tests/variantstudy/model/command/test_update_comments.py b/tests/variantstudy/model/command/test_update_comments.py index a93de8538c..ec91a59bf6 100644 --- a/tests/variantstudy/model/command/test_update_comments.py +++ b/tests/variantstudy/model/command/test_update_comments.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock import pytest diff --git a/tests/variantstudy/model/command/test_update_config.py b/tests/variantstudy/model/command/test_update_config.py index 999adb6c70..bbce0a45c1 100644 --- a/tests/variantstudy/model/command/test_update_config.py +++ b/tests/variantstudy/model/command/test_update_config.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import json from unittest.mock import Mock, patch @@ -20,7 +32,7 @@ def test_update_config(empty_study: FileStudy, command_context: CommandContext): area1 = "Area1" area1_id = transform_name_to_id(area1) - CreateArea.parse_obj( + CreateArea.model_validate( { "area_name": area1, "command_context": command_context, diff --git a/tests/variantstudy/model/command/test_update_rawfile.py b/tests/variantstudy/model/command/test_update_rawfile.py index 00cfd52b99..61247d861e 100644 --- a/tests/variantstudy/model/command/test_update_rawfile.py +++ b/tests/variantstudy/model/command/test_update_rawfile.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import base64 import os.path from pathlib import Path diff --git a/tests/variantstudy/model/test_variant_model.py b/tests/variantstudy/model/test_variant_model.py index 98c73b949f..b51dc8509d 100644 --- a/tests/variantstudy/model/test_variant_model.py +++ b/tests/variantstudy/model/test_variant_model.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import datetime import uuid from pathlib import Path @@ -141,7 +153,7 @@ def test_commands_service( repository=variant_study_service.repository, ) results = generator.generate_snapshot(saved_id, jwt_user, denormalize=False) - assert results.dict() == { + assert results.model_dump() == { "success": True, "details": [ { diff --git a/tests/variantstudy/test_command_factory.py b/tests/variantstudy/test_command_factory.py index 5f9af93ee2..b78ba393e5 100644 --- a/tests/variantstudy/test_command_factory.py +++ b/tests/variantstudy/test_command_factory.py @@ -1,6 +1,19 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import importlib import itertools import pkgutil +from typing import List, Set from unittest.mock import Mock import pytest @@ -13,18 +26,385 @@ from antarest.study.storage.variantstudy.model.command.icommand import ICommand from antarest.study.storage.variantstudy.model.model import CommandDTO +COMMANDS: List[CommandDTO] = [ + CommandDTO( + action=CommandName.CREATE_AREA.value, + args={"area_name": "area_name"}, + ), + CommandDTO( + action=CommandName.CREATE_AREA.value, + args=[ + {"area_name": "area_name"}, + {"area_name": "area2"}, + ], + ), + CommandDTO( + action=CommandName.REMOVE_AREA.value, + args={"id": "id"}, + ), + CommandDTO( + action=CommandName.REMOVE_AREA.value, + args=[{"id": "id"}], + ), + CommandDTO( + action=CommandName.CREATE_DISTRICT.value, + args={ + "name": "id", + "filter_items": ["a"], + "output": True, + "comments": "", + }, + ), + CommandDTO( + action=CommandName.CREATE_DISTRICT.value, + args=[ + { + "name": "id", + "base_filter": "add-all", + "output": True, + "comments": "", + } + ], + ), + CommandDTO( + action=CommandName.REMOVE_DISTRICT.value, + args={"id": "id"}, + ), + CommandDTO( + action=CommandName.REMOVE_DISTRICT.value, + args=[{"id": "id"}], + ), + CommandDTO( + action=CommandName.CREATE_LINK.value, + args={ + "area1": "area1", + "area2": "area2", + "parameters": {}, + "series": "series", + }, + ), + CommandDTO( + action=CommandName.CREATE_LINK.value, + args=[ + { + "area1": "area1", + "area2": "area2", + "parameters": {}, + "series": "series", + } + ], + ), + CommandDTO( + action=CommandName.REMOVE_LINK.value, + args={ + "area1": "area1", + "area2": "area2", + }, + ), + CommandDTO( + action=CommandName.REMOVE_LINK.value, + args=[ + { + "area1": "area1", + "area2": "area2", + } + ], + ), + CommandDTO( + action=CommandName.CREATE_BINDING_CONSTRAINT.value, + args={"name": "name"}, + ), + CommandDTO( + action=CommandName.CREATE_BINDING_CONSTRAINT.value, + args=[ + { + "name": "name", + "enabled": True, + "time_step": "hourly", + "operator": "equal", + "values": "values", + "group": "group_1", + }, + ], + ), + CommandDTO( + action=CommandName.UPDATE_BINDING_CONSTRAINT.value, + args={ + "id": "id", + "enabled": True, + "time_step": "hourly", + "operator": "equal", + "values": "values", + }, + ), + CommandDTO( + action=CommandName.UPDATE_BINDING_CONSTRAINT.value, + args=[ + { + "id": "id", + "enabled": True, + "time_step": "hourly", + "operator": "equal", + } + ], + ), + CommandDTO( + action=CommandName.REMOVE_BINDING_CONSTRAINT.value, + args={"id": "id"}, + ), + CommandDTO( + action=CommandName.REMOVE_BINDING_CONSTRAINT.value, + args=[{"id": "id"}], + ), + CommandDTO( + action=CommandName.CREATE_THERMAL_CLUSTER.value, + args={ + "area_id": "area_name", + "cluster_name": "cluster_name", + "parameters": { + "group": "group", + "unitcount": "unitcount", + "nominalcapacity": "nominalcapacity", + "marginal-cost": "marginal-cost", + "market-bid-cost": "market-bid-cost", + }, + "prepro": "prepro", + "modulation": "modulation", + }, + ), + CommandDTO( + action=CommandName.CREATE_THERMAL_CLUSTER.value, + args=[ + { + "area_id": "area_name", + "cluster_name": "cluster_name", + "parameters": { + "group": "group", + "unitcount": "unitcount", + "nominalcapacity": "nominalcapacity", + "marginal-cost": "marginal-cost", + "market-bid-cost": "market-bid-cost", + }, + "prepro": "prepro", + "modulation": "modulation", + } + ], + ), + CommandDTO( + action=CommandName.REMOVE_THERMAL_CLUSTER.value, + args={"area_id": "area_name", "cluster_id": "cluster_name"}, + ), + CommandDTO( + action=CommandName.REMOVE_THERMAL_CLUSTER.value, + args=[{"area_id": "area_name", "cluster_id": "cluster_name"}], + ), + CommandDTO( + action=CommandName.CREATE_RENEWABLES_CLUSTER.value, + args={ + "area_id": "area_name", + "cluster_name": "cluster_name", + "parameters": { + "name": "name", + "ts-interpretation": "power-generation", + }, + }, + ), + CommandDTO( + action=CommandName.CREATE_RENEWABLES_CLUSTER.value, + args=[ + { + "area_id": "area_name", + "cluster_name": "cluster_name", + "parameters": { + "name": "name", + "ts-interpretation": "power-generation", + }, + } + ], + ), + CommandDTO( + action=CommandName.REMOVE_RENEWABLES_CLUSTER.value, + args={"area_id": "area_name", "cluster_id": "cluster_name"}, + ), + CommandDTO( + action=CommandName.REMOVE_RENEWABLES_CLUSTER.value, + args=[{"area_id": "area_name", "cluster_id": "cluster_name"}], + ), + CommandDTO( + action=CommandName.REPLACE_MATRIX.value, + args={"target": "target_element", "matrix": "matrix"}, + ), + CommandDTO( + action=CommandName.REPLACE_MATRIX.value, + args=[{"target": "target_element", "matrix": "matrix"}], + ), + CommandDTO( + action=CommandName.UPDATE_CONFIG.value, + args={"target": "target", "data": {}}, + ), + CommandDTO( + action=CommandName.UPDATE_CONFIG.value, + args=[{"target": "target", "data": {}}], + ), + CommandDTO( + action=CommandName.UPDATE_COMMENTS.value, + args={"comments": "comments"}, + ), + CommandDTO( + action=CommandName.UPDATE_COMMENTS.value, + args=[{"comments": "comments"}], + ), + CommandDTO( + action=CommandName.UPDATE_FILE.value, + args={ + "target": "settings/resources/study", + "b64Data": "", + }, + ), + CommandDTO( + action=CommandName.UPDATE_DISTRICT.value, + args={"id": "id", "filter_items": ["a"]}, + ), + CommandDTO( + action=CommandName.UPDATE_DISTRICT.value, + args=[{"id": "id", "base_filter": "add-all"}], + ), + CommandDTO( + action=CommandName.UPDATE_PLAYLIST.value, + args=[{"active": True, "items": [1, 3], "reverse": False}], + ), + CommandDTO( + action=CommandName.UPDATE_PLAYLIST.value, + args={ + "active": True, + "items": [1, 3], + "weights": {1: 5.0}, + "reverse": False, + }, + ), + CommandDTO( + action=CommandName.UPDATE_SCENARIO_BUILDER.value, + args={ + "data": { + "ruleset test": { + "l": {"area1": {"0": 1}}, + "ntc": {"area1 / area2": {"1": 23}}, + "t": {"area1": {"thermal": {"1": 2}}}, + }, + } + }, + ), + CommandDTO( + action=CommandName.CREATE_ST_STORAGE.value, + args={ + "area_id": "area 1", + "parameters": { + "name": "Storage 1", + "group": "Battery", + "injectionnominalcapacity": 0, + "withdrawalnominalcapacity": 0, + "reservoircapacity": 0, + "efficiency": 1, + "initiallevel": 0, + "initialleveloptim": False, + }, + "pmax_injection": "matrix://59ea6c83-6348-466d-9530-c35c51ca4c37", + "pmax_withdrawal": "matrix://5f988548-dadc-4bbb-8ce8-87a544dbf756", + "lower_rule_curve": "matrix://8ce4fcea-cc97-4d2c-b641-a27a53454612", + "upper_rule_curve": "matrix://8ce614c8-c687-41af-8b24-df8a49cc52af", + "inflows": "matrix://df9b25e1-e3f7-4a57-8182-0ff9791439e5", + }, + ), + CommandDTO( + action=CommandName.CREATE_ST_STORAGE.value, + args=[ + { + "area_id": "area 1", + "parameters": { + "efficiency": 1, + "group": "Battery", + "initiallevel": 0, + "initialleveloptim": False, + "injectionnominalcapacity": 0, + "name": "Storage 1", + "reservoircapacity": 0, + "withdrawalnominalcapacity": 0, + }, + "pmax_injection": "matrix://59ea6c83-6348-466d-9530-c35c51ca4c37", + "pmax_withdrawal": "matrix://5f988548-dadc-4bbb-8ce8-87a544dbf756", + "lower_rule_curve": "matrix://8ce4fcea-cc97-4d2c-b641-a27a53454612", + "upper_rule_curve": "matrix://8ce614c8-c687-41af-8b24-df8a49cc52af", + "inflows": "matrix://df9b25e1-e3f7-4a57-8182-0ff9791439e5", + }, + { + "area_id": "area 1", + "parameters": { + "efficiency": 0.94, + "group": "Battery", + "initiallevel": 0, + "initialleveloptim": False, + "injectionnominalcapacity": 0, + "name": "Storage 2", + "reservoircapacity": 0, + "withdrawalnominalcapacity": 0, + }, + "pmax_injection": "matrix://3f5b3746-3995-49b7-a6da-622633472e05", + "pmax_withdrawal": "matrix://4b64a31f-927b-4887-b4cd-adcddd39bdcd", + "lower_rule_curve": "matrix://16c7c3ae-9824-4ef2-aa68-51145884b025", + "upper_rule_curve": "matrix://9a6104e9-990a-415f-a6e2-57507e13b58c", + "inflows": "matrix://e8923768-9bdd-40c2-a6ea-2da2523be727", + }, + ], + ), + CommandDTO( + action=CommandName.REMOVE_ST_STORAGE.value, + args={ + "area_id": "area 1", + "storage_id": "storage 1", + }, + ), + CommandDTO( + action=CommandName.REMOVE_ST_STORAGE.value, + args=[ + { + "area_id": "area 1", + "storage_id": "storage 1", + }, + { + "area_id": "area 1", + "storage_id": "storage 2", + }, + ], + ), + CommandDTO( + action=CommandName.GENERATE_THERMAL_CLUSTER_TIMESERIES.value, + args=[{}], + ), +] + + +@pytest.fixture +def command_factory() -> CommandFactory: + def get_matrix_id(matrix: str) -> str: + # str.removeprefix() is not available in Python 3.8 + prefix = "matrix://" + if matrix.startswith(prefix): + return matrix[len(prefix) :] + return matrix + + return CommandFactory( + generator_matrix_constants=Mock(spec=GeneratorMatrixConstants), + matrix_service=Mock(spec=MatrixService, get_matrix_id=get_matrix_id), + patch_service=Mock(spec=PatchService), + ) + class TestCommandFactory: - # noinspection SpellCheckingInspection - def setup_class(self): + def _get_command_classes(self) -> Set[str]: """ - Set up the test class. - Imports all modules from the `antarest.study.storage.variantstudy.model.command` package and creates a set of command class names derived from the `ICommand` abstract class. The objective is to ensure that the unit test covers all commands in this package. - - This method is executed once before any tests in the test class are run. """ for module_loader, name, ispkg in pkgutil.iter_modules(["antarest/study/storage/variantstudy/model/command"]): importlib.import_module( @@ -32,379 +412,21 @@ def setup_class(self): package="antarest.study.storage.variantstudy.model.command", ) abstract_commands = {"AbstractBindingConstraintCommand"} - self.command_class_set = { - cmd.__name__ for cmd in ICommand.__subclasses__() if cmd.__name__ not in abstract_commands - } + return {cmd.__name__ for cmd in ICommand.__subclasses__() if cmd.__name__ not in abstract_commands} + + def test_all_commands_are_tested(self, command_factory: CommandFactory): + commands = sum([command_factory.to_command(command_dto=cmd) for cmd in COMMANDS], []) + tested_classes = {c.__class__.__name__ for c in commands} + + assert self._get_command_classes().issubset(tested_classes) # noinspection SpellCheckingInspection @pytest.mark.parametrize( "command_dto", - [ - CommandDTO( - action=CommandName.CREATE_AREA.value, - args={"area_name": "area_name"}, - ), - CommandDTO( - action=CommandName.CREATE_AREA.value, - args=[ - {"area_name": "area_name"}, - {"area_name": "area2"}, - ], - ), - CommandDTO( - action=CommandName.REMOVE_AREA.value, - args={"id": "id"}, - ), - CommandDTO( - action=CommandName.REMOVE_AREA.value, - args=[{"id": "id"}], - ), - CommandDTO( - action=CommandName.CREATE_DISTRICT.value, - args={ - "name": "id", - "filter_items": ["a"], - "output": True, - "comments": "", - }, - ), - CommandDTO( - action=CommandName.CREATE_DISTRICT.value, - args=[ - { - "name": "id", - "base_filter": "add-all", - "output": True, - "comments": "", - } - ], - ), - CommandDTO( - action=CommandName.REMOVE_DISTRICT.value, - args={"id": "id"}, - ), - CommandDTO( - action=CommandName.REMOVE_DISTRICT.value, - args=[{"id": "id"}], - ), - CommandDTO( - action=CommandName.CREATE_LINK.value, - args={ - "area1": "area1", - "area2": "area2", - "parameters": {}, - "series": "series", - }, - ), - CommandDTO( - action=CommandName.CREATE_LINK.value, - args=[ - { - "area1": "area1", - "area2": "area2", - "parameters": {}, - "series": "series", - } - ], - ), - CommandDTO( - action=CommandName.REMOVE_LINK.value, - args={ - "area1": "area1", - "area2": "area2", - }, - ), - CommandDTO( - action=CommandName.REMOVE_LINK.value, - args=[ - { - "area1": "area1", - "area2": "area2", - } - ], - ), - CommandDTO( - action=CommandName.CREATE_BINDING_CONSTRAINT.value, - args={"name": "name"}, - ), - CommandDTO( - action=CommandName.CREATE_BINDING_CONSTRAINT.value, - args=[ - { - "name": "name", - "enabled": True, - "time_step": "hourly", - "operator": "equal", - "values": "values", - "group": "group_1", - }, - ], - ), - CommandDTO( - action=CommandName.UPDATE_BINDING_CONSTRAINT.value, - args={ - "id": "id", - "enabled": True, - "time_step": "hourly", - "operator": "equal", - "values": "values", - }, - ), - CommandDTO( - action=CommandName.UPDATE_BINDING_CONSTRAINT.value, - args=[ - { - "id": "id", - "enabled": True, - "time_step": "hourly", - "operator": "equal", - } - ], - ), - CommandDTO( - action=CommandName.REMOVE_BINDING_CONSTRAINT.value, - args={"id": "id"}, - ), - CommandDTO( - action=CommandName.REMOVE_BINDING_CONSTRAINT.value, - args=[{"id": "id"}], - ), - CommandDTO( - action=CommandName.CREATE_THERMAL_CLUSTER.value, - args={ - "area_id": "area_name", - "cluster_name": "cluster_name", - "parameters": { - "group": "group", - "unitcount": "unitcount", - "nominalcapacity": "nominalcapacity", - "marginal-cost": "marginal-cost", - "market-bid-cost": "market-bid-cost", - }, - "prepro": "prepro", - "modulation": "modulation", - }, - ), - CommandDTO( - action=CommandName.CREATE_THERMAL_CLUSTER.value, - args=[ - { - "area_id": "area_name", - "cluster_name": "cluster_name", - "parameters": { - "group": "group", - "unitcount": "unitcount", - "nominalcapacity": "nominalcapacity", - "marginal-cost": "marginal-cost", - "market-bid-cost": "market-bid-cost", - }, - "prepro": "prepro", - "modulation": "modulation", - } - ], - ), - CommandDTO( - action=CommandName.REMOVE_THERMAL_CLUSTER.value, - args={"area_id": "area_name", "cluster_id": "cluster_name"}, - ), - CommandDTO( - action=CommandName.REMOVE_THERMAL_CLUSTER.value, - args=[{"area_id": "area_name", "cluster_id": "cluster_name"}], - ), - CommandDTO( - action=CommandName.CREATE_RENEWABLES_CLUSTER.value, - args={ - "area_id": "area_name", - "cluster_name": "cluster_name", - "parameters": { - "name": "name", - "ts-interpretation": "power-generation", - }, - }, - ), - CommandDTO( - action=CommandName.CREATE_RENEWABLES_CLUSTER.value, - args=[ - { - "area_id": "area_name", - "cluster_name": "cluster_name", - "parameters": { - "name": "name", - "ts-interpretation": "power-generation", - }, - } - ], - ), - CommandDTO( - action=CommandName.REMOVE_RENEWABLES_CLUSTER.value, - args={"area_id": "area_name", "cluster_id": "cluster_name"}, - ), - CommandDTO( - action=CommandName.REMOVE_RENEWABLES_CLUSTER.value, - args=[{"area_id": "area_name", "cluster_id": "cluster_name"}], - ), - CommandDTO( - action=CommandName.REPLACE_MATRIX.value, - args={"target": "target_element", "matrix": "matrix"}, - ), - CommandDTO( - action=CommandName.REPLACE_MATRIX.value, - args=[{"target": "target_element", "matrix": "matrix"}], - ), - CommandDTO( - action=CommandName.UPDATE_CONFIG.value, - args={"target": "target", "data": {}}, - ), - CommandDTO( - action=CommandName.UPDATE_CONFIG.value, - args=[{"target": "target", "data": {}}], - ), - CommandDTO( - action=CommandName.UPDATE_COMMENTS.value, - args={"comments": "comments"}, - ), - CommandDTO( - action=CommandName.UPDATE_COMMENTS.value, - args=[{"comments": "comments"}], - ), - CommandDTO( - action=CommandName.UPDATE_FILE.value, - args={ - "target": "settings/resources/study", - "b64Data": "", - }, - ), - CommandDTO( - action=CommandName.UPDATE_DISTRICT.value, - args={"id": "id", "filter_items": ["a"]}, - ), - CommandDTO( - action=CommandName.UPDATE_DISTRICT.value, - args=[{"id": "id", "base_filter": "add-all"}], - ), - CommandDTO( - action=CommandName.UPDATE_PLAYLIST.value, - args=[{"active": True, "items": [1, 3], "reverse": False}], - ), - CommandDTO( - action=CommandName.UPDATE_PLAYLIST.value, - args={ - "active": True, - "items": [1, 3], - "weights": {1: 5.0}, - "reverse": False, - }, - ), - CommandDTO( - action=CommandName.UPDATE_SCENARIO_BUILDER.value, - args={ - "data": { - "ruleset test": { - "l": {"area1": {"0": 1}}, - "ntc": {"area1 / area2": {"1": 23}}, - "t": {"area1": {"thermal": {"1": 2}}}, - }, - } - }, - ), - CommandDTO( - action=CommandName.CREATE_ST_STORAGE.value, - args={ - "area_id": "area 1", - "parameters": { - "name": "Storage 1", - "group": "Battery", - "injectionnominalcapacity": 0, - "withdrawalnominalcapacity": 0, - "reservoircapacity": 0, - "efficiency": 1, - "initiallevel": 0, - "initialleveloptim": False, - }, - "pmax_injection": "matrix://59ea6c83-6348-466d-9530-c35c51ca4c37", - "pmax_withdrawal": "matrix://5f988548-dadc-4bbb-8ce8-87a544dbf756", - "lower_rule_curve": "matrix://8ce4fcea-cc97-4d2c-b641-a27a53454612", - "upper_rule_curve": "matrix://8ce614c8-c687-41af-8b24-df8a49cc52af", - "inflows": "matrix://df9b25e1-e3f7-4a57-8182-0ff9791439e5", - }, - ), - CommandDTO( - action=CommandName.CREATE_ST_STORAGE.value, - args=[ - { - "area_id": "area 1", - "parameters": { - "efficiency": 1, - "group": "Battery", - "initiallevel": 0, - "initialleveloptim": False, - "injectionnominalcapacity": 0, - "name": "Storage 1", - "reservoircapacity": 0, - "withdrawalnominalcapacity": 0, - }, - "pmax_injection": "matrix://59ea6c83-6348-466d-9530-c35c51ca4c37", - "pmax_withdrawal": "matrix://5f988548-dadc-4bbb-8ce8-87a544dbf756", - "lower_rule_curve": "matrix://8ce4fcea-cc97-4d2c-b641-a27a53454612", - "upper_rule_curve": "matrix://8ce614c8-c687-41af-8b24-df8a49cc52af", - "inflows": "matrix://df9b25e1-e3f7-4a57-8182-0ff9791439e5", - }, - { - "area_id": "area 1", - "parameters": { - "efficiency": 0.94, - "group": "Battery", - "initiallevel": 0, - "initialleveloptim": False, - "injectionnominalcapacity": 0, - "name": "Storage 2", - "reservoircapacity": 0, - "withdrawalnominalcapacity": 0, - }, - "pmax_injection": "matrix://3f5b3746-3995-49b7-a6da-622633472e05", - "pmax_withdrawal": "matrix://4b64a31f-927b-4887-b4cd-adcddd39bdcd", - "lower_rule_curve": "matrix://16c7c3ae-9824-4ef2-aa68-51145884b025", - "upper_rule_curve": "matrix://9a6104e9-990a-415f-a6e2-57507e13b58c", - "inflows": "matrix://e8923768-9bdd-40c2-a6ea-2da2523be727", - }, - ], - ), - CommandDTO( - action=CommandName.REMOVE_ST_STORAGE.value, - args={ - "area_id": "area 1", - "storage_id": "storage 1", - }, - ), - CommandDTO( - action=CommandName.REMOVE_ST_STORAGE.value, - args=[ - { - "area_id": "area 1", - "storage_id": "storage 1", - }, - { - "area_id": "area 1", - "storage_id": "storage 2", - }, - ], - ), - ], + COMMANDS, ) @pytest.mark.unit_test - def test_command_factory(self, command_dto: CommandDTO): - def get_matrix_id(matrix: str) -> str: - # str.removeprefix() is not available in Python 3.8 - prefix = "matrix://" - if matrix.startswith(prefix): - return matrix[len(prefix) :] - return matrix - - command_factory = CommandFactory( - generator_matrix_constants=Mock(spec=GeneratorMatrixConstants), - matrix_service=Mock(spec=MatrixService, get_matrix_id=get_matrix_id), - patch_service=Mock(spec=PatchService), - ) + def test_command_factory(self, command_dto: CommandDTO, command_factory: CommandFactory): commands = command_factory.to_command(command_dto=command_dto) if isinstance(command_dto.args, dict): @@ -424,12 +446,6 @@ def get_matrix_id(matrix: str) -> str: assert actual_args == expected_args assert actual_version == expected_version - self.command_class_set.discard(type(commands[0]).__name__) - - def teardown_class(self): - # Check that all command classes have been tested - assert not self.command_class_set - @pytest.mark.unit_test def test_unknown_command(): diff --git a/tests/variantstudy/test_utils.py b/tests/variantstudy/test_utils.py index 2a856be549..d97c3d65a5 100644 --- a/tests/variantstudy/test_utils.py +++ b/tests/variantstudy/test_utils.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from antarest.study.storage.variantstudy.business.utils import transform_command_to_dto from antarest.study.storage.variantstudy.model.command.create_area import CreateArea from antarest.study.storage.variantstudy.model.command.create_link import CreateLink diff --git a/tests/variantstudy/test_variant_command_extractor.py b/tests/variantstudy/test_variant_command_extractor.py index 8545869398..45665cf5cf 100644 --- a/tests/variantstudy/test_variant_command_extractor.py +++ b/tests/variantstudy/test_variant_command_extractor.py @@ -1,3 +1,16 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + + def test_extract(): # Already covered by integration test "test_integration_variantmanager_tool" pass diff --git a/tests/worker/__init__.py b/tests/worker/__init__.py index e69de29bb2..058c6b221a 100644 --- a/tests/worker/__init__.py +++ b/tests/worker/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. diff --git a/tests/worker/test_archive_worker.py b/tests/worker/test_archive_worker.py index a0b6cb505b..12c42ec699 100644 --- a/tests/worker/test_archive_worker.py +++ b/tests/worker/test_archive_worker.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from pathlib import Path from unittest.mock import Mock from zipfile import ZIP_DEFLATED, ZipFile diff --git a/tests/worker/test_archive_worker_service.py b/tests/worker/test_archive_worker_service.py index b8fd4d2e33..65b3971baf 100644 --- a/tests/worker/test_archive_worker_service.py +++ b/tests/worker/test_archive_worker_service.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + from unittest.mock import Mock, patch import pytest diff --git a/tests/worker/test_simulator_worker.py b/tests/worker/test_simulator_worker.py index 58db7ec4eb..791aa3ec3d 100644 --- a/tests/worker/test_simulator_worker.py +++ b/tests/worker/test_simulator_worker.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import os import platform import stat diff --git a/tests/worker/test_worker.py b/tests/worker/test_worker.py index ab67beac57..72b9c4ac00 100644 --- a/tests/worker/test_worker.py +++ b/tests/worker/test_worker.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import time from pathlib import Path from typing import List diff --git a/tests/xml_compare.py b/tests/xml_compare.py index 19e36b4a68..1f2761737f 100644 --- a/tests/xml_compare.py +++ b/tests/xml_compare.py @@ -1,3 +1,15 @@ +# Copyright (c) 2024, RTE (https://www.rte-france.com) +# +# See AUTHORS.txt +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# SPDX-License-Identifier: MPL-2.0 +# +# This file is part of the Antares project. + import re import typing as t from xml.etree.ElementTree import Element diff --git a/webapp/.eslintrc.cjs b/webapp/.eslintrc.cjs index 8a4e508acb..29270da704 100644 --- a/webapp/.eslintrc.cjs +++ b/webapp/.eslintrc.cjs @@ -12,10 +12,17 @@ module.exports = { "plugin:react/jsx-runtime", "plugin:react-hooks/recommended", "plugin:jsdoc/recommended-typescript", - "plugin:prettier/recommended", + "plugin:prettier/recommended", // Must be the last one + ], + plugins: [ + "license-header", + "react-refresh", + ], + ignorePatterns: [ + "dist", + "license-header.js", + ".eslintrc.cjs", ], - plugins: ["react-refresh"], - ignorePatterns: ["dist", ".eslintrc.cjs"], parser: "@typescript-eslint/parser", parserOptions: { // `ecmaVersion` is automatically sets by `esXXXX` in `env` @@ -48,6 +55,7 @@ module.exports = { "jsdoc/require-jsdoc": "off", "jsdoc/require-hyphen-before-param-description": "warn", "jsdoc/tag-lines": ["warn", "any", { startLines: 1 }], // Expected 1 line after block description + "license-header/header": ["error", "license-header.js"], "no-console": "warn", "no-param-reassign": [ "error", diff --git a/webapp/.npmrc b/webapp/.npmrc index 4fd021952d..519835e9e2 100644 --- a/webapp/.npmrc +++ b/webapp/.npmrc @@ -1 +1,2 @@ -engine-strict=true \ No newline at end of file +engine-strict=true +save-prefix= # prevent the caret (^) symbol use when installing new dependencies \ No newline at end of file diff --git a/webapp/.prettierignore b/webapp/.prettierignore new file mode 100644 index 0000000000..f8b474f9c3 --- /dev/null +++ b/webapp/.prettierignore @@ -0,0 +1 @@ +license-header.js diff --git a/webapp/license-header.js b/webapp/license-header.js new file mode 100644 index 0000000000..a5bb574db3 --- /dev/null +++ b/webapp/license-header.js @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ \ No newline at end of file diff --git a/webapp/package-lock.json b/webapp/package-lock.json index c326297735..a829e29345 100644 --- a/webapp/package-lock.json +++ b/webapp/package-lock.json @@ -100,6 +100,7 @@ "eslint": "8.55.0", "eslint-config-prettier": "9.0.0", "eslint-plugin-jsdoc": "48.2.0", + "eslint-plugin-license-header": "0.6.1", "eslint-plugin-prettier": "5.0.0", "eslint-plugin-react": "7.33.2", "eslint-plugin-react-hooks": "4.6.0", @@ -6754,6 +6755,15 @@ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, + "node_modules/eslint-plugin-license-header": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-license-header/-/eslint-plugin-license-header-0.6.1.tgz", + "integrity": "sha512-9aIz8q3OaMr1/uQmCGCWySjTs5nEXUJexNegz/8lluNcZbEl82Ag1Vyr1Hu3oIveRW1NbXDPs6nu4zu9mbrmWA==", + "dev": true, + "dependencies": { + "requireindex": "^1.2.0" + } + }, "node_modules/eslint-plugin-prettier": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz", @@ -11604,6 +11614,15 @@ "node": ">=0.10" } }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", diff --git a/webapp/package.json b/webapp/package.json index 0cac1710ac..7f535f238a 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -106,6 +106,7 @@ "eslint": "8.55.0", "eslint-config-prettier": "9.0.0", "eslint-plugin-jsdoc": "48.2.0", + "eslint-plugin-license-header": "0.6.1", "eslint-plugin-prettier": "5.0.0", "eslint-plugin-react": "7.33.2", "eslint-plugin-react-hooks": "4.6.0", diff --git a/webapp/public/locales/en/main.json b/webapp/public/locales/en/main.json index 55a60ae4a8..05c1685d59 100644 --- a/webapp/public/locales/en/main.json +++ b/webapp/public/locales/en/main.json @@ -88,6 +88,7 @@ "global.error.delete": "Deletion failed", "global.area.add": "Add an area", "global.add": "Add", + "global.timeSeries": "Time Series", "login.error": "Failed to authenticate", "tasks.title": "Tasks", "api.title": "API", @@ -133,6 +134,7 @@ "form.field.minValue": "The minimum value is {{0}}", "form.field.maxValue": "The maximum value is {{0}}", "form.field.invalidNumber": "Invalid number", + "form.field.mustBeInteger": "The value must be an integer", "form.field.notAllowedValue": "Not allowed value", "form.field.specialChars": "Special characters allowed: {{0}}", "form.field.specialCharsNotAllowed": "Special characters are not allowed", diff --git a/webapp/public/locales/fr/main.json b/webapp/public/locales/fr/main.json index cf34d3599e..45b1bf3b6c 100644 --- a/webapp/public/locales/fr/main.json +++ b/webapp/public/locales/fr/main.json @@ -88,6 +88,7 @@ "global.error.delete": "La suppression a échoué", "global.area.add": "Ajouter une zone", "global.add": "Ajouter", + "global.timeSeries": "Séries temporelles", "login.error": "Échec de l'authentification", "tasks.title": "Tâches", "api.title": "API", @@ -133,6 +134,7 @@ "form.field.minValue": "La valeur minimum est {{0}}", "form.field.maxValue": "La valeur maximum est {{0}}", "form.field.invalidNumber": "Nombre invalide", + "form.field.mustBeInteger": "La valeur doit être un nombre entier", "form.field.notAllowedValue": "Valeur non autorisée", "form.field.specialChars": "Caractères spéciaux autorisés: {{0}}", "form.field.specialCharsNotAllowed": "Les caractères spéciaux ne sont pas autorisés", diff --git a/webapp/src/common/types.ts b/webapp/src/common/types.ts index 7e62f614e4..20893f0abe 100644 --- a/webapp/src/common/types.ts +++ b/webapp/src/common/types.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ReactNode } from "react"; export type IdType = number | string; diff --git a/webapp/src/components/App/Api.tsx b/webapp/src/components/App/Api.tsx index 612194c0b1..837b80e729 100644 --- a/webapp/src/components/App/Api.tsx +++ b/webapp/src/components/App/Api.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box } from "@mui/material"; import SwaggerUI from "swagger-ui-react"; import "swagger-ui-react/swagger-ui.css"; diff --git a/webapp/src/components/App/Data/DataListing.tsx b/webapp/src/components/App/Data/DataListing.tsx index bf0ca2bf00..30968f4f30 100644 --- a/webapp/src/components/App/Data/DataListing.tsx +++ b/webapp/src/components/App/Data/DataListing.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { memo } from "react"; import { Typography, Box, styled } from "@mui/material"; import AutoSizer from "react-virtualized-auto-sizer"; diff --git a/webapp/src/components/App/Data/DataPropsView.tsx b/webapp/src/components/App/Data/DataPropsView.tsx index a5684facec..c4b5215cf5 100644 --- a/webapp/src/components/App/Data/DataPropsView.tsx +++ b/webapp/src/components/App/Data/DataPropsView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { MatrixDataSetDTO, MatrixInfoDTO } from "../../../common/types"; import PropertiesView from "../../common/PropertiesView"; diff --git a/webapp/src/components/App/Data/DatasetCreationDialog.tsx b/webapp/src/components/App/Data/DatasetCreationDialog.tsx index c10b1eaaf4..90764a1977 100644 --- a/webapp/src/components/App/Data/DatasetCreationDialog.tsx +++ b/webapp/src/components/App/Data/DatasetCreationDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState, useEffect, forwardRef, ChangeEvent } from "react"; import { Box, diff --git a/webapp/src/components/App/Data/MatrixDialog.tsx b/webapp/src/components/App/Data/MatrixDialog.tsx index df2b14ab99..c02bf8a6c1 100644 --- a/webapp/src/components/App/Data/MatrixDialog.tsx +++ b/webapp/src/components/App/Data/MatrixDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState, useEffect } from "react"; import { AxiosError } from "axios"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Data/index.tsx b/webapp/src/components/App/Data/index.tsx index 8f73e7a0b7..ea35d174f2 100644 --- a/webapp/src/components/App/Data/index.tsx +++ b/webapp/src/components/App/Data/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState, useEffect } from "react"; import { AxiosError } from "axios"; import { useSnackbar } from "notistack"; diff --git a/webapp/src/components/App/Data/styles.ts b/webapp/src/components/App/Data/styles.ts index ea28cf1208..fe3be93d6b 100644 --- a/webapp/src/components/App/Data/styles.ts +++ b/webapp/src/components/App/Data/styles.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { styled, Box, Typography } from "@mui/material"; import DownloadIcon from "@mui/icons-material/Download"; diff --git a/webapp/src/components/App/Data/utils.tsx b/webapp/src/components/App/Data/utils.tsx index 3542b219be..a05c03a790 100644 --- a/webapp/src/components/App/Data/utils.tsx +++ b/webapp/src/components/App/Data/utils.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { GroupDTO, MatrixDataSetDTO, diff --git a/webapp/src/components/App/Settings/Groups/Header.tsx b/webapp/src/components/App/Settings/Groups/Header.tsx index f15dd25eeb..509763f096 100644 --- a/webapp/src/components/App/Settings/Groups/Header.tsx +++ b/webapp/src/components/App/Settings/Groups/Header.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button } from "@mui/material"; import GroupAddIcon from "@mui/icons-material/GroupAdd"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Settings/Groups/dialog/CreateGroupDialog.tsx b/webapp/src/components/App/Settings/Groups/dialog/CreateGroupDialog.tsx index dd99768fce..c35544a668 100644 --- a/webapp/src/components/App/Settings/Groups/dialog/CreateGroupDialog.tsx +++ b/webapp/src/components/App/Settings/Groups/dialog/CreateGroupDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import GroupAddIcon from "@mui/icons-material/GroupAdd"; import { useSnackbar } from "notistack"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Settings/Groups/dialog/GroupFormDialog/GroupForm.tsx b/webapp/src/components/App/Settings/Groups/dialog/GroupFormDialog/GroupForm.tsx index 39e8e26ca4..9027ee1bcd 100644 --- a/webapp/src/components/App/Settings/Groups/dialog/GroupFormDialog/GroupForm.tsx +++ b/webapp/src/components/App/Settings/Groups/dialog/GroupFormDialog/GroupForm.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { useMemo, useRef, useState } from "react"; import { diff --git a/webapp/src/components/App/Settings/Groups/dialog/GroupFormDialog/index.tsx b/webapp/src/components/App/Settings/Groups/dialog/GroupFormDialog/index.tsx index 26ea1d5b65..4f96b8a077 100644 --- a/webapp/src/components/App/Settings/Groups/dialog/GroupFormDialog/index.tsx +++ b/webapp/src/components/App/Settings/Groups/dialog/GroupFormDialog/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import FormDialog, { FormDialogProps, } from "../../../../../common/dialogs/FormDialog"; diff --git a/webapp/src/components/App/Settings/Groups/dialog/UpdateGroupDialog.tsx b/webapp/src/components/App/Settings/Groups/dialog/UpdateGroupDialog.tsx index 2a85371138..42e4541ed9 100644 --- a/webapp/src/components/App/Settings/Groups/dialog/UpdateGroupDialog.tsx +++ b/webapp/src/components/App/Settings/Groups/dialog/UpdateGroupDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import EditIcon from "@mui/icons-material/Edit"; import { useMemo } from "react"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Settings/Groups/index.tsx b/webapp/src/components/App/Settings/Groups/index.tsx index b662134427..dd28441273 100644 --- a/webapp/src/components/App/Settings/Groups/index.tsx +++ b/webapp/src/components/App/Settings/Groups/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, CircularProgress, diff --git a/webapp/src/components/App/Settings/Maintenance/index.tsx b/webapp/src/components/App/Settings/Maintenance/index.tsx index 817c7ca690..624006a4e6 100644 --- a/webapp/src/components/App/Settings/Maintenance/index.tsx +++ b/webapp/src/components/App/Settings/Maintenance/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Backdrop, Box, diff --git a/webapp/src/components/App/Settings/Tokens/Header.tsx b/webapp/src/components/App/Settings/Tokens/Header.tsx index cf1a6e3932..a64c3cc599 100644 --- a/webapp/src/components/App/Settings/Tokens/Header.tsx +++ b/webapp/src/components/App/Settings/Tokens/Header.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button } from "@mui/material"; import TokenIcon from "@mui/icons-material/Token"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Settings/Tokens/dialog/CreateTokenDialog.tsx b/webapp/src/components/App/Settings/Tokens/dialog/CreateTokenDialog.tsx index 44e0ebbf33..c735ddb702 100644 --- a/webapp/src/components/App/Settings/Tokens/dialog/CreateTokenDialog.tsx +++ b/webapp/src/components/App/Settings/Tokens/dialog/CreateTokenDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import TokenIcon from "@mui/icons-material/Token"; import { IconButton, Paper, Tooltip } from "@mui/material"; import { useSnackbar } from "notistack"; diff --git a/webapp/src/components/App/Settings/Tokens/dialog/TokenFormDialog/TokenForm.tsx b/webapp/src/components/App/Settings/Tokens/dialog/TokenFormDialog/TokenForm.tsx index 128d963bde..44018200dd 100644 --- a/webapp/src/components/App/Settings/Tokens/dialog/TokenFormDialog/TokenForm.tsx +++ b/webapp/src/components/App/Settings/Tokens/dialog/TokenFormDialog/TokenForm.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button, diff --git a/webapp/src/components/App/Settings/Tokens/dialog/TokenFormDialog/index.tsx b/webapp/src/components/App/Settings/Tokens/dialog/TokenFormDialog/index.tsx index 6da35bd3ad..8d30e9dd56 100644 --- a/webapp/src/components/App/Settings/Tokens/dialog/TokenFormDialog/index.tsx +++ b/webapp/src/components/App/Settings/Tokens/dialog/TokenFormDialog/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import FormDialog, { FormDialogProps, } from "../../../../../common/dialogs/FormDialog"; diff --git a/webapp/src/components/App/Settings/Tokens/dialog/TokenInfoDialog.tsx b/webapp/src/components/App/Settings/Tokens/dialog/TokenInfoDialog.tsx index f880eeae74..2929cfd18c 100644 --- a/webapp/src/components/App/Settings/Tokens/dialog/TokenInfoDialog.tsx +++ b/webapp/src/components/App/Settings/Tokens/dialog/TokenInfoDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { DialogContentText } from "@mui/material"; import { useTranslation } from "react-i18next"; import InfoIcon from "@mui/icons-material/Info"; diff --git a/webapp/src/components/App/Settings/Tokens/index.tsx b/webapp/src/components/App/Settings/Tokens/index.tsx index bbbe3d192e..ea8639c808 100644 --- a/webapp/src/components/App/Settings/Tokens/index.tsx +++ b/webapp/src/components/App/Settings/Tokens/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, CircularProgress, diff --git a/webapp/src/components/App/Settings/Users/Header.tsx b/webapp/src/components/App/Settings/Users/Header.tsx index d8e1a58fb2..fa4317eade 100644 --- a/webapp/src/components/App/Settings/Users/Header.tsx +++ b/webapp/src/components/App/Settings/Users/Header.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button } from "@mui/material"; import PersonAddAltIcon from "@mui/icons-material/PersonAddAlt"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Settings/Users/dialog/CreateUserDialog.tsx b/webapp/src/components/App/Settings/Users/dialog/CreateUserDialog.tsx index cf649266ee..298b7fb84d 100644 --- a/webapp/src/components/App/Settings/Users/dialog/CreateUserDialog.tsx +++ b/webapp/src/components/App/Settings/Users/dialog/CreateUserDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import PersonAddIcon from "@mui/icons-material/PersonAdd"; import { useSnackbar } from "notistack"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Settings/Users/dialog/UpdateUserDialog.tsx b/webapp/src/components/App/Settings/Users/dialog/UpdateUserDialog.tsx index de42dad178..1f8f6afabb 100644 --- a/webapp/src/components/App/Settings/Users/dialog/UpdateUserDialog.tsx +++ b/webapp/src/components/App/Settings/Users/dialog/UpdateUserDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import EditIcon from "@mui/icons-material/Edit"; import { useMemo } from "react"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Settings/Users/dialog/UserFormDialog/UserForm.tsx b/webapp/src/components/App/Settings/Users/dialog/UserFormDialog/UserForm.tsx index 59acfc6dc5..dbe75b017f 100644 --- a/webapp/src/components/App/Settings/Users/dialog/UserFormDialog/UserForm.tsx +++ b/webapp/src/components/App/Settings/Users/dialog/UserFormDialog/UserForm.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { useMemo, useRef, useState } from "react"; import { diff --git a/webapp/src/components/App/Settings/Users/dialog/UserFormDialog/index.tsx b/webapp/src/components/App/Settings/Users/dialog/UserFormDialog/index.tsx index f3d0d915c2..a5d54fd5eb 100644 --- a/webapp/src/components/App/Settings/Users/dialog/UserFormDialog/index.tsx +++ b/webapp/src/components/App/Settings/Users/dialog/UserFormDialog/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { DialogContentText } from "@mui/material"; import FormDialog, { FormDialogProps, diff --git a/webapp/src/components/App/Settings/Users/index.tsx b/webapp/src/components/App/Settings/Users/index.tsx index 7af7ee658d..ebca615afc 100644 --- a/webapp/src/components/App/Settings/Users/index.tsx +++ b/webapp/src/components/App/Settings/Users/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, CircularProgress, diff --git a/webapp/src/components/App/Settings/index.tsx b/webapp/src/components/App/Settings/index.tsx index 462a3ad428..0f3781212c 100644 --- a/webapp/src/components/App/Settings/index.tsx +++ b/webapp/src/components/App/Settings/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import SettingsIcon from "@mui/icons-material/Settings"; import { TabContext, TabList, TabPanel } from "@mui/lab"; import { Box, Tab } from "@mui/material"; diff --git a/webapp/src/components/App/Settings/utils.ts b/webapp/src/components/App/Settings/utils.ts index 73969f176c..b074304987 100644 --- a/webapp/src/components/App/Settings/utils.ts +++ b/webapp/src/components/App/Settings/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as RA from "ramda-adjunct"; import { RoleType } from "../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandImportButton.tsx b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandImportButton.tsx index 87127a3cec..3c0912d1f4 100644 --- a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandImportButton.tsx +++ b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandImportButton.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useRef } from "react"; import { useTranslation } from "react-i18next"; import { useSnackbar } from "notistack"; diff --git a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/CommandMatrixViewer.tsx b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/CommandMatrixViewer.tsx index 3d65703877..d57efcec10 100644 --- a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/CommandMatrixViewer.tsx +++ b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/CommandMatrixViewer.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button } from "@mui/material"; import { isString } from "ramda-adjunct"; import { useState } from "react"; diff --git a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/index.tsx b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/index.tsx index 0867cfbf4b..c53d7b7ef1 100644 --- a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/index.tsx +++ b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + // @flow import { CSSProperties, useState } from "react"; import { DraggableProvided } from "react-beautiful-dnd"; diff --git a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/style.ts b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/style.ts index 55b979cdfc..e0d056e66c 100644 --- a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/style.ts +++ b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListItem/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Accordion, Box, styled } from "@mui/material"; import DeleteIcon from "@mui/icons-material/HighlightOff"; import { PAPER_BACKGROUND_NO_TRANSPARENCY } from "../../../../../../../theme"; diff --git a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListView.tsx b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListView.tsx index a9b9d58168..5ba09ec873 100644 --- a/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListView.tsx +++ b/webapp/src/components/App/Singlestudy/Commands/Edition/DraggableCommands/CommandListView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { memo, useEffect, useRef } from "react"; import { FixedSizeList, areEqual, ListChildComponentProps } from "react-window"; import { diff --git a/webapp/src/components/App/Singlestudy/Commands/Edition/commandTypes.ts b/webapp/src/components/App/Singlestudy/Commands/Edition/commandTypes.ts index 89e368e793..76d63180d0 100644 --- a/webapp/src/components/App/Singlestudy/Commands/Edition/commandTypes.ts +++ b/webapp/src/components/App/Singlestudy/Commands/Edition/commandTypes.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { CommandResultDTO } from "../../../../../common/types"; export interface CommandItem { diff --git a/webapp/src/components/App/Singlestudy/Commands/Edition/index.tsx b/webapp/src/components/App/Singlestudy/Commands/Edition/index.tsx index 15934c4ad2..cdb2098be6 100644 --- a/webapp/src/components/App/Singlestudy/Commands/Edition/index.tsx +++ b/webapp/src/components/App/Singlestudy/Commands/Edition/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback, useEffect, useRef, useState } from "react"; import { useSnackbar } from "notistack"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/Commands/Edition/style.ts b/webapp/src/components/App/Singlestudy/Commands/Edition/style.ts index 6160ec5fca..50163125c0 100644 --- a/webapp/src/components/App/Singlestudy/Commands/Edition/style.ts +++ b/webapp/src/components/App/Singlestudy/Commands/Edition/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, styled } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/App/Singlestudy/Commands/Edition/utils.ts b/webapp/src/components/App/Singlestudy/Commands/Edition/utils.ts index 69df4c61f4..5d19407ad5 100644 --- a/webapp/src/components/App/Singlestudy/Commands/Edition/utils.ts +++ b/webapp/src/components/App/Singlestudy/Commands/Edition/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { CommandDTO, CommandResultDTO, diff --git a/webapp/src/components/App/Singlestudy/Commands/index.tsx b/webapp/src/components/App/Singlestudy/Commands/index.tsx index 858e60bd84..ef595a8eed 100644 --- a/webapp/src/components/App/Singlestudy/Commands/index.tsx +++ b/webapp/src/components/App/Singlestudy/Commands/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import Toolbar from "@mui/material/Toolbar"; import Divider from "@mui/material/Divider"; diff --git a/webapp/src/components/App/Singlestudy/Commands/style.ts b/webapp/src/components/App/Singlestudy/Commands/style.ts index 61cfb7f180..fab386d705 100644 --- a/webapp/src/components/App/Singlestudy/Commands/style.ts +++ b/webapp/src/components/App/Singlestudy/Commands/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Drawer, styled } from "@mui/material"; export const CommandDrawer = styled(Drawer)(({ theme }) => ({ diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/CreateVariantDialog.tsx b/webapp/src/components/App/Singlestudy/HomeView/InformationView/CreateVariantDialog.tsx index 7c23b14a4f..06526db96e 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/CreateVariantDialog.tsx +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/CreateVariantDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useMemo, useState } from "react"; import { useNavigate } from "react-router"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/JobStepper.tsx b/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/JobStepper.tsx index 85f2edbf64..80ce0830c3 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/JobStepper.tsx +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/JobStepper.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import Stepper from "@mui/material/Stepper"; import Step from "@mui/material/Step"; import StepLabel from "@mui/material/StepLabel"; diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/index.tsx b/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/index.tsx index e5edcbad76..263a12d1a5 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/index.tsx +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Paper, styled, Typography } from "@mui/material"; import { useCallback, useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/style.ts b/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/style.ts index 5b70ee2fca..296d4a5cb1 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/style.ts +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/LauncherHistory/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, StepConnector, diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/DetailsList.tsx b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/DetailsList.tsx index 55e6300dd7..295e521547 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/DetailsList.tsx +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/DetailsList.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import List from "@mui/material/List"; import ListItem from "@mui/material/ListItem"; import ListItemText from "@mui/material/ListItemText"; diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/NodeEditorModal/index.tsx b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/NodeEditorModal/index.tsx index 54e85cd6cf..f940943899 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/NodeEditorModal/index.tsx +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/NodeEditorModal/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { Editor, EditorState, getDefaultKeyBinding, RichUtils } from "draft-js"; import { Button } from "@mui/material"; diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/NodeEditorModal/style.ts b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/NodeEditorModal/style.ts index 2b6b2e9bb8..c5848881b5 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/NodeEditorModal/style.ts +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/NodeEditorModal/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, styled, Typography } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/index.tsx b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/index.tsx index e49b5d2a15..9491982e92 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/index.tsx +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { useSnackbar } from "notistack"; diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/utils.ts b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/utils.ts index 91ca0f7b57..4f2d146330 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/utils.ts +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/Notes/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable no-param-reassign */ import { ContentState, convertToRaw, EditorState } from "draft-js"; diff --git a/webapp/src/components/App/Singlestudy/HomeView/InformationView/index.tsx b/webapp/src/components/App/Singlestudy/HomeView/InformationView/index.tsx index 590e271ac3..52b57f4935 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/InformationView/index.tsx +++ b/webapp/src/components/App/Singlestudy/HomeView/InformationView/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { Paper, Button, Box, Divider } from "@mui/material"; import { useNavigate } from "react-router-dom"; diff --git a/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/index.tsx b/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/index.tsx index 284e53836e..3e483c8e21 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/index.tsx +++ b/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useMemo, useState } from "react"; import * as React from "react"; import { Box, styled } from "@mui/material"; diff --git a/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/treeconfig.ts b/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/treeconfig.ts index fd75119ad5..75fdc12ca7 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/treeconfig.ts +++ b/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/treeconfig.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + export const colors = ["#24CF9D", "#F3C918", "#E317DA", "#00B2FF"]; export const TILE_SIZE_X = 50; diff --git a/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/utils.ts b/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/utils.ts index cb53646e0a..f9225289fb 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/utils.ts +++ b/webapp/src/components/App/Singlestudy/HomeView/StudyTreeView/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /* eslint-disable no-param-reassign */ import { GenericInfo, diff --git a/webapp/src/components/App/Singlestudy/HomeView/index.tsx b/webapp/src/components/App/Singlestudy/HomeView/index.tsx index 3f3c0806da..83f4d765a5 100644 --- a/webapp/src/components/App/Singlestudy/HomeView/index.tsx +++ b/webapp/src/components/App/Singlestudy/HomeView/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useNavigate } from "react-router-dom"; import { Box } from "@mui/material"; import Split from "react-split"; diff --git a/webapp/src/components/App/Singlestudy/NavHeader/Actions.tsx b/webapp/src/components/App/Singlestudy/NavHeader/Actions.tsx index b922b7589c..fb9dca2669 100644 --- a/webapp/src/components/App/Singlestudy/NavHeader/Actions.tsx +++ b/webapp/src/components/App/Singlestudy/NavHeader/Actions.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Tooltip, Typography, Chip, Button, Divider } from "@mui/material"; import HistoryOutlinedIcon from "@mui/icons-material/HistoryOutlined"; import ContentCopyIcon from "@mui/icons-material/ContentCopy"; diff --git a/webapp/src/components/App/Singlestudy/NavHeader/ActionsMenu.tsx b/webapp/src/components/App/Singlestudy/NavHeader/ActionsMenu.tsx index f72b73860c..7e0c7b9135 100644 --- a/webapp/src/components/App/Singlestudy/NavHeader/ActionsMenu.tsx +++ b/webapp/src/components/App/Singlestudy/NavHeader/ActionsMenu.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Menu, MenuItem, ListItemIcon, ListItemText } from "@mui/material"; import { SvgIconComponent } from "@mui/icons-material"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/NavHeader/Details.tsx b/webapp/src/components/App/Singlestudy/NavHeader/Details.tsx index 3da34c1f23..2a59f1dca5 100644 --- a/webapp/src/components/App/Singlestudy/NavHeader/Details.tsx +++ b/webapp/src/components/App/Singlestudy/NavHeader/Details.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import ScheduleOutlinedIcon from "@mui/icons-material/ScheduleOutlined"; import UpdateOutlinedIcon from "@mui/icons-material/UpdateOutlined"; import AltRouteOutlinedIcon from "@mui/icons-material/AltRouteOutlined"; diff --git a/webapp/src/components/App/Singlestudy/NavHeader/index.tsx b/webapp/src/components/App/Singlestudy/NavHeader/index.tsx index 8518e8112e..decab0bfa8 100644 --- a/webapp/src/components/App/Singlestudy/NavHeader/index.tsx +++ b/webapp/src/components/App/Singlestudy/NavHeader/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState, MouseEvent } from "react"; import debug from "debug"; import { useSnackbar } from "notistack"; diff --git a/webapp/src/components/App/Singlestudy/PropertiesDialog.tsx b/webapp/src/components/App/Singlestudy/PropertiesDialog.tsx index 30b345ee28..c1600bf399 100644 --- a/webapp/src/components/App/Singlestudy/PropertiesDialog.tsx +++ b/webapp/src/components/App/Singlestudy/PropertiesDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import debug from "debug"; import * as R from "ramda"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/UpgradeDialog.tsx b/webapp/src/components/App/Singlestudy/UpgradeDialog.tsx index 7828d1b4c0..48663558b6 100644 --- a/webapp/src/components/App/Singlestudy/UpgradeDialog.tsx +++ b/webapp/src/components/App/Singlestudy/UpgradeDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import UpgradeIcon from "@mui/icons-material/Upgrade"; import { useMemo } from "react"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/Fields.tsx index a5687c6a14..8c6e2e411b 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box } from "@mui/material"; import { useTranslation } from "react-i18next"; import { useOutletContext } from "react-router"; @@ -8,6 +22,7 @@ import Fieldset from "../../../../../common/Fieldset"; import { useFormContextPlus } from "../../../../../common/Form"; import { AdequacyPatchFormFields, PRICE_TAKING_ORDER_OPTIONS } from "./utils"; import { StudyMetadata } from "../../../../../../common/types"; +import { validateNumber } from "../../../../../../utils/validationUtils"; function Fields() { const { t } = useTranslation(); @@ -81,10 +96,7 @@ function Fields() { name="thresholdInitiateCurtailmentSharingRule" control={control} rules={{ - min: { - value: 0, - message: t("form.field.minValue", { 0: 0 }), - }, + validate: validateNumber({ min: 0 }), }} /> diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/index.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/index.tsx index cdb28df743..8b8b178543 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { useTranslation } from "react-i18next"; import { StudyMetadata } from "../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/utils.ts b/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/utils.ts index 4e869bba6c..3fb10e2782 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/AdequacyPatch/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { StudyMetadata } from "../../../../../../common/types"; import client from "../../../../../../services/api/client"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/Fields.tsx index 8c2482b7f2..19a19d41a9 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box } from "@mui/material"; import { useTranslation } from "react-i18next"; import NumberFE from "../../../../../common/fieldEditors/NumberFE"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/index.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/index.tsx index 0e8f90cd71..28e5ef9ee2 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../common/types"; import { updateStudySynthesis } from "../../../../../../redux/ducks/studySyntheses"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/utils.ts b/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/utils.ts index 4a8b69e918..addfec700c 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/AdvancedParameters/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { DeepPartial } from "react-hook-form"; import { StudyMetadata } from "../../../../../../common/types"; import client from "../../../../../../services/api/client"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/General/Fields.tsx index 3bd79f0c94..f4d23505b4 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button, Divider } from "@mui/material"; import { useTranslation } from "react-i18next"; import SettingsIcon from "@mui/icons-material/Settings"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/Table.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/Table.tsx index 4abd82eb73..9b0648912a 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/Table.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/Table.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import TableForm from "../../../../../../../common/TableForm"; import { diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/index.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/index.tsx index e6499f591a..3f86bc643c 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TabContext, TabList, TabListProps, TabPanel } from "@mui/lab"; import { Box, Button, Tab, Skeleton } from "@mui/material"; import { useState } from "react"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/utils.ts b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/utils.ts index d59661fe60..87e4f5a979 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { AxiosResponse } from "axios"; import { StudyMetadata } from "../../../../../../../../common/types"; import client from "../../../../../../../../services/api/client"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/withAreas.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/withAreas.tsx index 2862d14c13..05dfcb013f 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/withAreas.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioBuilderDialog/withAreas.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ComponentType, useEffect, useMemo, useState } from "react"; import { Box } from "@mui/material"; import SplitView from "../../../../../../../common/SplitView"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioPlaylistDialog/index.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioPlaylistDialog/index.tsx index 6edda44cfb..80f78ef82c 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioPlaylistDialog/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioPlaylistDialog/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button, Divider } from "@mui/material"; import { useRef } from "react"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioPlaylistDialog/utils.ts b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioPlaylistDialog/utils.ts index d2098e2f4e..bd7c015df8 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioPlaylistDialog/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ScenarioPlaylistDialog/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { StudyMetadata } from "../../../../../../../../common/types"; import client from "../../../../../../../../services/api/client"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ThematicTrimmingDialog/index.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ThematicTrimmingDialog/index.tsx index 182aad6bcc..1449479876 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ThematicTrimmingDialog/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ThematicTrimmingDialog/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Accordion, AccordionDetails, diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ThematicTrimmingDialog/utils.ts b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ThematicTrimmingDialog/utils.ts index 61b29afa09..a3a16e5661 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ThematicTrimmingDialog/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/dialogs/ThematicTrimmingDialog/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as R from "ramda"; import { ThematicTrimmingConfig } from "../../../../../../../../services/api/studies/config/thematicTrimming/types"; import { O } from "ts-toolbelt"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/index.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/General/index.tsx index 312abef7d6..9d9ea519d9 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import * as R from "ramda"; import { useState } from "react"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/styles.ts b/webapp/src/components/App/Singlestudy/explore/Configuration/General/styles.ts index db13197036..702ed0e462 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/styles.ts +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/styles.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { styled } from "@mui/material"; export const FieldWithButton = styled("div")(({ theme }) => ({ diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/General/utils.ts b/webapp/src/components/App/Singlestudy/explore/Configuration/General/utils.ts index 41a9c218cf..612e43080f 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/General/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/General/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as R from "ramda"; import { StudyMetadata } from "../../../../../../common/types"; import client from "../../../../../../services/api/client"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/Fields.tsx index 2686de44f9..143b3108ed 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box } from "@mui/material"; import { useTranslation } from "react-i18next"; import { StudyMetadata } from "../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/index.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/index.tsx index 081f190175..775665d746 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../common/types"; import Form from "../../../../../common/Form"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/utils.ts b/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/utils.ts index 7d0fbad5c9..319509ac63 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/Optimization/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as R from "ramda"; //////////////////////////////////////////////////////////////// diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/Fields.tsx index d62aeffbc3..d70ab020a4 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Table, TableBody, diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/index.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/index.tsx index 045296b256..2619fe284c 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../common/types"; import Form from "../../../../../common/Form"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/utils.ts b/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/utils.ts index f962a46d86..19e42b5b33 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/TimeSeriesManagement/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { DeepPartial } from "react-hook-form"; import { StudyMetadata } from "../../../../../../common/types"; import client from "../../../../../../services/api/client"; diff --git a/webapp/src/components/App/Singlestudy/explore/Configuration/index.tsx b/webapp/src/components/App/Singlestudy/explore/Configuration/index.tsx index 96bc285952..2cb4312daa 100644 --- a/webapp/src/components/App/Singlestudy/explore/Configuration/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Configuration/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as R from "ramda"; import { useMemo, useState } from "react"; import { useOutletContext } from "react-router"; diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/Data/Json.tsx b/webapp/src/components/App/Singlestudy/explore/Debug/Data/Json.tsx index 3923ce319a..a80dfde726 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/Data/Json.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Debug/Data/Json.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { useTranslation } from "react-i18next"; import { AxiosError } from "axios"; diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/Data/Matrix.tsx b/webapp/src/components/App/Singlestudy/explore/Debug/Data/Matrix.tsx index c09b8c645f..43151e9d48 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/Data/Matrix.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Debug/Data/Matrix.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { MatrixStats, StudyMetadata } from "../../../../../../common/types"; import { Root, Content } from "./style"; diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/Data/Text.tsx b/webapp/src/components/App/Singlestudy/explore/Debug/Data/Text.tsx index 7f24d01f99..39d1406f4d 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/Data/Text.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Debug/Data/Text.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Button } from "@mui/material"; diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/Data/index.tsx b/webapp/src/components/App/Singlestudy/explore/Debug/Data/index.tsx index 0cb75a3eab..2147bba078 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/Data/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Debug/Data/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import Text from "./Text"; import Json from "./Json"; import Matrix from "./Matrix"; diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/Data/style.ts b/webapp/src/components/App/Singlestudy/explore/Debug/Data/style.ts index b0143fdec8..a69299b931 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/Data/style.ts +++ b/webapp/src/components/App/Singlestudy/explore/Debug/Data/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { styled, Box, Paper } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/DebugContext.ts b/webapp/src/components/App/Singlestudy/explore/Debug/DebugContext.ts index c602e0e98f..50642cba08 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/DebugContext.ts +++ b/webapp/src/components/App/Singlestudy/explore/Debug/DebugContext.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createContext, useContext } from "react"; import type { File } from "./utils"; import { voidFn } from "../../../../../utils/fnUtils"; diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/Tree/FileTreeItem.tsx b/webapp/src/components/App/Singlestudy/explore/Debug/Tree/FileTreeItem.tsx index b9e40f6a3d..13a5b00028 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/Tree/FileTreeItem.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Debug/Tree/FileTreeItem.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box } from "@mui/material"; import { TreeItem } from "@mui/x-tree-view"; import { TreeData, determineFileType, getFileIcon } from "../utils"; diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/Tree/index.tsx b/webapp/src/components/App/Singlestudy/explore/Debug/Tree/index.tsx index 577f388efb..6d2604b97f 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/Tree/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Debug/Tree/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TreeView } from "@mui/x-tree-view"; import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; import ChevronRightIcon from "@mui/icons-material/ChevronRight"; diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/index.tsx b/webapp/src/components/App/Singlestudy/explore/Debug/index.tsx index 1f6ae3cc2d..7e42a8303b 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Debug/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { useOutletContext } from "react-router-dom"; diff --git a/webapp/src/components/App/Singlestudy/explore/Debug/utils.ts b/webapp/src/components/App/Singlestudy/explore/Debug/utils.ts index a6e3798806..894f51dd78 100644 --- a/webapp/src/components/App/Singlestudy/explore/Debug/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Debug/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import DataObjectIcon from "@mui/icons-material/DataObject"; import TextSnippetIcon from "@mui/icons-material/TextSnippet"; import FolderIcon from "@mui/icons-material/Folder"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/AreaPropsView.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/AreaPropsView.tsx index 0976bf3e36..790ff7a6f6 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/AreaPropsView.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/AreaPropsView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { Area } from "../../../../../../common/types"; import PropertiesView from "../../../../../common/PropertiesView"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/AreasTab.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/AreasTab.tsx index 0bc26081dc..508e75705a 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/AreasTab.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/AreasTab.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useMemo } from "react"; import { useLocation, useNavigate, useOutletContext } from "react-router-dom"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/AllocationField.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/AllocationField.tsx index 40b99c009a..8c43074be9 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/AllocationField.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/AllocationField.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Typography, Grid } from "@mui/material"; import { t } from "i18next"; import { FieldArrayWithId } from "react-hook-form"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/Fields.tsx index e6ed81c9f6..ce708a4771 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useFieldArray } from "react-hook-form"; import { useOutletContext } from "react-router"; import { useFormContextPlus } from "../../../../../../../common/Form"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/index.tsx index 4e12df8757..8231ad0613 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Grid } from "@mui/material"; import { useOutletContext } from "react-router"; import { useState } from "react"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/utils.ts index 5544255e52..46041fdcc2 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Allocation/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { StudyMetadata, Area, diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/CorrelationField.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/CorrelationField.tsx index 98be0f2d7c..929cca3bb9 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/CorrelationField.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/CorrelationField.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Typography, Grid } from "@mui/material"; import { FieldArrayWithId } from "react-hook-form"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/Fields.tsx index 6a45074fd7..60a99464c7 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useFieldArray } from "react-hook-form"; import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/index.tsx index 631398ff0a..d6dce25747 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Grid } from "@mui/material"; import { useOutletContext } from "react-router"; import { useState } from "react"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/utils.ts index bd5e574389..dc2b547e63 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/Correlation/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { StudyMetadata, Area, diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/HydroMatrix.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/HydroMatrix.tsx index 2a8796074c..ff6218de35 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/HydroMatrix.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/HydroMatrix.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../../common/types"; import useAppSelector from "../../../../../../../redux/hooks/useAppSelector"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/HydroMatrixDialog.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/HydroMatrixDialog.tsx index 3a2a1fefd6..85223c55db 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/HydroMatrixDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/HydroMatrixDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Button, Box } from "@mui/material"; import { useTranslation } from "react-i18next"; import BasicDialog, { diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/InflowStructure/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/InflowStructure/index.tsx index 79bef831a5..d63487a116 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/InflowStructure/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/InflowStructure/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../../../common/types"; import useAppSelector from "../../../../../../../../redux/hooks/useAppSelector"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/InflowStructure/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/InflowStructure/utils.ts index e8fdc21be5..0c0525059a 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/InflowStructure/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/InflowStructure/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { type StudyMetadata } from "../../../../../../../../common/types"; import client from "../../../../../../../../services/api/client"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/Fields.tsx index fb8869a760..91d3cdb6ee 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import NumberFE from "../../../../../../../common/fieldEditors/NumberFE"; import SelectFE from "../../../../../../../common/fieldEditors/SelectFE"; import SwitchFE from "../../../../../../../common/fieldEditors/SwitchFE"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/index.tsx index 1c1cd56489..6b778d69da 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../../../common/types"; import useAppSelector from "../../../../../../../../redux/hooks/useAppSelector"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/utils.ts index 1616fb3e92..ebb3a34512 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ManagementOptions/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Area, StudyMetadata } from "../../../../../../../../common/types"; import client from "../../../../../../../../services/api/client"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/SplitHydroMatrix.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/SplitHydroMatrix.tsx index 6d64a3f378..1adbc4e2b9 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/SplitHydroMatrix.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/SplitHydroMatrix.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box } from "@mui/material"; import SplitView, { SplitViewProps } from "../../../../../../common/SplitView"; import HydroMatrix from "./HydroMatrix"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ViewMatrixButton.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ViewMatrixButton.tsx index 89e5bb7c14..e049eec4c2 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ViewMatrixButton.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/ViewMatrixButton.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Button } from "@mui/material"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/hooks/useAreasOptions.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/hooks/useAreasOptions.ts index 4678358d00..611c671625 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/hooks/useAreasOptions.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/hooks/useAreasOptions.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo } from "react"; import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/index.tsx index cca7f9519a..4209e439bf 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo } from "react"; import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/style.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/style.ts index 84ff8c71fe..b707cafec5 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/style.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { styled, Box, Paper } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/utils.ts index 7b4878aa73..316745826e 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Hydro/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { MatrixStats, MatrixType } from "../../../../../../../common/types"; import { SplitViewProps } from "../../../../../../common/SplitView"; import { getAllocationMatrix } from "./Allocation/utils"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Load.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Load.tsx index 030a09e0ee..a9d67519de 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Load.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Load.tsx @@ -1,12 +1,22 @@ -import { useOutletContext } from "react-router"; +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import useAppSelector from "../../../../../../redux/hooks/useAppSelector"; import { getCurrentAreaId } from "../../../../../../redux/selectors"; -import { MatrixStats, StudyMetadata } from "../../../../../../common/types"; -import MatrixInput from "../../../../../common/MatrixInput"; -import { Root } from "./style"; +import Matrix from "../../../../../common/MatrixGrid/Matrix"; function Load() { - const { study } = useOutletContext<{ study: StudyMetadata }>(); const currentArea = useAppSelector(getCurrentAreaId); const url = `input/load/series/load_${currentArea}`; @@ -14,11 +24,7 @@ function Load() { // JSX //////////////////////////////////////////////////////////////// - return ( - - - - ); + return ; } export default Load; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/MiscGen.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/MiscGen.tsx index f1c41d6344..46451653a9 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/MiscGen.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/MiscGen.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import useAppSelector from "../../../../../../redux/hooks/useAppSelector"; import { getCurrentAreaId } from "../../../../../../redux/selectors"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/Fields.tsx index 01a98538be..7055f2e792 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { useOutletContext } from "react-router"; import { useMemo } from "react"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/index.tsx index 3efe409b9e..d654ba80c7 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Paper } from "@mui/material"; import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/utils.ts index 1abe75682a..5eef82d3f7 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Properties/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + //////////////////////////////////////////////////////////////// // Enums //////////////////////////////////////////////////////////////// diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Fields.tsx index 7b7ea9774c..0ee371d7fa 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import NumberFE from "../../../../../../common/fieldEditors/NumberFE"; import SelectFE from "../../../../../../common/fieldEditors/SelectFE"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Form.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Form.tsx index fe39be2fc8..0d3b21cf17 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Form.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Form.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback } from "react"; import { Box, Button } from "@mui/material"; import { useParams, useOutletContext, useNavigate } from "react-router-dom"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Matrix.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Matrix.tsx index 0a3e269c85..4de557f4e5 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Matrix.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/Matrix.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as React from "react"; import Tabs from "@mui/material/Tabs"; import Tab from "@mui/material/Tab"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/index.tsx index 97637987d3..873774c391 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo, useState } from "react"; import { createMRTColumnHelper } from "material-react-table"; import { Box } from "@mui/material"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/utils.ts index 0c0418d8d3..f3e2520aa2 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Renewables/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Area, Cluster, diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Reserve.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Reserve.tsx index 1e45906346..0aae3af44d 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Reserve.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Reserve.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import useAppSelector from "../../../../../../redux/hooks/useAppSelector"; import { getCurrentAreaId } from "../../../../../../redux/selectors"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Solar.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Solar.tsx index 5e03558b39..2aeddedd2d 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Solar.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Solar.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import useAppSelector from "../../../../../../redux/hooks/useAppSelector"; import { getCurrentAreaId } from "../../../../../../redux/selectors"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Fields.tsx index 13af55156e..c492d318de 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { Box, Tooltip } from "@mui/material"; import NumberFE from "../../../../../../common/fieldEditors/NumberFE"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Form.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Form.tsx index 38a4bb2bc2..daa773bf9d 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Form.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Form.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback } from "react"; import { Box, Button } from "@mui/material"; import { useParams, useOutletContext, useNavigate } from "react-router-dom"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Matrix.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Matrix.tsx index 63ff535498..4fb27fdb55 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Matrix.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/Matrix.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as React from "react"; import * as R from "ramda"; import Tabs from "@mui/material/Tabs"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/index.tsx index 6c19931d74..9ffc3c4b27 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { createMRTColumnHelper } from "material-react-table"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/utils.ts index 04864fdc97..83bd3c60f7 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Storages/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { StudyMetadata, Area } from "../../../../../../../common/types"; import client from "../../../../../../../services/api/client"; import type { PartialExceptFor } from "../../../../../../../utils/tsUtils"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Fields.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Fields.tsx index 7f026c3c72..c8c15c8780 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Fields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Fields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Form.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Form.tsx index e37f4749dd..a549ff650f 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Form.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Form.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback } from "react"; import { Box, Button } from "@mui/material"; import { useParams, useOutletContext, useNavigate } from "react-router-dom"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Matrix.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Matrix.tsx index 7b703cc3f5..e735f20402 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Matrix.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/Matrix.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo, useState } from "react"; import Tabs from "@mui/material/Tabs"; import Tab from "@mui/material/Tab"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/index.tsx index 3a7cfd6801..1b71f18651 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo, useState } from "react"; import { createMRTColumnHelper } from "material-react-table"; import { Box } from "@mui/material"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/utils.ts index b5b0526ded..3a5895c8f6 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Thermal/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Area, Cluster, diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Wind.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Wind.tsx index 61298c83ce..39339779c4 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Wind.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/Wind.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import useAppSelector from "../../../../../../redux/hooks/useAppSelector"; import { getCurrentAreaId } from "../../../../../../redux/selectors"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/common/clustersUtils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/common/clustersUtils.ts index 3d5c80dd30..56d94c7497 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/common/clustersUtils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/common/clustersUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { MRT_AggregationFn } from "material-react-table"; import { ThermalClusterWithCapacity } from "../Thermal/utils"; import { RenewableClusterWithCapacity } from "../Renewables/utils"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/index.tsx index be71efeb87..11536b3276 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../common/types"; import EmptyView from "../../../../../common/page/SimpleContent"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/style.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/style.ts index ba2de46bd6..73594af06e 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/style.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Areas/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { styled, Box } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/AddDialog.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/AddDialog.tsx index 6891123b8c..ca5540e438 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/AddDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/AddDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo } from "react"; import { Box } from "@mui/material"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstPropsView.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstPropsView.tsx index 86269f33c6..e750c0a1aa 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstPropsView.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstPropsView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useMemo, useState } from "react"; import PropertiesView from "../../../../../common/PropertiesView"; import ListElement from "../../common/ListElement"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/AddConstraintTermForm/OptionsList.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/AddConstraintTermForm/OptionsList.tsx index ec6c8bc91b..63a33457a3 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/AddConstraintTermForm/OptionsList.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/AddConstraintTermForm/OptionsList.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { useFormContext } from "react-hook-form"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/AddConstraintTermForm/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/AddConstraintTermForm/index.tsx index 4290b3e599..f70facc13a 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/AddConstraintTermForm/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/AddConstraintTermForm/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { Box, Button, Typography } from "@mui/material"; import AddCircleOutlineRoundedIcon from "@mui/icons-material/AddCircleOutlineRounded"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/index.tsx index f6a5d6ed59..2326e00edc 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/AddConstraintTermDialog/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { AxiosError } from "axios"; import { useTranslation } from "react-i18next"; import { useSnackbar } from "notistack"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/BindingConstForm.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/BindingConstForm.tsx index a28a2644fc..d821dfe10d 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/BindingConstForm.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/BindingConstForm.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { AxiosError } from "axios"; import { useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintFields.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintFields.tsx index 7677a78c4f..6eca935f4c 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintFields.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintFields.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { BindingConstraint, OPERATORS, diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintTerm/OptionsList.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintTerm/OptionsList.tsx index 3927abadbd..f6777e5f66 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintTerm/OptionsList.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintTerm/OptionsList.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo } from "react"; import { useTranslation } from "react-i18next"; import { AllClustersAndLinks } from "../../../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintTerm/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintTerm/index.tsx index 48b2886008..04bb4e22b9 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintTerm/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/ConstraintTerm/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ChangeEvent, useMemo, useState } from "react"; import { Box, Button, TextField, Typography } from "@mui/material"; import AddCircleOutlineRoundedIcon from "@mui/icons-material/AddCircleOutlineRounded"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/Matrix.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/Matrix.tsx index ba9776cd1b..a3fd0f5cac 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/Matrix.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/Matrix.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { MatrixStats, StudyMetadata } from "../../../../../../../common/types"; import MatrixInput from "../../../../../../common/MatrixInput"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/ConstraintElement.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/ConstraintElement.tsx index 02b104c14f..5ae1d1c31c 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/ConstraintElement.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/ConstraintElement.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { FormControlLabel, Switch, Typography } from "@mui/material"; import { ReactNode } from "react"; import { ConstraintElementData, ConstraintElementRoot } from "./style"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/OffsetInput.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/OffsetInput.tsx index c2e7715f7b..f63a7288c1 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/OffsetInput.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/OffsetInput.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import HighlightOffIcon from "@mui/icons-material/HighlightOff"; import { Box } from "@mui/material"; import { PropsWithChildren } from "react"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/style.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/style.ts index f413ceb412..46d9d65f72 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/style.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/constraintviews/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Paper, styled } from "@mui/material"; export const ConstraintElementRoot = styled(Paper)(({ theme }) => ({ diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/index.tsx index 43dd656e8a..8b55779179 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { BindingConstraint } from "./utils"; import { Box, Button, Paper, Skeleton } from "@mui/material"; import Form from "../../../../../../common/Form"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/utils.ts index 2c6bcdb00d..30b7dbc06e 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/BindingConstView/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + //////////////////////////////////////////////////////////////// // Constants //////////////////////////////////////////////////////////////// diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/index.tsx index f4348d786c..f272e92f75 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/BindingConstraints/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box } from "@mui/material"; import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkPropsView.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkPropsView.tsx index 8ae6564e26..610dff4c74 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkPropsView.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkPropsView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import PropertiesView from "../../../../../common/PropertiesView"; import useAppSelector from "../../../../../../redux/hooks/useAppSelector"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/LinkForm.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/LinkForm.tsx index 039c2d8478..6bae8f2f63 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/LinkForm.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/LinkForm.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box } from "@mui/material"; import { AxiosError } from "axios"; import { useMemo } from "react"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/LinkMatrixView.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/LinkMatrixView.tsx index 2a2a792b47..7cb84b4ae6 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/LinkMatrixView.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/LinkMatrixView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as React from "react"; import { Divider, styled } from "@mui/material"; import Tabs from "@mui/material/Tabs"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/index.tsx index b2cf965232..bc2090ccff 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { LinkElement, StudyMetadata } from "../../../../../../../common/types"; import usePromise from "../../../../../../../hooks/usePromise"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/utils.ts index 19d6bcd4fc..d2cc46d077 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/LinkView/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { FieldValues } from "react-hook-form"; import { getStudyData } from "../../../../../../../services/api/study"; import { FilteringType } from "../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/index.tsx index fdc2a487c9..7d805ee3ba 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Links/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Links/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useOutletContext } from "react-router"; import { StudyMetadata } from "../../../../../../common/types"; import EmptyView from "../../../../../common/page/SimpleContent"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaConfig.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaConfig.tsx index 9faac8b9ac..db30224399 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaConfig.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaConfig.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { ColorResult, MaterialPicker } from "react-color"; import { Box, TextField, Divider } from "@mui/material"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaLink.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaLink.tsx index 884ea1b280..87f38baf9f 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaLink.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaLink.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { LinkElement } from "../../../../../../../common/types"; import { diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaLinks.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaLinks.tsx index 62ffb760a8..8f4f5dba3f 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaLinks.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/AreaLinks.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { useOutletContext } from "react-router-dom"; import { StudyMetadata } from "../../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/DeleteAreaDialog.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/DeleteAreaDialog.tsx index 40d37b520f..fd7f4350ad 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/DeleteAreaDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/DeleteAreaDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button, Typography } from "@mui/material"; import { AxiosError } from "axios"; import { useState } from "react"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/index.tsx index a605bd9247..b92d5a2c96 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { useOutletContext } from "react-router-dom"; import { StudyMetadata, UpdateAreaUi } from "../../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/style.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/style.ts index 58b439392b..aabe4c4bf2 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/style.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Areas/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { styled, Box } from "@mui/material"; import { HuePicker } from "react-color"; import DeleteIcon from "@mui/icons-material/Delete"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/CreateAreaDialog.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/CreateAreaDialog.tsx index 0233fd313c..3acf5026ea 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/CreateAreaDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/CreateAreaDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import AddCircleIcon from "@mui/icons-material/AddCircle"; import FormDialog from "../../../../../common/dialogs/FormDialog"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/CreateDistrictDialog.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/CreateDistrictDialog.tsx index f8b4191ac2..133f17c19e 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/CreateDistrictDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/CreateDistrictDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import AddCircleIcon from "@mui/icons-material/AddCircle"; import { useOutletContext } from "react-router"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/UpdateDistrictDialog.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/UpdateDistrictDialog.tsx index d99e37fc91..b930986b51 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/UpdateDistrictDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/UpdateDistrictDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { useOutletContext } from "react-router"; import { Delete, Edit } from "@mui/icons-material"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/index.tsx index 901f6f3dec..dae45e1dda 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Districts/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button } from "@mui/material"; import { useMemo, useState } from "react"; import { useOutletContext } from "react-router"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/CreateLayerDialog.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/CreateLayerDialog.tsx index 46c01c2b45..90b4ee39a1 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/CreateLayerDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/CreateLayerDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import AddCircleIcon from "@mui/icons-material/AddCircle"; import { useOutletContext } from "react-router"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/UpdateLayerDialog.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/UpdateLayerDialog.tsx index aa1c97b4eb..643e74cb33 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/UpdateLayerDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/UpdateLayerDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { useOutletContext } from "react-router"; import { Delete, Edit } from "@mui/icons-material"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/index.tsx index 84ad34f15c..aff05df5c4 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/Layers/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button } from "@mui/material"; import { useMemo, useState } from "react"; import { useOutletContext } from "react-router"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/index.tsx index 9e3a23f083..e52842abc5 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapConfig/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button, Tab } from "@mui/material"; import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapControlButtons.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapControlButtons.tsx index da11175123..973245da0f 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapControlButtons.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapControlButtons.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import Button from "@mui/material/Button"; import ButtonGroup from "@mui/material/ButtonGroup"; import SettingsIcon from "@mui/icons-material/Settings"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapGraph.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapGraph.tsx index 7991a612f6..d416128028 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapGraph.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapGraph.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { AxiosError } from "axios"; import { DebouncedFunc } from "lodash"; import { RefObject, useEffect, useState } from "react"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapHeader.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapHeader.tsx index 8824b7a3f1..e0d965f0cd 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapHeader.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/MapHeader.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Chip, Typography } from "@mui/material"; import { useTranslation } from "react-i18next"; import { LinkProperties } from "../../../../../../common/types"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Node.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Node.tsx index cd2775308a..2b55de00c4 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Node.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/Node.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import AddLinkIcon from "@mui/icons-material/AddLink"; import { StudyMapNode } from "../../../../../../redux/ducks/studyMaps"; import { NodeContainer, NodeDefault, NodeHighlighted } from "./style"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/index.tsx index ac02d2ded0..462d80aac6 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useMemo, useRef, useState } from "react"; import { useOutletContext } from "react-router-dom"; import AutoSizer from "react-virtualized-auto-sizer"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/style.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/style.ts index ca4a986c01..e3ebde2a05 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/style.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { styled, Box, Chip } from "@mui/material"; import mapbackground from "../../../../../../assets/img/mapbackground.png"; import { getTextColor, RGB } from "./utils"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/utils.ts b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/utils.ts index 1117d461a5..2025d4a71d 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/Map/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/Map/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo } from "react"; import { StudyLayer } from "../../../../../../common/types"; import { StudyMapNode } from "../../../../../../redux/ducks/studyMaps"; diff --git a/webapp/src/components/App/Singlestudy/explore/Modelization/index.tsx b/webapp/src/components/App/Singlestudy/explore/Modelization/index.tsx index 435d8b59c2..629e345f3c 100644 --- a/webapp/src/components/App/Singlestudy/explore/Modelization/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Modelization/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useMemo } from "react"; import { useNavigate, useOutletContext, useParams } from "react-router-dom"; import { Box } from "@mui/material"; diff --git a/webapp/src/components/App/Singlestudy/explore/Results/ResultDetails/index.tsx b/webapp/src/components/App/Singlestudy/explore/Results/ResultDetails/index.tsx index daa10520c2..767a5faa07 100644 --- a/webapp/src/components/App/Singlestudy/explore/Results/ResultDetails/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Results/ResultDetails/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Skeleton, diff --git a/webapp/src/components/App/Singlestudy/explore/Results/ResultDetails/utils.ts b/webapp/src/components/App/Singlestudy/explore/Results/ResultDetails/utils.ts index cba62478c8..042cc80bba 100644 --- a/webapp/src/components/App/Singlestudy/explore/Results/ResultDetails/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/Results/ResultDetails/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Area, LinkElement, Simulation } from "../../../../../../common/types"; export enum OutputItemType { diff --git a/webapp/src/components/App/Singlestudy/explore/Results/index.tsx b/webapp/src/components/App/Singlestudy/explore/Results/index.tsx index fa760c41ad..ea3c94a351 100644 --- a/webapp/src/components/App/Singlestudy/explore/Results/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Results/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, CircularProgress, diff --git a/webapp/src/components/App/Singlestudy/explore/TabWrapper.tsx b/webapp/src/components/App/Singlestudy/explore/TabWrapper.tsx index 3f04932134..5c7ac6dd03 100644 --- a/webapp/src/components/App/Singlestudy/explore/TabWrapper.tsx +++ b/webapp/src/components/App/Singlestudy/explore/TabWrapper.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import * as React from "react"; import { styled, SxProps, Theme } from "@mui/material"; diff --git a/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/CreateTemplateTableDialog.tsx b/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/CreateTemplateTableDialog.tsx index 9e5c223f6f..34da75ba1a 100644 --- a/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/CreateTemplateTableDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/CreateTemplateTableDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import AddCircleIcon from "@mui/icons-material/AddCircle"; import { createTableTemplate, type TableTemplate } from "../utils"; diff --git a/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/TableTemplateFormDialog.tsx b/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/TableTemplateFormDialog.tsx index 0b49e7335c..f019b529d5 100644 --- a/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/TableTemplateFormDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/TableTemplateFormDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box } from "@mui/material"; import { startCase } from "lodash"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/UpdateTemplateTableDialog.tsx b/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/UpdateTemplateTableDialog.tsx index ba8569d0a3..bf602db8dd 100644 --- a/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/UpdateTemplateTableDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/TableModeList/dialogs/UpdateTemplateTableDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import EditIcon from "@mui/icons-material/Edit"; import TableTemplateFormDialog, { diff --git a/webapp/src/components/App/Singlestudy/explore/TableModeList/index.tsx b/webapp/src/components/App/Singlestudy/explore/TableModeList/index.tsx index 161fe55c2f..ab4dcd787c 100644 --- a/webapp/src/components/App/Singlestudy/explore/TableModeList/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/TableModeList/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { MenuItem } from "@mui/material"; import { useOutletContext } from "react-router"; diff --git a/webapp/src/components/App/Singlestudy/explore/TableModeList/utils.ts b/webapp/src/components/App/Singlestudy/explore/TableModeList/utils.ts index e09d068ab2..8ded338463 100644 --- a/webapp/src/components/App/Singlestudy/explore/TableModeList/utils.ts +++ b/webapp/src/components/App/Singlestudy/explore/TableModeList/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { v4 as uuidv4 } from "uuid"; import { TableModeColumnsForType, diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/CandidateForm.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/CandidateForm.tsx index f2bdb8c89f..bb74aac2ad 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/CandidateForm.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/CandidateForm.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState, useEffect } from "react"; import { Box, diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/CreateCandidateDialog.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/CreateCandidateDialog.tsx index eca88218e4..8cda654de0 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/CreateCandidateDialog.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/CreateCandidateDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo, useState } from "react"; import { Button, ButtonGroup } from "@mui/material"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/XpansionPropsView.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/XpansionPropsView.tsx index c2bd1f5b70..6da12c7a73 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/XpansionPropsView.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/XpansionPropsView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback, useEffect, useState } from "react"; import { Box, Button } from "@mui/material"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/index.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/index.tsx index 42e7307f1d..66d41de0c2 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/Candidates/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { useOutletContext, useNavigate } from "react-router-dom"; import { AxiosError } from "axios"; diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/Capacities.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/Capacities.tsx index cf56870b35..8d6fbdeb92 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/Capacities.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/Capacities.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { getAllCapacities, deleteCapacity, diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/Constraints.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/Constraints.tsx index 65af583a90..9143c0abe7 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/Constraints.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/Constraints.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { getAllConstraints, deleteConstraints, diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/FileList.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/FileList.tsx index 2c80263fa8..e4e291caf1 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/FileList.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/FileList.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { useOutletContext } from "react-router-dom"; import { AxiosError } from "axios"; diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/Settings/SettingsForm.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/Settings/SettingsForm.tsx index 8a7298e2e5..259845da99 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/Settings/SettingsForm.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/Settings/SettingsForm.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState, useEffect } from "react"; import { Box, Divider, Typography, Button, TextField } from "@mui/material"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/Settings/index.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/Settings/index.tsx index aee2c9f4c7..a3b01a4b9b 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/Settings/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/Settings/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { useOutletContext } from "react-router-dom"; import { AxiosError } from "axios"; diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/Weights.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/Weights.tsx index 83d3693f98..3e18632c72 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/Weights.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/Weights.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { addWeight, deleteWeight, diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/index.tsx b/webapp/src/components/App/Singlestudy/explore/Xpansion/index.tsx index e242532f23..6f56a96318 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/index.tsx +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /* eslint-disable react-hooks/exhaustive-deps */ import { useEffect, useMemo, useState } from "react"; import { AxiosError } from "axios"; diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/share/styles.ts b/webapp/src/components/App/Singlestudy/explore/Xpansion/share/styles.ts index 864b9e084a..96fb5dbd31 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/share/styles.ts +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/share/styles.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Typography, Button, styled } from "@mui/material"; import VisibilityIcon from "@mui/icons-material/Visibility"; import DeleteIcon from "@mui/icons-material/Delete"; diff --git a/webapp/src/components/App/Singlestudy/explore/Xpansion/types.ts b/webapp/src/components/App/Singlestudy/explore/Xpansion/types.ts index b8e7a39888..84b190dda5 100644 --- a/webapp/src/components/App/Singlestudy/explore/Xpansion/types.ts +++ b/webapp/src/components/App/Singlestudy/explore/Xpansion/types.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + export interface XpansionSensitivitySettings { epsilon: number; capex: boolean; diff --git a/webapp/src/components/App/Singlestudy/explore/common/ListElement.tsx b/webapp/src/components/App/Singlestudy/explore/common/ListElement.tsx index 4292cd7324..69b9254d61 100644 --- a/webapp/src/components/App/Singlestudy/explore/common/ListElement.tsx +++ b/webapp/src/components/App/Singlestudy/explore/common/ListElement.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, ListItemButton, diff --git a/webapp/src/components/App/Singlestudy/explore/common/OutputFilters.tsx b/webapp/src/components/App/Singlestudy/explore/common/OutputFilters.tsx index 046ada24c3..39cef64ff6 100644 --- a/webapp/src/components/App/Singlestudy/explore/common/OutputFilters.tsx +++ b/webapp/src/components/App/Singlestudy/explore/common/OutputFilters.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo } from "react"; import { FieldPath } from "react-hook-form"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Singlestudy/explore/common/types.ts b/webapp/src/components/App/Singlestudy/explore/common/types.ts index 7dbbc82e08..c9ae042882 100644 --- a/webapp/src/components/App/Singlestudy/explore/common/types.ts +++ b/webapp/src/components/App/Singlestudy/explore/common/types.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + export type FilteringType = | "hourly" | "daily" diff --git a/webapp/src/components/App/Singlestudy/index.tsx b/webapp/src/components/App/Singlestudy/index.tsx index 1900d81cfb..7748369a48 100644 --- a/webapp/src/components/App/Singlestudy/index.tsx +++ b/webapp/src/components/App/Singlestudy/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /* eslint-disable react-hooks/exhaustive-deps */ import { useEffect, useCallback, useMemo, useState } from "react"; import { useParams } from "react-router-dom"; diff --git a/webapp/src/components/App/Studies/BatchModeMenu.tsx b/webapp/src/components/App/Studies/BatchModeMenu.tsx index c7bdf92e28..a301b4e27f 100644 --- a/webapp/src/components/App/Studies/BatchModeMenu.tsx +++ b/webapp/src/components/App/Studies/BatchModeMenu.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import BoltIcon from "@mui/icons-material/Bolt"; import { Box, Button, IconButton, Tooltip } from "@mui/material"; import { t } from "i18next"; diff --git a/webapp/src/components/App/Studies/CreateStudyDialog.tsx b/webapp/src/components/App/Studies/CreateStudyDialog.tsx index 97ef0399cf..c90a52cf5a 100644 --- a/webapp/src/components/App/Studies/CreateStudyDialog.tsx +++ b/webapp/src/components/App/Studies/CreateStudyDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import debug from "debug"; import { useSnackbar } from "notistack"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/MultipleLinkElement/index.tsx b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/MultipleLinkElement/index.tsx index 446bef67a9..91b0c285b6 100644 --- a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/MultipleLinkElement/index.tsx +++ b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/MultipleLinkElement/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Chip, ListItem } from "@mui/material"; import { useState } from "react"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/MultipleLinkElement/style.ts b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/MultipleLinkElement/style.ts index 7feae7fb79..4528d39b84 100644 --- a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/MultipleLinkElement/style.ts +++ b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/MultipleLinkElement/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, List, styled } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/SingleLinkElement/index.tsx b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/SingleLinkElement/index.tsx index 0cef1d0190..961d7a6929 100644 --- a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/SingleLinkElement/index.tsx +++ b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/SingleLinkElement/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, TextField } from "@mui/material"; import { useState } from "react"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/SingleLinkElement/style.ts b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/SingleLinkElement/style.ts index f964d5e250..5c9b66e87a 100644 --- a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/SingleLinkElement/style.ts +++ b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/SingleLinkElement/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, styled } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/index.tsx b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/index.tsx index cffc673c9e..d64fc9665d 100644 --- a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/index.tsx +++ b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { TextField } from "@mui/material"; diff --git a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/style.ts b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/style.ts index 48549e3035..870740514c 100644 --- a/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/style.ts +++ b/webapp/src/components/App/Studies/ExportModal/ExportFilter/Filter/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, styled } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/App/Studies/ExportModal/ExportFilter/TagSelect/index.tsx b/webapp/src/components/App/Studies/ExportModal/ExportFilter/TagSelect/index.tsx index ba4d1bca14..4ea269470f 100644 --- a/webapp/src/components/App/Studies/ExportModal/ExportFilter/TagSelect/index.tsx +++ b/webapp/src/components/App/Studies/ExportModal/ExportFilter/TagSelect/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { Chip, ListItem, TextField } from "@mui/material"; import { AddIcon, InputContainer, Root, TagContainer } from "./style"; diff --git a/webapp/src/components/App/Studies/ExportModal/ExportFilter/TagSelect/style.ts b/webapp/src/components/App/Studies/ExportModal/ExportFilter/TagSelect/style.ts index dae66af295..b043b11320 100644 --- a/webapp/src/components/App/Studies/ExportModal/ExportFilter/TagSelect/style.ts +++ b/webapp/src/components/App/Studies/ExportModal/ExportFilter/TagSelect/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, List, styled } from "@mui/material"; import AddCircleOutlinedIcon from "@mui/icons-material/AddCircleOutlined"; diff --git a/webapp/src/components/App/Studies/ExportModal/ExportFilter/index.tsx b/webapp/src/components/App/Studies/ExportModal/ExportFilter/index.tsx index e7a7fc9e85..a03d0f22fe 100644 --- a/webapp/src/components/App/Studies/ExportModal/ExportFilter/index.tsx +++ b/webapp/src/components/App/Studies/ExportModal/ExportFilter/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import _ from "lodash"; diff --git a/webapp/src/components/App/Studies/ExportModal/index.tsx b/webapp/src/components/App/Studies/ExportModal/index.tsx index aa0805437f..d9d24714cf 100644 --- a/webapp/src/components/App/Studies/ExportModal/index.tsx +++ b/webapp/src/components/App/Studies/ExportModal/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ReactNode, useEffect, useState } from "react"; import * as R from "ramda"; import { AxiosError } from "axios"; diff --git a/webapp/src/components/App/Studies/FilterDrawer.tsx b/webapp/src/components/App/Studies/FilterDrawer.tsx index 5a613d7a6a..676fb27f91 100644 --- a/webapp/src/components/App/Studies/FilterDrawer.tsx +++ b/webapp/src/components/App/Studies/FilterDrawer.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import Box from "@mui/material/Box"; import Toolbar from "@mui/material/Toolbar"; diff --git a/webapp/src/components/App/Studies/HeaderBottom.tsx b/webapp/src/components/App/Studies/HeaderBottom.tsx index da107facd7..bfab7c6511 100644 --- a/webapp/src/components/App/Studies/HeaderBottom.tsx +++ b/webapp/src/components/App/Studies/HeaderBottom.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button, Chip, Divider } from "@mui/material"; import { useTranslation } from "react-i18next"; import { indigo, purple } from "@mui/material/colors"; diff --git a/webapp/src/components/App/Studies/HeaderTopRight.tsx b/webapp/src/components/App/Studies/HeaderTopRight.tsx index 86b5228758..117658f834 100644 --- a/webapp/src/components/App/Studies/HeaderTopRight.tsx +++ b/webapp/src/components/App/Studies/HeaderTopRight.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Button } from "@mui/material"; import { useState } from "react"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Studies/LauncherDialog.tsx b/webapp/src/components/App/Studies/LauncherDialog.tsx index 670cb54cdc..5a000a9a7d 100644 --- a/webapp/src/components/App/Studies/LauncherDialog.tsx +++ b/webapp/src/components/App/Studies/LauncherDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { Box, diff --git a/webapp/src/components/App/Studies/MoveStudyDialog.tsx b/webapp/src/components/App/Studies/MoveStudyDialog.tsx index e451c31215..e3698438a5 100644 --- a/webapp/src/components/App/Studies/MoveStudyDialog.tsx +++ b/webapp/src/components/App/Studies/MoveStudyDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { DialogProps } from "@mui/material"; import TextField from "@mui/material/TextField"; import { useSnackbar } from "notistack"; diff --git a/webapp/src/components/App/Studies/RefreshButton.tsx b/webapp/src/components/App/Studies/RefreshButton.tsx index 122ab202bb..cf158c4fe7 100644 --- a/webapp/src/components/App/Studies/RefreshButton.tsx +++ b/webapp/src/components/App/Studies/RefreshButton.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Button, Tooltip } from "@mui/material"; import RefreshIcon from "@mui/icons-material/Refresh"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Studies/SideNav.tsx b/webapp/src/components/App/Studies/SideNav.tsx index d1e2f7ac38..c0009ce7d2 100644 --- a/webapp/src/components/App/Studies/SideNav.tsx +++ b/webapp/src/components/App/Studies/SideNav.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useNavigate } from "react-router"; import { Box, Typography, List, ListItem, ListItemText } from "@mui/material"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Studies/StudiesList/StudyCardCell.tsx b/webapp/src/components/App/Studies/StudiesList/StudyCardCell.tsx index cf5dd75955..64cfec20c3 100644 --- a/webapp/src/components/App/Studies/StudiesList/StudyCardCell.tsx +++ b/webapp/src/components/App/Studies/StudiesList/StudyCardCell.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { memo } from "react"; import { Box, Skeleton } from "@mui/material"; import { GridChildComponentProps, areEqual } from "react-window"; diff --git a/webapp/src/components/App/Studies/StudiesList/index.tsx b/webapp/src/components/App/Studies/StudiesList/index.tsx index 65c8befbf9..a6c412e625 100644 --- a/webapp/src/components/App/Studies/StudiesList/index.tsx +++ b/webapp/src/components/App/Studies/StudiesList/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { Box, diff --git a/webapp/src/components/App/Studies/StudyCard.tsx b/webapp/src/components/App/Studies/StudyCard.tsx index 4df2222511..79c0c6b991 100644 --- a/webapp/src/components/App/Studies/StudyCard.tsx +++ b/webapp/src/components/App/Studies/StudyCard.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { memo, useState } from "react"; import { NavLink, useNavigate } from "react-router-dom"; import { AxiosError } from "axios"; diff --git a/webapp/src/components/App/Studies/StudyTree.tsx b/webapp/src/components/App/Studies/StudyTree.tsx index e4876e8790..01a6200d85 100644 --- a/webapp/src/components/App/Studies/StudyTree.tsx +++ b/webapp/src/components/App/Studies/StudyTree.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback, Fragment } from "react"; import { Typography } from "@mui/material"; import TreeView from "@mui/lab/TreeView"; diff --git a/webapp/src/components/App/Studies/index.tsx b/webapp/src/components/App/Studies/index.tsx index c0ac35eac9..f422ce3249 100644 --- a/webapp/src/components/App/Studies/index.tsx +++ b/webapp/src/components/App/Studies/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { Box, Divider } from "@mui/material"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Studies/utils.ts b/webapp/src/components/App/Studies/utils.ts index 9da96074a5..dc2d1c5396 100644 --- a/webapp/src/components/App/Studies/utils.ts +++ b/webapp/src/components/App/Studies/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { StudyMetadata } from "../../../common/types"; export interface StudyTreeNode { diff --git a/webapp/src/components/App/Tasks/JobTableView.tsx b/webapp/src/components/App/Tasks/JobTableView.tsx index 506c95762e..5f8a34b674 100644 --- a/webapp/src/components/App/Tasks/JobTableView.tsx +++ b/webapp/src/components/App/Tasks/JobTableView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback, useEffect, useState } from "react"; import moment from "moment"; import { diff --git a/webapp/src/components/App/Tasks/LaunchJobLogView.tsx b/webapp/src/components/App/Tasks/LaunchJobLogView.tsx index 0fc2869005..44d2b8f643 100644 --- a/webapp/src/components/App/Tasks/LaunchJobLogView.tsx +++ b/webapp/src/components/App/Tasks/LaunchJobLogView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { AxiosError } from "axios"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/App/Tasks/NotificationBadge.tsx b/webapp/src/components/App/Tasks/NotificationBadge.tsx index 6a7715fa98..499a327d71 100644 --- a/webapp/src/components/App/Tasks/NotificationBadge.tsx +++ b/webapp/src/components/App/Tasks/NotificationBadge.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ReactNode, useCallback, useEffect, useRef } from "react"; import debug from "debug"; import { Box, Typography } from "@mui/material"; diff --git a/webapp/src/components/App/Tasks/index.tsx b/webapp/src/components/App/Tasks/index.tsx index 11c8a7f525..6f756c49b6 100644 --- a/webapp/src/components/App/Tasks/index.tsx +++ b/webapp/src/components/App/Tasks/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /* eslint-disable react-hooks/exhaustive-deps */ import { useState, useEffect, useMemo } from "react"; import { AxiosError } from "axios"; diff --git a/webapp/src/components/App/index.tsx b/webapp/src/components/App/index.tsx index 35e1714e09..18cb04f537 100644 --- a/webapp/src/components/App/index.tsx +++ b/webapp/src/components/App/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { BrowserRouter as Router, Navigate, diff --git a/webapp/src/components/common/ButtonBack.tsx b/webapp/src/components/common/ButtonBack.tsx index 0af4de5418..49fd1a5355 100644 --- a/webapp/src/components/common/ButtonBack.tsx +++ b/webapp/src/components/common/ButtonBack.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button } from "@mui/material"; import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/common/DocLink.tsx b/webapp/src/components/common/DocLink.tsx index aa2e811fc9..48e5468701 100644 --- a/webapp/src/components/common/DocLink.tsx +++ b/webapp/src/components/common/DocLink.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Help } from "@mui/icons-material"; import { Tooltip, IconButton, SxProps, Theme } from "@mui/material"; diff --git a/webapp/src/components/common/DownloadLink.tsx b/webapp/src/components/common/DownloadLink.tsx index ec67f0b674..1f3b45894d 100644 --- a/webapp/src/components/common/DownloadLink.tsx +++ b/webapp/src/components/common/DownloadLink.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { IconButton, Tooltip } from "@mui/material"; import { ReactElement } from "react"; import { refresh } from "../../redux/ducks/auth"; diff --git a/webapp/src/components/common/DownloadMatrixButton.tsx b/webapp/src/components/common/DownloadMatrixButton.tsx index 49551eb0f7..560a4b1dae 100644 --- a/webapp/src/components/common/DownloadMatrixButton.tsx +++ b/webapp/src/components/common/DownloadMatrixButton.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import FileUploadIcon from "@mui/icons-material/FileUpload"; import SplitButton from "./buttons/SplitButton.tsx"; import { downloadMatrix } from "../../services/api/studies/raw/index.ts"; diff --git a/webapp/src/components/common/DynamicDataTable/TableRowGroup.tsx b/webapp/src/components/common/DynamicDataTable/TableRowGroup.tsx index 6022a6e3a0..523694704a 100644 --- a/webapp/src/components/common/DynamicDataTable/TableRowGroup.tsx +++ b/webapp/src/components/common/DynamicDataTable/TableRowGroup.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TableRow, TableCell, diff --git a/webapp/src/components/common/DynamicDataTable/TableRowItem.tsx b/webapp/src/components/common/DynamicDataTable/TableRowItem.tsx index fa7ad0047b..214a84a730 100644 --- a/webapp/src/components/common/DynamicDataTable/TableRowItem.tsx +++ b/webapp/src/components/common/DynamicDataTable/TableRowItem.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TableCell, Checkbox, Chip, TableRow } from "@mui/material"; import { ChangeEvent, memo, useCallback } from "react"; import { Item, Column } from "./utils"; diff --git a/webapp/src/components/common/DynamicDataTable/TableToolbar.tsx b/webapp/src/components/common/DynamicDataTable/TableToolbar.tsx index 25efc3fb09..7364176e7b 100644 --- a/webapp/src/components/common/DynamicDataTable/TableToolbar.tsx +++ b/webapp/src/components/common/DynamicDataTable/TableToolbar.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Toolbar, alpha, diff --git a/webapp/src/components/common/DynamicDataTable/index.tsx b/webapp/src/components/common/DynamicDataTable/index.tsx index 96d67feeb9..6d00babf94 100644 --- a/webapp/src/components/common/DynamicDataTable/index.tsx +++ b/webapp/src/components/common/DynamicDataTable/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import Box from "@mui/material/Box"; import Table from "@mui/material/Table"; import TableBody from "@mui/material/TableBody"; diff --git a/webapp/src/components/common/DynamicDataTable/utils.ts b/webapp/src/components/common/DynamicDataTable/utils.ts index b805053234..3818fc3bd8 100644 --- a/webapp/src/components/common/DynamicDataTable/utils.ts +++ b/webapp/src/components/common/DynamicDataTable/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ChipProps } from "@mui/material"; //////////////////////////////////////////////////////////////// diff --git a/webapp/src/components/common/DynamicList.tsx b/webapp/src/components/common/DynamicList.tsx index db4198c956..d0ce83e085 100644 --- a/webapp/src/components/common/DynamicList.tsx +++ b/webapp/src/components/common/DynamicList.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import React from "react"; import { Grid, Divider, IconButton } from "@mui/material"; import { t } from "i18next"; diff --git a/webapp/src/components/common/EditableMatrix/MatrixGraphView.tsx b/webapp/src/components/common/EditableMatrix/MatrixGraphView.tsx index b6fd0b33b3..765f991b03 100644 --- a/webapp/src/components/common/EditableMatrix/MatrixGraphView.tsx +++ b/webapp/src/components/common/EditableMatrix/MatrixGraphView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import Plot from "react-plotly.js"; import AutoSizer from "react-virtualized-auto-sizer"; diff --git a/webapp/src/components/common/EditableMatrix/index.tsx b/webapp/src/components/common/EditableMatrix/index.tsx index 7916fa2a1f..42802118eb 100644 --- a/webapp/src/components/common/EditableMatrix/index.tsx +++ b/webapp/src/components/common/EditableMatrix/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState, useRef } from "react"; import debug from "debug"; import HT from "handsontable"; diff --git a/webapp/src/components/common/EditableMatrix/style.ts b/webapp/src/components/common/EditableMatrix/style.ts index dd62aecfd2..dcd6dc3159 100644 --- a/webapp/src/components/common/EditableMatrix/style.ts +++ b/webapp/src/components/common/EditableMatrix/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { styled, Box, Button } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/common/EditableMatrix/utils.ts b/webapp/src/components/common/EditableMatrix/utils.ts index 3daa633e8f..aed63af7e7 100644 --- a/webapp/src/components/common/EditableMatrix/utils.ts +++ b/webapp/src/components/common/EditableMatrix/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import _ from "lodash"; import moment, { DurationInputArg2 } from "moment"; import HT from "handsontable"; diff --git a/webapp/src/components/common/Fieldset.tsx b/webapp/src/components/common/Fieldset.tsx index 442e4078b6..7652ba5abb 100644 --- a/webapp/src/components/common/Fieldset.tsx +++ b/webapp/src/components/common/Fieldset.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, BoxProps, Divider, Typography } from "@mui/material"; import * as RA from "ramda-adjunct"; import { mergeSxProp } from "../../utils/muiUtils"; diff --git a/webapp/src/components/common/FileTable.tsx b/webapp/src/components/common/FileTable.tsx index bec4ed2338..6f8b3e40ae 100644 --- a/webapp/src/components/common/FileTable.tsx +++ b/webapp/src/components/common/FileTable.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ReactNode, useState } from "react"; import { Box, diff --git a/webapp/src/components/common/Form/FormContext.tsx b/webapp/src/components/common/Form/FormContext.tsx index 9a4d8bc376..64ecd0d35e 100644 --- a/webapp/src/components/common/Form/FormContext.tsx +++ b/webapp/src/components/common/Form/FormContext.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createContext } from "react"; const FormContext = createContext({ isAutoSubmitEnabled: false }); diff --git a/webapp/src/components/common/Form/index.tsx b/webapp/src/components/common/Form/index.tsx index c14bc783be..da4bcca048 100644 --- a/webapp/src/components/common/Form/index.tsx +++ b/webapp/src/components/common/Form/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /* eslint-disable @typescript-eslint/no-explicit-any */ import { FormEvent, useEffect, useMemo, useRef, useState } from "react"; import { diff --git a/webapp/src/components/common/Form/types.ts b/webapp/src/components/common/Form/types.ts index 0d8010e287..d7f27f94fb 100644 --- a/webapp/src/components/common/Form/types.ts +++ b/webapp/src/components/common/Form/types.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /* eslint-disable @typescript-eslint/no-explicit-any */ import { Control, diff --git a/webapp/src/components/common/Form/useFormApiPlus.ts b/webapp/src/components/common/Form/useFormApiPlus.ts index f0b7a3947d..be3239d69a 100644 --- a/webapp/src/components/common/Form/useFormApiPlus.ts +++ b/webapp/src/components/common/Form/useFormApiPlus.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { BatchFieldArrayUpdate, FieldPath, diff --git a/webapp/src/components/common/Form/useFormUndoRedo.ts b/webapp/src/components/common/Form/useFormUndoRedo.ts index db435d1395..9d3fec2158 100644 --- a/webapp/src/components/common/Form/useFormUndoRedo.ts +++ b/webapp/src/components/common/Form/useFormUndoRedo.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import useUndo, { Actions } from "use-undo"; import { FieldValues } from "react-hook-form"; import { useCallback, useEffect, useRef } from "react"; diff --git a/webapp/src/components/common/Form/utils.ts b/webapp/src/components/common/Form/utils.ts index 3a07564d39..e01e882708 100644 --- a/webapp/src/components/common/Form/utils.ts +++ b/webapp/src/components/common/Form/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as RA from "ramda-adjunct"; import { AutoSubmitConfig, FormProps } from "."; diff --git a/webapp/src/components/common/GroupedDataTable/CreateDialog.tsx b/webapp/src/components/common/GroupedDataTable/CreateDialog.tsx index 9df4f4e2c5..60a23e7c58 100644 --- a/webapp/src/components/common/GroupedDataTable/CreateDialog.tsx +++ b/webapp/src/components/common/GroupedDataTable/CreateDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import AddCircleIcon from "@mui/icons-material/AddCircle"; import FormDialog from "../dialogs/FormDialog"; import StringFE from "../fieldEditors/StringFE"; diff --git a/webapp/src/components/common/GroupedDataTable/DuplicateDialog.tsx b/webapp/src/components/common/GroupedDataTable/DuplicateDialog.tsx index 099748ef9a..5043bc8d53 100644 --- a/webapp/src/components/common/GroupedDataTable/DuplicateDialog.tsx +++ b/webapp/src/components/common/GroupedDataTable/DuplicateDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import ContentCopyIcon from "@mui/icons-material/ContentCopy"; import Fieldset from "../Fieldset"; diff --git a/webapp/src/components/common/GroupedDataTable/cellRenderers/BooleanCell.tsx b/webapp/src/components/common/GroupedDataTable/cellRenderers/BooleanCell.tsx index deb28e01a2..b59c496854 100644 --- a/webapp/src/components/common/GroupedDataTable/cellRenderers/BooleanCell.tsx +++ b/webapp/src/components/common/GroupedDataTable/cellRenderers/BooleanCell.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Chip } from "@mui/material"; import type { MRT_Cell, MRT_RowData } from "material-react-table"; import { useTranslation } from "react-i18next"; diff --git a/webapp/src/components/common/GroupedDataTable/index.tsx b/webapp/src/components/common/GroupedDataTable/index.tsx index 6aed12cc32..f24ab3f016 100644 --- a/webapp/src/components/common/GroupedDataTable/index.tsx +++ b/webapp/src/components/common/GroupedDataTable/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import Box from "@mui/material/Box"; import AddCircleOutlineIcon from "@mui/icons-material/AddCircleOutline"; import ContentCopyIcon from "@mui/icons-material/ContentCopy"; diff --git a/webapp/src/components/common/GroupedDataTable/types.ts b/webapp/src/components/common/GroupedDataTable/types.ts index 6f91852cb4..ba267f9f4b 100644 --- a/webapp/src/components/common/GroupedDataTable/types.ts +++ b/webapp/src/components/common/GroupedDataTable/types.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + export interface TRow { name: string; group: T; diff --git a/webapp/src/components/common/GroupedDataTable/utils.ts b/webapp/src/components/common/GroupedDataTable/utils.ts index f209d83bae..07b670d25a 100644 --- a/webapp/src/components/common/GroupedDataTable/utils.ts +++ b/webapp/src/components/common/GroupedDataTable/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as R from "ramda"; import { TableCellProps } from "@mui/material"; import type { TRow } from "./types"; diff --git a/webapp/src/components/common/Handsontable.tsx b/webapp/src/components/common/Handsontable.tsx index 2434eff01d..0e6d6c3f8a 100644 --- a/webapp/src/components/common/Handsontable.tsx +++ b/webapp/src/components/common/Handsontable.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { registerAllModules } from "handsontable/registry"; import HotTable, { HotTableProps } from "@handsontable/react"; import { styled } from "@mui/material"; diff --git a/webapp/src/components/common/JSONEditor/index.tsx b/webapp/src/components/common/JSONEditor/index.tsx index 6c7a0c19b5..0b1e291add 100644 --- a/webapp/src/components/common/JSONEditor/index.tsx +++ b/webapp/src/components/common/JSONEditor/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import JSONEditorLib, { JSONEditorOptions } from "jsoneditor"; import { useRef } from "react"; import { useDeepCompareEffect, useMount } from "react-use"; diff --git a/webapp/src/components/common/LinearProgressWithLabel.tsx b/webapp/src/components/common/LinearProgressWithLabel.tsx index 853f8eab5a..642efd3a4d 100644 --- a/webapp/src/components/common/LinearProgressWithLabel.tsx +++ b/webapp/src/components/common/LinearProgressWithLabel.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Tooltip, Box, diff --git a/webapp/src/components/common/LogModal.tsx b/webapp/src/components/common/LogModal.tsx index 9c386e494c..dc94255215 100644 --- a/webapp/src/components/common/LogModal.tsx +++ b/webapp/src/components/common/LogModal.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback, useEffect, diff --git a/webapp/src/components/common/MatrixGrid/Matrix.tsx b/webapp/src/components/common/MatrixGrid/Matrix.tsx new file mode 100644 index 0000000000..128bf480cc --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/Matrix.tsx @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { Divider, Skeleton } from "@mui/material"; +import MatrixGrid from "."; +import { useMatrix } from "./useMatrix"; +import { useState } from "react"; +import { useTranslation } from "react-i18next"; +import ImportDialog from "../dialogs/ImportDialog"; +import { useOutletContext } from "react-router"; +import { StudyMetadata } from "../../../common/types"; +import { MatrixContainer, MatrixHeader, MatrixTitle } from "./style"; +import MatrixActions from "./MatrixActions"; +import EmptyView from "../page/SimpleContent"; + +interface MatrixProps { + url: string; + title?: string; + enableTimeSeriesColumns?: boolean; + enableAggregateColumns?: boolean; +} + +function Matrix({ + url, + title = "global.timeSeries", + enableTimeSeriesColumns = true, + enableAggregateColumns = false, +}: MatrixProps) { + const { t } = useTranslation(); + const { study } = useOutletContext<{ study: StudyMetadata }>(); + const [openImportDialog, setOpenImportDialog] = useState(false); + + const { + data, + error, + isLoading, + isSubmitting, + columns, + dateTime, + handleCellEdit, + handleMultipleCellsEdit, + handleImport, + handleSaveUpdates, + pendingUpdatesCount, + undo, + redo, + canUndo, + canRedo, + } = useMatrix(study.id, url, enableTimeSeriesColumns, enableAggregateColumns); + + //////////////////////////////////////////////////////////////// + // JSX + //////////////////////////////////////////////////////////////// + + if (isLoading) { + return ; + } + + if (error) { + return ; + } + + if (!data || data.length === 0) { + return ; + } + + return ( + + + {t(title)} + setOpenImportDialog(true)} + onSave={handleSaveUpdates} + studyId={study.id} + path={url} + disabled={data.length === 0} + pendingUpdatesCount={pendingUpdatesCount} + isSubmitting={isSubmitting} + undo={undo} + redo={redo} + canUndo={canUndo} + canRedo={canRedo} + /> + + + + {openImportDialog && ( + setOpenImportDialog(false)} + onImport={handleImport} + accept={{ "text/*": [".csv", ".tsv", ".txt"] }} + /> + )} + + ); +} + +export default Matrix; diff --git a/webapp/src/components/common/MatrixGrid/MatrixActions.tsx b/webapp/src/components/common/MatrixGrid/MatrixActions.tsx new file mode 100644 index 0000000000..b15634d03d --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/MatrixActions.tsx @@ -0,0 +1,115 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { Box, Divider, IconButton, Tooltip } from "@mui/material"; +import SplitButton from "../buttons/SplitButton"; +import DownloadMatrixButton from "../DownloadMatrixButton"; +import FileDownload from "@mui/icons-material/FileDownload"; +import { useTranslation } from "react-i18next"; +import { LoadingButton } from "@mui/lab"; +import Save from "@mui/icons-material/Save"; +import { Undo, Redo } from "@mui/icons-material"; + +interface MatrixActionsProps { + onImport: VoidFunction; + onSave: VoidFunction; + studyId: string; + path: string; + disabled: boolean; + pendingUpdatesCount: number; + isSubmitting: boolean; + undo: VoidFunction; + redo: VoidFunction; + canUndo: boolean; + canRedo: boolean; +} + +function MatrixActions({ + onImport, + onSave, + studyId, + path, + disabled, + pendingUpdatesCount, + isSubmitting, + undo, + redo, + canUndo, + canRedo, +}: MatrixActionsProps) { + const { t } = useTranslation(); + + //////////////////////////////////////////////////////////////// + // JSX + //////////////////////////////////////////////////////////////// + + return ( + + + + + + + + + + + + + + + + } + variant="contained" + size="small" + disabled={pendingUpdatesCount === 0} + > + ({pendingUpdatesCount}) + + + , + }} + disabled={isSubmitting} + > + {t("global.import")} + + + + ); +} + +export default MatrixActions; diff --git a/webapp/src/components/common/MatrixGrid/index.test.tsx b/webapp/src/components/common/MatrixGrid/index.test.tsx new file mode 100644 index 0000000000..363ae7b8c2 --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/index.test.tsx @@ -0,0 +1,234 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { render } from "@testing-library/react"; +import MatrixGrid, { MatrixGridProps } from "."; +import Box from "@mui/material/Box"; +import { mockGetBoundingClientRect } from "../../../tests/mocks/mockGetBoundingClientRect"; +import { type EnhancedGridColumn, ColumnTypes } from "./types"; +import { mockHTMLCanvasElement } from "../../../tests/mocks/mockHTMLCanvasElement"; + +beforeEach(() => { + mockHTMLCanvasElement(); + mockGetBoundingClientRect(); + vi.clearAllMocks(); +}); + +function renderMatrixGrid( + width: string, + height: string, + data: MatrixGridProps["data"], + columns: EnhancedGridColumn[], + rows: number, +) { + return render( + + + , + ); +} + +function assertDimensions( + element: HTMLElement, + expectedWidth: number, + expectedHeight: number, +) { + const rect = element.getBoundingClientRect(); + expect(rect.width).toBe(expectedWidth); + expect(rect.height).toBe(expectedHeight); +} + +describe("MatrixGrid rendering", () => { + test("MatrixGrid should be rendered within a 450x500px container and match these dimensions", () => { + const data = [ + [1, 2, 3], + [4, 5, 6], + ]; + + const columns = [ + { + id: "col1", + title: "Column 1", + width: 100, + type: ColumnTypes.Number, + editable: true, + order: 0, + }, + { + id: "col2", + title: "Column 2", + width: 100, + type: ColumnTypes.Number, + editable: true, + order: 1, + }, + { + id: "col3", + title: "Column 3", + width: 100, + type: ColumnTypes.Number, + editable: true, + order: 2, + }, + ]; + + const rows = 2; + + // Render the MatrixGrid inside a parent container with specific dimensions + const { container } = renderMatrixGrid( + "450px", // Use inline style for exact measurement + "500px", + data, + columns, + rows, + ); + + const matrix = container.firstChild; + + if (matrix instanceof HTMLElement) { + expect(matrix).toBeInTheDocument(); + assertDimensions(matrix, 450, 500); + } else { + throw new Error("Expected an HTMLElement but received a different node."); + } + }); + + test("MatrixGrid should render correctly with no data", () => { + const data: MatrixGridProps["data"] = []; + + const columns = [ + { + id: "col1", + title: "Column 1", + width: 100, + type: ColumnTypes.Number, + editable: true, + order: 0, + }, + { + id: "col2", + title: "Column 2", + width: 100, + type: ColumnTypes.Number, + editable: true, + order: 1, + }, + { + id: "col3", + title: "Column 3", + width: 100, + type: ColumnTypes.Number, + editable: true, + order: 2, + }, + ]; + + const rows = 0; + + const { container } = renderMatrixGrid( + "450px", + "500px", + data, + columns, + rows, + ); + + const matrix = container.firstChild; + + if (matrix instanceof HTMLElement) { + expect(matrix).toBeInTheDocument(); + assertDimensions(matrix, 450, 500); + } else { + throw new Error("Expected an HTMLElement but received a different node."); + } + }); + + test("MatrixGrid should match the provided dimensions when resized", () => { + const data = [ + [1, 2, 3], + [4, 5, 6], + ]; + + const columns = [ + { + id: "col1", + title: "Column 1", + width: 100, + type: ColumnTypes.Number, + editable: true, + order: 0, + }, + { + id: "col2", + title: "Column 2", + width: 100, + type: ColumnTypes.Number, + editable: true, + order: 1, + }, + { + id: "col3", + title: "Column 3", + width: 100, + type: ColumnTypes.Number, + editable: true, + order: 2, + }, + ]; + + const rows = 2; + + const { container, rerender } = renderMatrixGrid( + "450px", + "500px", + data, + columns, + rows, + ); + + let matrix = container.firstChild; + + if (matrix instanceof HTMLElement) { + assertDimensions(matrix, 450, 500); + } else { + throw new Error("Expected an HTMLElement but received a different node."); + } + + rerender( + + + , + ); + + matrix = container.firstChild; + + if (matrix instanceof HTMLElement) { + assertDimensions(matrix, 300, 400); + } else { + throw new Error("Expected an HTMLElement but received a different node."); + } + }); +}); diff --git a/webapp/src/components/common/MatrixGrid/index.tsx b/webapp/src/components/common/MatrixGrid/index.tsx new file mode 100644 index 0000000000..d894b8d4ab --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/index.tsx @@ -0,0 +1,165 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import "@glideapps/glide-data-grid/dist/index.css"; +import DataEditor, { + CompactSelection, + EditableGridCell, + EditListItem, + GridCellKind, + GridSelection, + Item, +} from "@glideapps/glide-data-grid"; +import { useGridCellContent } from "./useGridCellContent"; +import { useMemo, useState } from "react"; +import { EnhancedGridColumn, GridUpdate } from "./types"; +import { darkTheme, readOnlyDarkTheme } from "./utils"; +import { useColumnMapping } from "./useColumnMapping"; + +export interface MatrixGridProps { + data: number[][]; + rows: number; + columns: EnhancedGridColumn[]; + dateTime?: string[]; + aggregates?: Record; + rowHeaders?: string[]; + width?: string; + height?: string; + onCellEdit?: (update: GridUpdate) => void; + onMultipleCellsEdit?: (updates: GridUpdate[]) => void; + readOnly?: boolean; +} + +function MatrixGrid({ + data, + rows, + columns, + dateTime, + aggregates, + rowHeaders, + width = "100%", + height = "100%", + onCellEdit, + onMultipleCellsEdit, + readOnly = false, +}: MatrixGridProps) { + const [selection, setSelection] = useState({ + columns: CompactSelection.empty(), + rows: CompactSelection.empty(), + }); + + const { gridToData } = useColumnMapping(columns); + + const theme = useMemo(() => { + if (readOnly) { + return { + ...darkTheme, + ...readOnlyDarkTheme, + }; + } + + return darkTheme; + }, [readOnly]); + + const getCellContent = useGridCellContent( + data, + columns, + gridToData, + dateTime, + aggregates, + rowHeaders, + readOnly, + ); + + //////////////////////////////////////////////////////////////// + // Event Handlers + //////////////////////////////////////////////////////////////// + + const handleCellEdited = (coordinates: Item, value: EditableGridCell) => { + if (value.kind !== GridCellKind.Number) { + // Invalid numeric value + return; + } + + const dataCoordinates = gridToData(coordinates); + + if (dataCoordinates && onCellEdit) { + onCellEdit({ coordinates: dataCoordinates, value }); + } + }; + + const handleCellsEdited = (newValues: readonly EditListItem[]) => { + const updates = newValues + .map((edit): GridUpdate | null => { + const dataCoordinates = gridToData(edit.location); + + if (edit.value.kind !== GridCellKind.Number || !dataCoordinates) { + return null; + } + + return { + coordinates: dataCoordinates, + value: edit.value, + }; + }) + .filter((update): update is GridUpdate => update !== null); + + if (updates.length === 0) { + // No valid updates + return; + } + + if (onCellEdit && updates.length === 1) { + // If only one cell is edited,`onCellEdit` is called + // we don't need to call `onMultipleCellsEdit` + return; + } + + if (onMultipleCellsEdit) { + onMultipleCellsEdit(updates); + } + + // Return true to prevent calling `onCellEdit` + // for each cell after`onMultipleCellsEdit` is called + return true; + }; + + //////////////////////////////////////////////////////////////// + // JSX + //////////////////////////////////////////////////////////////// + + return ( + <> + +
+ + ); +} + +export default MatrixGrid; diff --git a/webapp/src/components/common/MatrixGrid/style.ts b/webapp/src/components/common/MatrixGrid/style.ts new file mode 100644 index 0000000000..d99c3ad7d6 --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/style.ts @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import styled from "@emotion/styled"; +import { Box, Typography } from "@mui/material"; + +export const MatrixContainer = styled(Box)(() => ({ + width: "100%", + height: "100%", + display: "flex", + flexDirection: "column", + alignItems: "center", + overflow: "hidden", +})); + +export const MatrixHeader = styled(Box)(() => ({ + width: "100%", + display: "flex", + flexFlow: "row wrap", + justifyContent: "space-between", + alignItems: "flex-end", +})); + +export const MatrixTitle = styled(Typography)(() => ({ + fontSize: 20, + fontWeight: 400, + lineHeight: 1, +})); diff --git a/webapp/src/components/common/MatrixGrid/types.ts b/webapp/src/components/common/MatrixGrid/types.ts new file mode 100644 index 0000000000..af94b98d97 --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/types.ts @@ -0,0 +1,85 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { + BaseGridColumn, + EditableGridCell, + Item, +} from "@glideapps/glide-data-grid"; + +//////////////////////////////////////////////////////////////// +// Enums +//////////////////////////////////////////////////////////////// + +export const ColumnTypes = { + DateTime: "datetime", + Number: "number", + Text: "text", + Aggregate: "aggregate", +} as const; + +export const Operations = { + ADD: "+", + SUB: "-", + MUL: "*", + DIV: "/", + ABS: "ABS", + EQ: "=", +} as const; + +//////////////////////////////////////////////////////////////// +// Types +//////////////////////////////////////////////////////////////// + +// Derived types +export type ColumnType = (typeof ColumnTypes)[keyof typeof ColumnTypes]; +export type Operation = (typeof Operations)[keyof typeof Operations]; + +export interface EnhancedGridColumn extends BaseGridColumn { + id: string; + width?: number; + type: ColumnType; + editable: boolean; +} +// Represents data coming from the API +export interface MatrixDataDTO { + data: number[][]; + columns: number[]; + index: number[]; +} + +export type Coordinates = [number, number]; + +// Shape of updates provided by Glide Data Grid +export interface GridUpdate { + coordinates: Item; // The cell being updated + value: EditableGridCell; +} + +// Shape of updates to be sent to the API +export interface MatrixUpdate { + operation: Operation; + value: number; +} + +// Shape of multiple updates to be sent to the API +export interface MatrixUpdateDTO { + coordinates: number[][]; // Array of [col, row] pairs + operation: MatrixUpdate; +} + +export type DateIncrementStrategy = ( + date: moment.Moment, + step: number, +) => moment.Moment; diff --git a/webapp/src/components/common/MatrixGrid/useColumnMapping.test.ts b/webapp/src/components/common/MatrixGrid/useColumnMapping.test.ts new file mode 100644 index 0000000000..e88473b9a6 --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/useColumnMapping.test.ts @@ -0,0 +1,144 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { renderHook } from "@testing-library/react"; +import { describe, test, expect } from "vitest"; +import { useColumnMapping } from "./useColumnMapping"; +import { EnhancedGridColumn, ColumnTypes } from "./types"; + +describe("useColumnMapping", () => { + const testColumns: EnhancedGridColumn[] = [ + { + id: "text", + title: "Text", + type: ColumnTypes.Text, + width: 100, + editable: false, + }, + { + id: "date", + title: "Date", + type: ColumnTypes.DateTime, + width: 100, + editable: false, + }, + { + id: "num1", + title: "Number 1", + type: ColumnTypes.Number, + width: 100, + editable: true, + }, + { + id: "num2", + title: "Number 2", + type: ColumnTypes.Number, + width: 100, + editable: true, + }, + { + id: "agg", + title: "Aggregate", + type: ColumnTypes.Aggregate, + width: 100, + editable: false, + }, + ]; + + test("should create gridToData and dataToGrid functions", () => { + const { result } = renderHook(() => useColumnMapping(testColumns)); + expect(result.current.gridToData).toBeDefined(); + expect(result.current.dataToGrid).toBeDefined(); + }); + + describe("gridToData", () => { + test("should return null for non-data columns", () => { + const { result } = renderHook(() => useColumnMapping(testColumns)); + expect(result.current.gridToData([0, 0])).toBeNull(); // Text column + expect(result.current.gridToData([1, 0])).toBeNull(); // DateTime column + expect(result.current.gridToData([4, 0])).toBeNull(); // Aggregate column + }); + + test("should map grid coordinates to data coordinates for data columns", () => { + const { result } = renderHook(() => useColumnMapping(testColumns)); + expect(result.current.gridToData([2, 0])).toEqual([0, 0]); // First Number column + expect(result.current.gridToData([3, 1])).toEqual([1, 1]); // Second Number column + }); + }); + + describe("dataToGrid", () => { + test("should map data coordinates to grid coordinates", () => { + const { result } = renderHook(() => useColumnMapping(testColumns)); + expect(result.current.dataToGrid([0, 0])).toEqual([2, 0]); // First data column + expect(result.current.dataToGrid([1, 1])).toEqual([3, 1]); // Second data column + }); + }); + + test("should handle columns with only non-data types", () => { + const nonDataColumns: EnhancedGridColumn[] = [ + { + id: "text", + title: "Text", + type: ColumnTypes.Text, + width: 100, + editable: false, + }, + { + id: "date", + title: "Date", + type: ColumnTypes.DateTime, + width: 100, + editable: false, + }, + ]; + const { result } = renderHook(() => useColumnMapping(nonDataColumns)); + expect(result.current.gridToData([0, 0])).toBeNull(); + expect(result.current.gridToData([1, 0])).toBeNull(); + expect(result.current.dataToGrid([0, 0])).toEqual([undefined, 0]); // No data columns, so this should return an invalid grid coordinate + }); + + test("should handle columns with only data types", () => { + const dataOnlyColumns: EnhancedGridColumn[] = [ + { + id: "num1", + title: "Number 1", + type: ColumnTypes.Number, + width: 100, + editable: true, + }, + { + id: "num2", + title: "Number 2", + type: ColumnTypes.Number, + width: 100, + editable: true, + }, + ]; + const { result } = renderHook(() => useColumnMapping(dataOnlyColumns)); + expect(result.current.gridToData([0, 0])).toEqual([0, 0]); + expect(result.current.gridToData([1, 1])).toEqual([1, 1]); + expect(result.current.dataToGrid([0, 0])).toEqual([0, 0]); + expect(result.current.dataToGrid([1, 1])).toEqual([1, 1]); + }); + + test("should memoize the result", () => { + const { result, rerender } = renderHook( + (props) => useColumnMapping(props.columns), + { initialProps: { columns: testColumns } }, + ); + const initialResult = result.current; + rerender({ columns: testColumns }); + expect(result.current).toBe(initialResult); + }); +}); diff --git a/webapp/src/components/common/MatrixGrid/useColumnMapping.ts b/webapp/src/components/common/MatrixGrid/useColumnMapping.ts new file mode 100644 index 0000000000..522f93d025 --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/useColumnMapping.ts @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { useMemo } from "react"; +import { Item } from "@glideapps/glide-data-grid"; +import { EnhancedGridColumn, ColumnTypes } from "./types"; + +/** + * A custom hook that provides coordinate mapping functions for a grid with mixed column types. + * + * @description + * This hook addresses a common issue in grid components that display both data and non-data columns: + * the mismatch between grid coordinates (visual position) and data coordinates (position in the data array). + * + * The problem arises when a grid includes non-data columns (e.g., row headers, date/time columns) + * alongside editable data columns. In such cases, the index of a column in the grid doesn't + * directly correspond to its index in the data array. This can lead to issues where: + * 1. The wrong data is displayed in cells. + * 2. Edits are applied to incorrect data points. + * 3. Non-editable columns are mistakenly treated as editable. + * + * This hook solves these issues by providing two mapping functions: + * - gridToData: Converts grid coordinates to data array coordinates. + * - dataToGrid: Converts data array coordinates to grid coordinates. + * + * By using these functions, components can ensure that they're always working with the correct + * coordinates, whether they're displaying data, handling edits, or managing selection. + * + * @param columns - An array of column definitions, including their types. + * + * @returns An object containing two functions: + * - gridToData: (gridCoord: Item) => Item | null + * Converts grid coordinates to data coordinates. Returns null for non-data columns. + * - dataToGrid: (dataCoord: Item) => Item + * Converts data coordinates to grid coordinates. + */ +export function useColumnMapping(columns: EnhancedGridColumn[]) { + return useMemo(() => { + const dataColumnIndices = columns.reduce((acc, col, index) => { + if (col.type === ColumnTypes.Number) { + acc.push(index); + } + return acc; + }, [] as number[]); + + const gridToData = ([col, row]: Item): Item | null => { + const dataColIndex = dataColumnIndices.indexOf(col); + return dataColIndex !== -1 ? [dataColIndex, row] : null; + }; + + const dataToGrid = ([col, row]: Item): Item => [ + dataColumnIndices[col], + row, + ]; + + return { gridToData, dataToGrid }; + }, [columns]); +} diff --git a/webapp/src/components/common/MatrixGrid/useGridCellContent.test.ts b/webapp/src/components/common/MatrixGrid/useGridCellContent.test.ts new file mode 100644 index 0000000000..084a52d429 --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/useGridCellContent.test.ts @@ -0,0 +1,540 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { renderHook } from "@testing-library/react"; +import { useGridCellContent } from "./useGridCellContent"; +import { ColumnTypes, type EnhancedGridColumn } from "./types"; +import { useColumnMapping } from "./useColumnMapping"; + +// Mocking i18next +vi.mock("i18next", () => { + const i18n = { + language: "fr", + use: vi.fn().mockReturnThis(), + init: vi.fn(), + t: vi.fn((key) => key), + changeLanguage: vi.fn((lang) => { + i18n.language = lang; + return Promise.resolve(); + }), + on: vi.fn(), + }; + return { default: i18n }; +}); + +// Mocking react-i18next +vi.mock("react-i18next", async (importOriginal) => { + const actual = await importOriginal(); + return Object.assign({}, actual, { + useTranslation: () => ({ + t: vi.fn((key) => key), + i18n: { + changeLanguage: vi.fn(), + language: "fr", + }, + }), + initReactI18next: { + type: "3rdParty", + init: vi.fn(), + }, + }); +}); + +function renderGridCellContent( + data: number[][], + columns: EnhancedGridColumn[], + dateTime?: string[], + aggregates?: Record, + rowHeaders?: string[], +) { + const { result: mappingResult } = renderHook(() => useColumnMapping(columns)); + const { gridToData } = mappingResult.current; + + const { result } = renderHook(() => + useGridCellContent( + data, + columns, + gridToData, + dateTime, + aggregates, + rowHeaders, + ), + ); + + return result.current; +} + +describe("useGridCellContent", () => { + test("returns correct text cell content for DateTime columns", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "date", + title: "Date", + type: ColumnTypes.DateTime, + width: 150, + editable: false, + }, + { + id: "data1", + title: "TS 1", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + ]; + + const dateTime = ["2024-01-07T00:00:00Z", "2024-01-02T00:00:00Z"]; + + const data = [ + [11, 10], + [12, 15], + ]; + + const getCellContent = renderGridCellContent(data, columns, dateTime); + const cell = getCellContent([0, 0]); + + if ("displayData" in cell) { + expect(cell.kind).toBe("text"); + expect(cell.displayData).toBe("7 janv. 2024, 00:00"); + } else { + throw new Error("Expected a text cell with displayData"); + } + }); + + describe("returns correct cell content for Aggregate columns", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "total", + title: "Total", + type: ColumnTypes.Aggregate, + width: 100, + editable: false, + }, + ]; + + const data = [ + [10, 20, 30], + [15, 25, 35], + [5, 15, 25], + ]; + + const aggregates = { + total: [60, 75, 45], + }; + + // Tests for each row in the aggregates array + test.each([ + [0, 60], // Row index 0, expected sum 60 + [1, 75], // Row index 1, expected sum 75 + [2, 45], // Row index 2, expected sum 45 + ])( + "ensures the correct numeric cell content is returned for aggregates at row %i", + (row, expectedData) => { + const getCellContent = renderGridCellContent( + data, + columns, + undefined, + aggregates, + ); + + const cell = getCellContent([0, row]); // Column index is 0 because we only have one column of aggregates + + if ("data" in cell) { + expect(cell.kind).toBe("number"); + expect(cell.data).toBe(expectedData); + } else { + throw new Error(`Expected a number cell with data at row [${row}]`); + } + }, + ); + }); + + test("returns correct content for DateTime, Number, and Aggregate columns", () => { + const columns = [ + { + id: "date", + title: "Date", + type: ColumnTypes.DateTime, + width: 150, + editable: false, + }, + { + id: "ts1", + title: "TS 1", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + { + id: "ts2", + title: "TS 2", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + { + id: "total", + title: "Total", + type: ColumnTypes.Aggregate, + width: 100, + editable: false, + }, + ]; + + const dateTime = ["2021-01-01T00:00:00Z", "2021-01-02T00:00:00Z"]; + + const data = [ + [100, 200], + [150, 250], + ]; + + const aggregates = { + total: [300, 400], + }; + + const getCellContent = renderGridCellContent( + data, + columns, + dateTime, + aggregates, + ); + + const dateTimeCell = getCellContent([0, 0]); + + if (dateTimeCell.kind === "text" && "displayData" in dateTimeCell) { + expect(dateTimeCell.data).toBe(""); + expect(dateTimeCell.displayData).toBe("1 janv. 2021, 00:00"); + } else { + throw new Error( + "Expected a DateTime cell with displayData containing the year 2021", + ); + } + + const numberCell = getCellContent([1, 0]); + + if (numberCell.kind === "number" && "data" in numberCell) { + expect(numberCell.data).toBe(100); + } else { + throw new Error("Expected a Number cell with data"); + } + + const aggregateCell = getCellContent([3, 0]); + + if (aggregateCell.kind === "number" && "data" in aggregateCell) { + expect(aggregateCell.data).toBe(300); + } else { + throw new Error("Expected an Aggregate cell with data"); + } + }); +}); + +describe("useGridCellContent with mixed column types", () => { + test("handles non-data columns correctly and accesses data columns properly", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "rowHeader", + title: "Row", + type: ColumnTypes.Text, + width: 100, + editable: false, + }, + { + id: "date", + title: "Date", + type: ColumnTypes.DateTime, + width: 150, + editable: false, + }, + { + id: "data1", + title: "TS 1", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + { + id: "data2", + title: "TS 2", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + { + id: "total", + title: "Total", + type: ColumnTypes.Aggregate, + width: 100, + editable: false, + }, + ]; + + const rowHeaders = ["Row 1", "Row 2"]; + const dateTime = ["2024-01-01T00:00:00Z", "2024-01-02T00:00:00Z"]; + const data = [ + [100, 200], + [150, 250], + ]; + const aggregates = { + total: [300, 400], + }; + + const getCellContent = renderGridCellContent( + data, + columns, + dateTime, + aggregates, + rowHeaders, + ); + + // Test row header (Text column) + const rowHeaderCell = getCellContent([0, 0]); + + if (rowHeaderCell.kind === "text" && "displayData" in rowHeaderCell) { + expect(rowHeaderCell.displayData).toBe("Row 1"); + } else { + throw new Error("Expected a text cell with data for row header"); + } + + // Test date column (DateTime column) + const dateCell = getCellContent([1, 0]); + if (dateCell.kind === "text" && "displayData" in dateCell) { + expect(dateCell.data).toBe(""); + expect(dateCell.displayData).toBe("1 janv. 2024, 00:00"); + } else { + throw new Error("Expected a text cell with data for date"); + } + + // Test first data column (Number column) + const firstDataCell = getCellContent([2, 0]); + + if (firstDataCell.kind === "number" && "data" in firstDataCell) { + expect(firstDataCell.data).toBe(100); + } else { + throw new Error("Expected a number cell with data for first data column"); + } + + // Test second data column (Number column) + const secondDataCell = getCellContent([3, 0]); + + if (secondDataCell.kind === "number" && "data" in secondDataCell) { + expect(secondDataCell.data).toBe(200); + } else { + throw new Error( + "Expected a number cell with data for second data column", + ); + } + + // Test aggregate column + const aggregateCell = getCellContent([4, 0]); + + if (aggregateCell.kind === "number" && "data" in aggregateCell) { + expect(aggregateCell.data).toBe(300); + } else { + throw new Error("Expected a number cell with data for aggregate column"); + } + }); + + test("correctly handles data columns when non-data columns are removed", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "data1", + title: "TS 1", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + { + id: "data2", + title: "TS 2", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + { + id: "data3", + title: "TS 3", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + ]; + + const data = [ + [100, 200, 300], + [150, 250, 350], + ]; + + const getCellContent = renderGridCellContent(data, columns); + + // Test all data columns + for (let i = 0; i < 3; i++) { + const cell = getCellContent([i, 0]); + if (cell.kind === "number" && "data" in cell) { + expect(cell.data).toBe(data[0][i]); + } else { + throw new Error(`Expected a number cell with data for column ${i}`); + } + } + }); +}); + +describe("useGridCellContent additional tests", () => { + test("handles empty data array correctly", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "data1", + title: "TS 1", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + ]; + const data: number[][] = []; + + const getCellContent = renderGridCellContent(data, columns); + + const cell = getCellContent([0, 0]); + if (cell.kind === "number" && "data" in cell) { + expect(cell.data).toBeUndefined(); + } else { + throw new Error("Expected a number cell with undefined data"); + } + }); + + test("handles column access out of bounds", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "data1", + title: "TS 1", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + ]; + const data = [[100]]; + + const getCellContent = renderGridCellContent(data, columns); + + const cell = getCellContent([1, 0]); // Accessing column index 1 which doesn't exist + expect(cell.kind).toBe("text"); + if ("displayData" in cell) { + expect(cell.displayData).toBe("N/A"); + } else { + throw new Error("Expected a text cell with 'N/A' displayData"); + } + }); + + test("handles row access out of bounds", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "data1", + title: "TS 1", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + ]; + const data = [[100]]; + + const getCellContent = renderGridCellContent(data, columns); + + const cell = getCellContent([0, 1]); // Accessing row index 1 which doesn't exist + if (cell.kind === "number" && "data" in cell) { + expect(cell.data).toBeUndefined(); + } else { + throw new Error("Expected a number cell with undefined data"); + } + }); + + test("handles missing aggregates correctly", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "total", + title: "Total", + type: ColumnTypes.Aggregate, + width: 100, + editable: false, + }, + ]; + const data = [[100]]; + // No aggregates provided + + const getCellContent = renderGridCellContent(data, columns); + + const cell = getCellContent([0, 0]); + if (cell.kind === "number" && "data" in cell) { + expect(cell.data).toBeUndefined(); + } else { + throw new Error( + "Expected a number cell with undefined data for missing aggregate", + ); + } + }); + + test("handles mixed editable and non-editable columns", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "data1", + title: "TS 1", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + { + id: "data2", + title: "TS 2", + type: ColumnTypes.Number, + width: 50, + editable: false, + }, + ]; + const data = [[100, 200]]; + + const getCellContent = renderGridCellContent(data, columns); + + const editableCell = getCellContent([0, 0]); + const nonEditableCell = getCellContent([1, 0]); + + if (editableCell.kind === "number" && nonEditableCell.kind === "number") { + expect(editableCell.readonly).toBe(false); + expect(nonEditableCell.readonly).toBe(true); + } else { + throw new Error("Expected number cells with correct readonly property"); + } + }); + + test("handles very large numbers correctly", () => { + const columns: EnhancedGridColumn[] = [ + { + id: "data1", + title: "TS 1", + type: ColumnTypes.Number, + width: 50, + editable: true, + }, + ]; + const largeNumber = 1e20; + const data = [[largeNumber]]; + + const getCellContent = renderGridCellContent(data, columns); + + const cell = getCellContent([0, 0]); + if (cell.kind === "number" && "data" in cell) { + expect(cell.data).toBe(largeNumber); + expect(cell.displayData).toBe(largeNumber.toString()); + } else { + throw new Error("Expected a number cell with correct large number data"); + } + }); +}); diff --git a/webapp/src/components/common/MatrixGrid/useGridCellContent.ts b/webapp/src/components/common/MatrixGrid/useGridCellContent.ts new file mode 100644 index 0000000000..ca610950a8 --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/useGridCellContent.ts @@ -0,0 +1,185 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { useCallback, useMemo } from "react"; +import { GridCell, GridCellKind, Item } from "@glideapps/glide-data-grid"; +import { type EnhancedGridColumn, type ColumnType, ColumnTypes } from "./types"; +import { formatDateTime } from "./utils"; + +type CellContentGenerator = ( + row: number, + col: number, + column: EnhancedGridColumn, + data: number[][], + dateTime?: string[], + aggregates?: Record, + rowHeaders?: string[], +) => GridCell; + +/** + * Map of cell content generators for each column type. + * Each generator function creates the appropriate GridCell based on the column type and data. + */ +const cellContentGenerators: Record = { + [ColumnTypes.Text]: ( + row, + col, + column, + data, + dateTime, + aggregates, + rowHeaders, + ) => ({ + kind: GridCellKind.Text, + data: "", // Custom row headers are not editable + displayData: rowHeaders?.[row] ?? "", + readonly: !column.editable, + allowOverlay: false, + }), + [ColumnTypes.DateTime]: (row, col, column, data, dateTime) => ({ + kind: GridCellKind.Text, + data: "", // Date/time columns are not editable + displayData: formatDateTime(dateTime?.[row] ?? ""), + readonly: !column.editable, + allowOverlay: false, + }), + [ColumnTypes.Number]: (row, col, column, data) => { + const value = data?.[row]?.[col]; + + return { + kind: GridCellKind.Number, + data: value, + displayData: value?.toString(), + readonly: !column.editable, + allowOverlay: true, + }; + }, + [ColumnTypes.Aggregate]: (row, col, column, data, dateTime, aggregates) => { + const value = aggregates?.[column.id]?.[row]; + + return { + kind: GridCellKind.Number, + data: value, + displayData: value?.toString() ?? "", + readonly: !column.editable, + allowOverlay: false, + }; + }, +}; + +/** + * Custom hook to generate cell content for the DataEditor grid. + * + * This hook addresses the challenge of mapping different types of data (numbers, dates, text, aggregates) + * to the correct columns in a grid, regardless of the column arrangement. It's especially useful when + * the grid structure is dynamic and may include special columns like row headers or date/time columns + * that are not part of the main data array. + * + * The hook creates a flexible mapping system that: + * 1. Identifies the type of each column (number, text, date, aggregate). + * 2. For number columns, maps their position in the grid to their index in the data array. + * 3. Generates appropriate cell content based on the column type and data source. + * + * This approach allows for a dynamic grid structure where columns can be added, removed, or rearranged + * without needing to modify the underlying data access logic. + * + * @param data - The matrix of numerical data, where each sub-array represents a row. + * @param columns - Array of column configurations. + * @param gridToData - Optional function to map grid cell coordinates to data array indices. + * @param dateTime - Optional array of date-time strings for date columns. + * @param aggregates - Optional object mapping column IDs to arrays of aggregated values. + * @param rowHeaders - Optional array of row header labels. + * @param readOnly - Whether the grid is read-only (default is false). + * @returns A function that accepts a grid item and returns the configured grid cell content. + */ +export function useGridCellContent( + data: number[][], + columns: EnhancedGridColumn[], + gridToData: (cell: Item) => Item | null, + dateTime?: string[], + aggregates?: Record, + rowHeaders?: string[], + readOnly = false, +): (cell: Item) => GridCell { + const columnMap = useMemo(() => { + return new Map(columns.map((column, index) => [index, column])); + }, [columns]); + + const getCellContent = useCallback( + (cell: Item): GridCell => { + const [col, row] = cell; + const column = columnMap.get(col); + + if (!column) { + return { + kind: GridCellKind.Text, + data: "", + displayData: "N/A", + readonly: true, + allowOverlay: false, + }; + } + + const generator = cellContentGenerators[column.type]; + + if (!generator) { + console.error(`No generator found for column type: ${column.type}`); + return { + kind: GridCellKind.Text, + data: "", + displayData: "Error", + readonly: true, + allowOverlay: false, + }; + } + + // Adjust column index for Number type columns (data columns) + // This ensures we access the correct index in the data array, + // accounting for any non-data columns in the grid + let adjustedCol = col; + + if (column.type === ColumnTypes.Number && gridToData) { + // Map grid cell to data array index + const dataCell = gridToData(cell); + + if (dataCell) { + adjustedCol = dataCell[0]; + } + } + + const gridCell = generator( + row, + adjustedCol, + column, + data, + dateTime, + aggregates, + rowHeaders, + ); + + // Prevent updates for read-only grids + if (readOnly) { + return { + ...gridCell, + allowOverlay: false, + }; + } + + return gridCell; + }, + [columnMap, gridToData, data, dateTime, aggregates, rowHeaders, readOnly], + ); + + return getCellContent; +} diff --git a/webapp/src/components/common/MatrixGrid/useMatrix.test.tsx b/webapp/src/components/common/MatrixGrid/useMatrix.test.tsx new file mode 100644 index 0000000000..61b09b9be2 --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/useMatrix.test.tsx @@ -0,0 +1,300 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { renderHook, act, waitFor } from "@testing-library/react"; +import { vi, describe, expect, beforeEach } from "vitest"; +import { useMatrix } from "./useMatrix"; +import * as apiMatrix from "../../../services/api/matrix"; +import * as apiStudy from "../../../services/api/study"; +import { + MatrixEditDTO, + MatrixIndex, + Operator, + StudyOutputDownloadLevelDTO, +} from "../../../common/types"; +import { GridUpdate, MatrixDataDTO } from "./types"; +import { GridCellKind } from "@glideapps/glide-data-grid"; + +vi.mock("../../../services/api/matrix"); +vi.mock("../../../services/api/study"); + +describe("useMatrix", () => { + const mockStudyId = "study123"; + const mockUrl = "https://studies/study123/matrix"; + + const mockMatrixData: MatrixDataDTO = { + data: [ + [1, 2], + [3, 4], + ], + columns: [0, 1], + index: [0, 1], + }; + + const mockMatrixIndex: MatrixIndex = { + start_date: "2023-01-01", + steps: 2, + first_week_size: 7, + level: StudyOutputDownloadLevelDTO.DAILY, + }; + + // Helper function to set up the hook and wait for initial loading + const setupHook = async () => { + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue(mockMatrixIndex); + + const { result } = renderHook(() => + useMatrix(mockStudyId, mockUrl, true, true), + ); + + await waitFor(() => { + expect(result.current.isLoading).toBe(false); + }); + + return result; + }; + + // Helper function to create a grid update object + const createGridUpdate = ( + row: number, + col: number, + value: number, + ): GridUpdate => ({ + coordinates: [row, col], + value: { + kind: GridCellKind.Number, + data: value, + displayData: value.toString(), + allowOverlay: true, + }, + }); + + beforeEach(() => { + vi.clearAllMocks(); + }); + + test("should fetch matrix data and index on mount", async () => { + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue(mockMatrixIndex); + + const result = await setupHook(); + + await waitFor(() => { + expect(result.current.isLoading).toBe(false); + }); + + expect(result.current.data).toEqual(mockMatrixData.data); + expect(result.current.columns.length).toBeGreaterThan(0); + expect(result.current.dateTime.length).toBeGreaterThan(0); + }); + + test("should handle cell edit", async () => { + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue(mockMatrixIndex); + + const result = await setupHook(); + + await waitFor(() => { + expect(result.current.isLoading).toBe(false); + }); + + act(() => { + result.current.handleCellEdit(createGridUpdate(0, 1, 5)); + }); + + expect(result.current.data[1][0]).toBe(5); + expect(result.current.pendingUpdatesCount).toBe(1); + }); + + test("should handle multiple cells edit", async () => { + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue(mockMatrixIndex); + + const result = await setupHook(); + + await waitFor(() => { + expect(result.current.isLoading).toBe(false); + }); + + act(() => { + result.current.handleMultipleCellsEdit([ + createGridUpdate(0, 1, 5), + createGridUpdate(1, 0, 6), + ]); + }); + + expect(result.current.data[1][0]).toBe(5); + expect(result.current.data[0][1]).toBe(6); + expect(result.current.pendingUpdatesCount).toBe(2); + }); + + test("should handle save updates", async () => { + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue(mockMatrixIndex); + vi.mocked(apiMatrix.updateMatrix).mockResolvedValue(undefined); + + const result = await setupHook(); + + await waitFor(() => { + expect(result.current.isLoading).toBe(false); + }); + + act(() => { + result.current.handleCellEdit(createGridUpdate(0, 1, 5)); + }); + + await act(async () => { + await result.current.handleSaveUpdates(); + }); + + const expectedEdit: MatrixEditDTO = { + coordinates: [[1, 0]], + operation: { + operation: Operator.EQ, + value: 5, + }, + }; + + expect(apiMatrix.updateMatrix).toHaveBeenCalledWith(mockStudyId, mockUrl, [ + expectedEdit, + ]); + expect(result.current.pendingUpdatesCount).toBe(0); + }); + + test("should handle file import", async () => { + const mockFile = new File([""], "test.csv", { type: "text/csv" }); + vi.mocked(apiStudy.importFile).mockResolvedValue(""); + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue(mockMatrixIndex); + + const result = await setupHook(); + + await act(async () => { + await result.current.handleImport(mockFile); + }); + + expect(apiStudy.importFile).toHaveBeenCalledWith( + mockFile, + mockStudyId, + mockUrl, + ); + }); + + describe("Undo and Redo functionality", () => { + test("should have correct initial undo/redo states", async () => { + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue( + mockMatrixIndex, + ); + + const result = await setupHook(); + + await waitFor(() => { + expect(result.current.isLoading).toBe(false); + }); + + expect(result.current.canUndo).toBe(false); + expect(result.current.canRedo).toBe(false); + }); + + test("should update canUndo and canRedo states correctly after edits", async () => { + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue( + mockMatrixIndex, + ); + + const result = await setupHook(); + + await waitFor(() => { + expect(result.current.isLoading).toBe(false); + }); + + act(() => { + result.current.handleCellEdit(createGridUpdate(0, 1, 5)); + }); + + expect(result.current.canUndo).toBe(true); + expect(result.current.canRedo).toBe(false); + + act(() => { + result.current.undo(); + }); + + expect(result.current.canUndo).toBe(false); + expect(result.current.canRedo).toBe(true); + + act(() => { + result.current.redo(); + }); + + expect(result.current.canUndo).toBe(true); + expect(result.current.canRedo).toBe(false); + }); + + test("should reset redo state after a new edit", async () => { + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue( + mockMatrixIndex, + ); + + const result = await setupHook(); + + await waitFor(() => { + expect(result.current.isLoading).toBe(false); + }); + + act(() => { + result.current.handleCellEdit(createGridUpdate(0, 1, 5)); + }); + + act(() => { + result.current.undo(); + }); + + expect(result.current.canRedo).toBe(true); + + act(() => { + result.current.handleCellEdit(createGridUpdate(1, 0, 6)); + }); + + expect(result.current.canUndo).toBe(true); + expect(result.current.canRedo).toBe(false); + }); + + test("should handle undo to initial state", async () => { + vi.mocked(apiStudy.getStudyData).mockResolvedValue(mockMatrixData); + vi.mocked(apiMatrix.getStudyMatrixIndex).mockResolvedValue( + mockMatrixIndex, + ); + + const result = await setupHook(); + + await waitFor(() => { + expect(result.current.isLoading).toBe(false); + }); + + act(() => { + result.current.handleCellEdit(createGridUpdate(0, 1, 5)); + }); + + act(() => { + result.current.undo(); + }); + + expect(result.current.data).toEqual(mockMatrixData.data); + expect(result.current.canUndo).toBe(false); + expect(result.current.canRedo).toBe(true); + }); + }); +}); diff --git a/webapp/src/components/common/MatrixGrid/useMatrix.ts b/webapp/src/components/common/MatrixGrid/useMatrix.ts new file mode 100644 index 0000000000..6da3a43c6b --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/useMatrix.ts @@ -0,0 +1,237 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { useCallback, useEffect, useMemo, useState } from "react"; +import { AxiosError } from "axios"; +import { enqueueSnackbar } from "notistack"; +import { t } from "i18next"; +import { MatrixIndex, Operator } from "../../../common/types"; +import useEnqueueErrorSnackbar from "../../../hooks/useEnqueueErrorSnackbar"; +import { + getStudyMatrixIndex, + updateMatrix, +} from "../../../services/api/matrix"; +import { getStudyData, importFile } from "../../../services/api/study"; +import { + EnhancedGridColumn, + MatrixDataDTO, + ColumnTypes, + GridUpdate, + MatrixUpdateDTO, +} from "./types"; +import { generateDateTime, generateTimeSeriesColumns } from "./utils"; +import useUndo from "use-undo"; +import { GridCellKind } from "@glideapps/glide-data-grid"; + +interface DataState { + data: number[][]; + pendingUpdates: MatrixUpdateDTO[]; +} + +export function useMatrix( + studyId: string, + url: string, + enableTimeSeriesColumns: boolean, + enableAggregateColumns: boolean, +) { + const enqueueErrorSnackbar = useEnqueueErrorSnackbar(); + const [columnCount, setColumnCount] = useState(0); + const [index, setIndex] = useState(undefined); + const [isLoading, setIsLoading] = useState(true); + const [isSubmitting, setIsSubmitting] = useState(false); + const [error, setError] = useState(undefined); + const [{ present: currentState }, { set: setState, undo, redo, canRedo }] = + useUndo({ data: [], pendingUpdates: [] }); + + const fetchMatrix = useCallback(async () => { + setIsLoading(true); + try { + const [matrix, index] = await Promise.all([ + getStudyData(studyId, url), + getStudyMatrixIndex(studyId, url), + ]); + + setState({ data: matrix.data, pendingUpdates: [] }); + setColumnCount(matrix.columns.length); + setIndex(index); + setIsLoading(false); + } catch (error) { + setError(new Error(t("data.error.matrix"))); + enqueueErrorSnackbar(t("data.error.matrix"), error as AxiosError); + } finally { + setIsLoading(false); + } + }, [enqueueErrorSnackbar, setState, studyId, url]); + + useEffect(() => { + fetchMatrix(); + }, [fetchMatrix]); + + const dateTime = useMemo(() => { + return index ? generateDateTime(index) : []; + }, [index]); + + const columns: EnhancedGridColumn[] = useMemo(() => { + if (!currentState.data) { + return []; + } + + const baseColumns = [ + { + id: "date", + title: "Date", + type: ColumnTypes.DateTime, + editable: false, + }, + ]; + + const dataColumns = enableTimeSeriesColumns + ? generateTimeSeriesColumns({ count: columnCount }) + : []; + + const aggregateColumns = enableAggregateColumns + ? [ + { + id: "min", + title: "Min", + type: ColumnTypes.Aggregate, + width: 50, + editable: false, + }, + { + id: "max", + title: "Max", + type: ColumnTypes.Aggregate, + width: 50, + editable: false, + }, + { + id: "avg", + title: "Avg", + type: ColumnTypes.Aggregate, + width: 50, + editable: false, + }, + ] + : []; + + return [...baseColumns, ...dataColumns, ...aggregateColumns]; + }, [ + currentState.data, + enableTimeSeriesColumns, + columnCount, + enableAggregateColumns, + ]); + + // Apply updates to the matrix data and store them in the pending updates list + const applyUpdates = useCallback( + (updates: GridUpdate[]) => { + const updatedData = currentState.data.map((col) => [...col]); + + const newUpdates: MatrixUpdateDTO[] = updates + .map(({ coordinates: [row, col], value }) => { + if (value.kind === GridCellKind.Number && value.data) { + updatedData[col][row] = value.data; + + return { + coordinates: [[col, row]], + operation: { + operation: Operator.EQ, + value: value.data, + }, + }; + } + + return null; + }) + .filter( + (update): update is NonNullable => update !== null, + ); + + setState({ + data: updatedData, + pendingUpdates: [...currentState.pendingUpdates, ...newUpdates], + }); + }, + [currentState, setState], + ); + + const handleCellEdit = function (update: GridUpdate) { + applyUpdates([update]); + }; + + const handleMultipleCellsEdit = function (updates: GridUpdate[]) { + applyUpdates(updates); + }; + + const handleImport = async (file: File) => { + try { + await importFile(file, studyId, url); + await fetchMatrix(); + } catch (e) { + enqueueErrorSnackbar(t("matrix.error.import"), e as Error); + } + }; + + const handleSaveUpdates = async () => { + if (!currentState.pendingUpdates.length) { + return; + } + + setIsSubmitting(true); + try { + await updateMatrix(studyId, url, currentState.pendingUpdates); + setState({ data: currentState.data, pendingUpdates: [] }); + enqueueSnackbar(t("matrix.success.matrixUpdate"), { + variant: "success", + }); + } catch (error) { + setError(new Error(t("matrix.error.matrixUpdate"))); + enqueueErrorSnackbar(t("matrix.error.matrixUpdate"), error as AxiosError); + } finally { + setIsSubmitting(false); + } + }; + + const handleUndo = useCallback(() => { + undo(); + }, [undo]); + + const handleRedo = useCallback(() => { + redo(); + }, [redo]); + + const canUndoChanges = useMemo( + () => currentState.pendingUpdates.length > 0, + [currentState.pendingUpdates], + ); + + return { + data: currentState.data, + error, + isLoading, + isSubmitting, + columns, + dateTime, + handleCellEdit, + handleMultipleCellsEdit, + handleImport, + handleSaveUpdates, + pendingUpdatesCount: currentState.pendingUpdates.length, + undo: handleUndo, + redo: handleRedo, + canUndo: canUndoChanges, + canRedo, + }; +} diff --git a/webapp/src/components/common/MatrixGrid/utils.test.ts b/webapp/src/components/common/MatrixGrid/utils.test.ts new file mode 100644 index 0000000000..afe4e21c5c --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/utils.test.ts @@ -0,0 +1,190 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import { + MatrixIndex, + StudyOutputDownloadLevelDTO, +} from "../../../common/types"; +import { ColumnTypes } from "./types"; +import { generateDateTime, generateTimeSeriesColumns } from "./utils"; + +describe("generateDateTime", () => { + test("generates correct number of dates", () => { + const metadata: MatrixIndex = { + start_date: "2023-01-01T00:00:00Z", + steps: 5, + first_week_size: 7, + level: StudyOutputDownloadLevelDTO.DAILY, + }; + const result = generateDateTime(metadata); + expect(result).toHaveLength(5); + }); + + test.each([ + { + level: "hourly", + start: "2023-01-01T00:00:00Z", + expected: [ + "2023-01-01T00:00:00.000Z", + "2023-01-01T01:00:00.000Z", + "2023-01-01T02:00:00.000Z", + ], + }, + { + level: "daily", + start: "2023-01-01T00:00:00Z", + expected: [ + "2023-01-01T00:00:00.000Z", + "2023-01-02T00:00:00.000Z", + "2023-01-03T00:00:00.000Z", + ], + }, + { + level: "weekly", + start: "2023-01-01T00:00:00Z", + expected: [ + "2023-01-01T00:00:00.000Z", + "2023-01-08T00:00:00.000Z", + "2023-01-15T00:00:00.000Z", + ], + }, + { + level: "monthly", + start: "2023-01-15T00:00:00Z", + expected: [ + "2023-01-15T00:00:00.000Z", + "2023-02-15T00:00:00.000Z", + "2023-03-15T00:00:00.000Z", + ], + }, + { + level: "annual", + start: "2020-02-29T00:00:00Z", + expected: ["2020-02-29T00:00:00.000Z", "2021-02-28T00:00:00.000Z"], + }, + ] as const)( + "generates correct dates for $level level", + ({ level, start, expected }) => { + const metadata: MatrixIndex = { + start_date: start, + steps: expected.length, + first_week_size: 7, + level: level as MatrixIndex["level"], + }; + + const result = generateDateTime(metadata); + + expect(result).toEqual(expected); + }, + ); + + test("handles edge cases", () => { + const metadata: MatrixIndex = { + start_date: "2023-12-31T23:59:59Z", + steps: 2, + first_week_size: 7, + level: StudyOutputDownloadLevelDTO.HOURLY, + }; + const result = generateDateTime(metadata); + expect(result).toEqual([ + "2023-12-31T23:59:59.000Z", + "2024-01-01T00:59:59.000Z", + ]); + }); +}); + +describe("generateTimeSeriesColumns", () => { + test("generates correct number of columns", () => { + const result = generateTimeSeriesColumns({ count: 5 }); + expect(result).toHaveLength(5); + }); + + test("generates columns with default options", () => { + const result = generateTimeSeriesColumns({ count: 3 }); + expect(result).toEqual([ + { + id: "data1", + title: "TS 1", + type: ColumnTypes.Number, + style: "normal", + width: 50, + editable: true, + }, + { + id: "data2", + title: "TS 2", + type: ColumnTypes.Number, + style: "normal", + width: 50, + editable: true, + }, + { + id: "data3", + title: "TS 3", + type: ColumnTypes.Number, + style: "normal", + width: 50, + editable: true, + }, + ]); + }); + + test("generates columns with custom options", () => { + const result = generateTimeSeriesColumns({ + count: 2, + startIndex: 10, + prefix: "Data", + width: 80, + editable: false, + }); + expect(result).toEqual([ + { + id: "data10", + title: "Data 10", + type: ColumnTypes.Number, + style: "normal", + width: 80, + editable: false, + }, + { + id: "data11", + title: "Data 11", + type: ColumnTypes.Number, + style: "normal", + width: 80, + editable: false, + }, + ]); + }); + + test("handles zero count", () => { + const result = generateTimeSeriesColumns({ count: 0 }); + expect(result).toEqual([]); + }); + + test("handles large count", () => { + const result = generateTimeSeriesColumns({ count: 1000 }); + expect(result).toHaveLength(1000); + expect(result[999].id).toBe("data1000"); + expect(result[999].title).toBe("TS 1000"); + }); + + test("maintains consistent type and style", () => { + const result = generateTimeSeriesColumns({ count: 1000 }); + result.forEach((column) => { + expect(column.type).toBe(ColumnTypes.Number); + expect(column.style).toBe("normal"); + }); + }); +}); diff --git a/webapp/src/components/common/MatrixGrid/utils.ts b/webapp/src/components/common/MatrixGrid/utils.ts new file mode 100644 index 0000000000..ed3e1094ee --- /dev/null +++ b/webapp/src/components/common/MatrixGrid/utils.ts @@ -0,0 +1,214 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import moment from "moment"; +import { + DateIncrementStrategy, + EnhancedGridColumn, + ColumnTypes, +} from "./types"; +import { getCurrentLanguage } from "../../../utils/i18nUtils"; +import { Theme } from "@glideapps/glide-data-grid"; +import { MatrixIndex } from "../../../common/types"; + +export const darkTheme: Theme = { + accentColor: "rgba(255, 184, 0, 0.9)", + accentLight: "rgba(255, 184, 0, 0.2)", + accentFg: "#FFFFFF", + textDark: "#FFFFFF", + textMedium: "#C1C3D9", + textLight: "#A1A5B9", + textBubble: "#FFFFFF", + bgIconHeader: "#1E1F2E", + fgIconHeader: "#FFFFFF", + textHeader: "#FFFFFF", + textGroupHeader: "#C1C3D9", + bgCell: "#262737", // main background color + bgCellMedium: "#2E2F42", + bgHeader: "#1E1F2E", + bgHeaderHasFocus: "#2E2F42", + bgHeaderHovered: "#333447", + bgBubble: "#333447", + bgBubbleSelected: "#3C3E57", + bgSearchResult: "#6366F133", + borderColor: "rgba(255, 255, 255, 0.12)", + drilldownBorder: "rgba(255, 255, 255, 0.35)", + linkColor: "#818CF8", + headerFontStyle: "bold 11px", + baseFontStyle: "13px", + fontFamily: "Inter, sans-serif", + editorFontSize: "13px", + lineHeight: 1.5, + textHeaderSelected: "#FFFFFF", + cellHorizontalPadding: 8, + cellVerticalPadding: 5, + headerIconSize: 16, + markerFontStyle: "normal", +}; + +export const readOnlyDarkTheme: Partial = { + bgCell: "#1A1C2A", + bgCellMedium: "#22243A", + textDark: "#A0A0A0", + textMedium: "#808080", + textLight: "#606060", + accentColor: "#4A4C66", + accentLight: "rgba(74, 76, 102, 0.2)", + borderColor: "rgba(255, 255, 255, 0.08)", + drilldownBorder: "rgba(255, 255, 255, 0.2)", +}; + +const dateIncrementStrategies: Record< + MatrixIndex["level"], + DateIncrementStrategy +> = { + hourly: (date, step) => date.clone().add(step, "hours"), + daily: (date, step) => date.clone().add(step, "days"), + weekly: (date, step) => date.clone().add(step, "weeks"), + monthly: (date, step) => date.clone().add(step, "months"), + annual: (date, step) => date.clone().add(step, "years"), +}; + +const dateTimeFormatOptions: Intl.DateTimeFormatOptions = { + year: "numeric", + month: "short", + day: "numeric", + hour: "numeric", + minute: "numeric", + timeZone: "UTC", // Ensures consistent UTC-based time representation +}; + +//////////////////////////////////////////////////////////////// +// Functions +//////////////////////////////////////////////////////////////// + +/** + * Formats a date and time string using predefined locale and format options. + * + * This function takes a date/time string, creates a Date object from it, + * and then formats it according to the specified options. The formatting + * is done using the French locale as the primary choice, falling back to + * English if French is not available. + * + * Important: This function will always return the time in UTC, regardless + * of the system's local time zone. This behavior is controlled by the + * 'timeZone' option in dateTimeFormatOptions. + * + * @param dateTime - The date/time string to format. This should be an ISO 8601 string (e.g., "2024-01-01T00:00:00Z"). + * @returns The formatted date/time string in the format specified by dateTimeFormatOptions, always in UTC. + * + * @example returns "1 janv. 2024, 00:00" (French locale) + * formatDateTime("2024-01-01T00:00:00Z") + * + * @example returns "Jan 1, 2024, 12:00 AM" (English locale) + * formatDateTime("2024-01-01T00:00:00Z") + */ +export function formatDateTime(dateTime: string): string { + const date = moment.utc(dateTime); + const currentLocale = getCurrentLanguage(); + const locales = [currentLocale, "en-US"]; + + return date.toDate().toLocaleString(locales, dateTimeFormatOptions); +} + +/** + * Generates an array of date-time strings based on the provided time metadata. + * + * This function creates a series of date-time strings, starting from the given start date + * and incrementing based on the specified level (hourly, daily, weekly, monthly, or yearly). + * It uses the Moment.js library for date manipulation and the ISO 8601 format for date-time strings. + * + * @param timeMetadata - The time metadata object. + * @param timeMetadata.start_date - The starting date-time in ISO 8601 format (e.g., "2023-01-01T00:00:00Z"). + * @param timeMetadata.steps - The number of date-time strings to generate. + * @param timeMetadata.level - The increment level for date-time generation. + * + * @returns An array of ISO 8601 formatted date-time strings. + * + * @example + * const result = generateDateTime({ + * start_date: "2023-01-01T00:00:00Z", + * steps: 3, + * level: "daily" + * }); + * + * Returns: [ + * "2023-01-01T00:00:00.000Z", + * "2023-01-02T00:00:00.000Z", + * "2023-01-03T00:00:00.000Z" + * ] + * + * @see {@link MatrixIndex} for the structure of the timeMetadata object. + * @see {@link DateIncrementStrategy} for the date increment strategy type. + */ +export function generateDateTime({ + // eslint-disable-next-line camelcase + start_date, + steps, + level, +}: MatrixIndex): string[] { + const startDate = moment.utc(start_date, "YYYY-MM-DD HH:mm:ss"); + const incrementStrategy = dateIncrementStrategies[level]; + + return Array.from({ length: steps }, (_, i) => + incrementStrategy(startDate, i).toISOString(), + ); +} + +/** + * Generates an array of EnhancedGridColumn objects representing time series data columns. + * + * @param options - The options for generating time series columns. + * @param options.count - The number of time series columns to generate. + * @param [options.startIndex=1] - The starting index for the time series columns (default is 1). + * @param [options.prefix="TS"] - The prefix to use for the column titles (default is "TS"). + * @param [options.width=50] - The width of each column (default is 50). + * @param [options.editable=true] - Whether the columns should be editable (default is true). + * @param [options.style="normal"] - The style of the columns (default is "normal"). + * @returns An array of EnhancedGridColumn objects representing time series data columns. + * + * @example Usage within a column definition array + * const columns = [ + * { id: "rowHeaders", title: "", type: ColumnTypes.Text, ... }, + * { id: "date", title: "Date", type: ColumnTypes.DateTime, ... }, + * ...generateTimeSeriesColumns({ count: 60 }), + * { id: "min", title: "Min", type: ColumnTypes.Aggregate, ... }, + * { id: "max", title: "Max", type: ColumnTypes.Aggregate, ... }, + * { id: "avg", title: "Avg", type: ColumnTypes.Aggregate, ... } + * ]; + */ +export function generateTimeSeriesColumns({ + count, + startIndex = 1, + prefix = "TS", + width = 50, + editable = true, + style = "normal", +}: { + count: number; + startIndex?: number; + prefix?: string; + width?: number; + editable?: boolean; + style?: "normal" | "highlight"; +}): EnhancedGridColumn[] { + return Array.from({ length: count }, (_, index) => ({ + id: `data${startIndex + index}`, + title: `${prefix} ${startIndex + index}`, + type: ColumnTypes.Number, + style: style, + width: width, + editable: editable, + })); +} diff --git a/webapp/src/components/common/MatrixInput/MatrixAssignDialog.tsx b/webapp/src/components/common/MatrixInput/MatrixAssignDialog.tsx index c8553eda09..8cdede9119 100644 --- a/webapp/src/components/common/MatrixInput/MatrixAssignDialog.tsx +++ b/webapp/src/components/common/MatrixInput/MatrixAssignDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button, Divider, Typography } from "@mui/material"; import { AxiosError } from "axios"; import { useSnackbar } from "notistack"; diff --git a/webapp/src/components/common/MatrixInput/index.tsx b/webapp/src/components/common/MatrixInput/index.tsx index c48e67d508..798b2f9b93 100644 --- a/webapp/src/components/common/MatrixInput/index.tsx +++ b/webapp/src/components/common/MatrixInput/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { useSnackbar } from "notistack"; import { useState } from "react"; @@ -183,7 +197,7 @@ function MatrixInput({ isPercentDisplayEnabled={enablePercentDisplay} /> ) : ( - !isLoading && + !isLoading && )} {openImportDialog && ( diff --git a/webapp/src/components/common/MatrixInput/style.ts b/webapp/src/components/common/MatrixInput/style.ts index 72b77419cb..148f1b191d 100644 --- a/webapp/src/components/common/MatrixInput/style.ts +++ b/webapp/src/components/common/MatrixInput/style.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { styled, Box, Button } from "@mui/material"; export const Root = styled(Box)(({ theme }) => ({ diff --git a/webapp/src/components/common/PropertiesView.tsx b/webapp/src/components/common/PropertiesView.tsx index 2fc9dbf90d..dc8fb61ab7 100644 --- a/webapp/src/components/common/PropertiesView.tsx +++ b/webapp/src/components/common/PropertiesView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ReactNode } from "react"; import { Box, Button, SxProps, Theme } from "@mui/material"; import SearchFE from "./fieldEditors/SearchFE"; diff --git a/webapp/src/components/common/SelectMulti.tsx b/webapp/src/components/common/SelectMulti.tsx index 5f916bd3f7..6512206708 100644 --- a/webapp/src/components/common/SelectMulti.tsx +++ b/webapp/src/components/common/SelectMulti.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as React from "react"; import { Box, diff --git a/webapp/src/components/common/SelectSingle.tsx b/webapp/src/components/common/SelectSingle.tsx index 2ada882027..c79374adaf 100644 --- a/webapp/src/components/common/SelectSingle.tsx +++ b/webapp/src/components/common/SelectSingle.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { FormControl, InputLabel, diff --git a/webapp/src/components/common/SnackErrorMessage.tsx b/webapp/src/components/common/SnackErrorMessage.tsx index f87e67faf4..28dbd01c0d 100644 --- a/webapp/src/components/common/SnackErrorMessage.tsx +++ b/webapp/src/components/common/SnackErrorMessage.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState, forwardRef, useCallback } from "react"; import * as React from "react"; import { useSnackbar, SnackbarContent } from "notistack"; diff --git a/webapp/src/components/common/SplitLayoutView.tsx b/webapp/src/components/common/SplitLayoutView.tsx index 5df41be676..4145a9e13d 100644 --- a/webapp/src/components/common/SplitLayoutView.tsx +++ b/webapp/src/components/common/SplitLayoutView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ReactNode } from "react"; import { Divider, Box, SxProps, Theme } from "@mui/material"; diff --git a/webapp/src/components/common/SplitView/index.tsx b/webapp/src/components/common/SplitView/index.tsx index 19a708ff90..bfbc05d39b 100644 --- a/webapp/src/components/common/SplitView/index.tsx +++ b/webapp/src/components/common/SplitView/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import React, { useEffect, useState } from "react"; import Split, { SplitProps } from "react-split"; import { Box } from "@mui/material"; diff --git a/webapp/src/components/common/StarToggle.tsx b/webapp/src/components/common/StarToggle.tsx index 69ad85f751..44698cbf96 100644 --- a/webapp/src/components/common/StarToggle.tsx +++ b/webapp/src/components/common/StarToggle.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Tooltip } from "@mui/material"; import StarPurple500OutlinedIcon from "@mui/icons-material/StarPurple500Outlined"; import StarOutlineOutlinedIcon from "@mui/icons-material/StarOutlineOutlined"; diff --git a/webapp/src/components/common/TableForm/Table.tsx b/webapp/src/components/common/TableForm/Table.tsx index 5e41d8a297..70bfdd5e75 100644 --- a/webapp/src/components/common/TableForm/Table.tsx +++ b/webapp/src/components/common/TableForm/Table.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import HT from "handsontable"; import * as RA from "ramda-adjunct"; import { useMemo } from "react"; diff --git a/webapp/src/components/common/TableForm/index.tsx b/webapp/src/components/common/TableForm/index.tsx index 44fb08ad1e..6ce8841bdc 100644 --- a/webapp/src/components/common/TableForm/index.tsx +++ b/webapp/src/components/common/TableForm/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as RA from "ramda-adjunct"; import HT from "handsontable"; import { startCase } from "lodash"; diff --git a/webapp/src/components/common/TableForm/utils.ts b/webapp/src/components/common/TableForm/utils.ts index 79663993c1..ff47af9481 100644 --- a/webapp/src/components/common/TableForm/utils.ts +++ b/webapp/src/components/common/TableForm/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as R from "ramda"; import * as RA from "ramda-adjunct"; diff --git a/webapp/src/components/common/TableMode.tsx b/webapp/src/components/common/TableMode.tsx index 7d40d5511f..fa309dc01f 100644 --- a/webapp/src/components/common/TableMode.tsx +++ b/webapp/src/components/common/TableMode.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { StudyMetadata } from "../../common/types"; import usePromise from "../../hooks/usePromise"; diff --git a/webapp/src/components/common/TabsView.tsx b/webapp/src/components/common/TabsView.tsx index 5c96248c8d..cfee995bbf 100644 --- a/webapp/src/components/common/TabsView.tsx +++ b/webapp/src/components/common/TabsView.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TabContext, TabList, TabListProps, TabPanel } from "@mui/lab"; import { Box, Tab } from "@mui/material"; import { useState } from "react"; diff --git a/webapp/src/components/common/TextSeparator.tsx b/webapp/src/components/common/TextSeparator.tsx index 635a89d8e8..51a1a40612 100644 --- a/webapp/src/components/common/TextSeparator.tsx +++ b/webapp/src/components/common/TextSeparator.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { SxProps, Theme, Divider, Typography, Box } from "@mui/material"; interface Props { diff --git a/webapp/src/components/common/buttons/SplitButton.tsx b/webapp/src/components/common/buttons/SplitButton.tsx index 684e74f212..45fa9c74c2 100644 --- a/webapp/src/components/common/buttons/SplitButton.tsx +++ b/webapp/src/components/common/buttons/SplitButton.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import Button from "@mui/material/Button"; import ButtonGroup, { ButtonGroupProps } from "@mui/material/ButtonGroup"; import ArrowDropDownIcon from "@mui/icons-material/ArrowDropDown"; diff --git a/webapp/src/components/common/dialogs/BasicDialog.tsx b/webapp/src/components/common/dialogs/BasicDialog.tsx index 196d4b1b9c..de9e3e0806 100644 --- a/webapp/src/components/common/dialogs/BasicDialog.tsx +++ b/webapp/src/components/common/dialogs/BasicDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Dialog, DialogActions, diff --git a/webapp/src/components/common/dialogs/ConfirmationDialog.tsx b/webapp/src/components/common/dialogs/ConfirmationDialog.tsx index 769fe36a62..d237a535f0 100644 --- a/webapp/src/components/common/dialogs/ConfirmationDialog.tsx +++ b/webapp/src/components/common/dialogs/ConfirmationDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Button } from "@mui/material"; import { useTranslation } from "react-i18next"; import BasicDialog, { BasicDialogProps } from "./BasicDialog"; diff --git a/webapp/src/components/common/dialogs/DataViewerDialog/index.tsx b/webapp/src/components/common/dialogs/DataViewerDialog/index.tsx index ca2cd4384e..fc1816d0e4 100644 --- a/webapp/src/components/common/dialogs/DataViewerDialog/index.tsx +++ b/webapp/src/components/common/dialogs/DataViewerDialog/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { Box, IconButton, Tooltip, Typography } from "@mui/material"; import { useSnackbar } from "notistack"; diff --git a/webapp/src/components/common/dialogs/DataViewerDialog/styles.ts b/webapp/src/components/common/dialogs/DataViewerDialog/styles.ts index 6ed0e5e442..cd499db66a 100644 --- a/webapp/src/components/common/dialogs/DataViewerDialog/styles.ts +++ b/webapp/src/components/common/dialogs/DataViewerDialog/styles.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Button, styled } from "@mui/material"; export const Code = styled(Box)({ diff --git a/webapp/src/components/common/dialogs/DigestDialog.tsx b/webapp/src/components/common/dialogs/DigestDialog.tsx index c735986144..adaed84ce6 100644 --- a/webapp/src/components/common/dialogs/DigestDialog.tsx +++ b/webapp/src/components/common/dialogs/DigestDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Skeleton } from "@mui/material"; import OkDialog, { OkDialogProps } from "./OkDialog"; import EditableMatrix from "../EditableMatrix"; diff --git a/webapp/src/components/common/dialogs/FormDialog.tsx b/webapp/src/components/common/dialogs/FormDialog.tsx index d58f09983a..4980244f5d 100644 --- a/webapp/src/components/common/dialogs/FormDialog.tsx +++ b/webapp/src/components/common/dialogs/FormDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /* eslint-disable @typescript-eslint/no-explicit-any */ import { Button } from "@mui/material"; import { useId, useState } from "react"; diff --git a/webapp/src/components/common/dialogs/ImportDialog.tsx b/webapp/src/components/common/dialogs/ImportDialog.tsx index e300015c7e..a16bbf6df6 100644 --- a/webapp/src/components/common/dialogs/ImportDialog.tsx +++ b/webapp/src/components/common/dialogs/ImportDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { Box, Button, LinearProgress, Paper, Typography } from "@mui/material"; import { FileRejection, useDropzone, type Accept } from "react-dropzone"; diff --git a/webapp/src/components/common/dialogs/OkDialog.tsx b/webapp/src/components/common/dialogs/OkDialog.tsx index b40854e5ac..d43c147b50 100644 --- a/webapp/src/components/common/dialogs/OkDialog.tsx +++ b/webapp/src/components/common/dialogs/OkDialog.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Button, ButtonProps } from "@mui/material"; import { useTranslation } from "react-i18next"; import BasicDialog, { BasicDialogProps } from "./BasicDialog"; diff --git a/webapp/src/components/common/fieldEditors/BooleanFE.tsx b/webapp/src/components/common/fieldEditors/BooleanFE.tsx index 08ecb5dcb3..56846ead2a 100644 --- a/webapp/src/components/common/fieldEditors/BooleanFE.tsx +++ b/webapp/src/components/common/fieldEditors/BooleanFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { SelectProps } from "@mui/material"; import * as RA from "ramda-adjunct"; import reactHookFormSupport from "../../../hoc/reactHookFormSupport"; diff --git a/webapp/src/components/common/fieldEditors/CheckBoxFE.tsx b/webapp/src/components/common/fieldEditors/CheckBoxFE.tsx index 6e15d7c116..a104d50692 100644 --- a/webapp/src/components/common/fieldEditors/CheckBoxFE.tsx +++ b/webapp/src/components/common/fieldEditors/CheckBoxFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Checkbox, CheckboxProps, diff --git a/webapp/src/components/common/fieldEditors/CheckboxesTagsFE.tsx b/webapp/src/components/common/fieldEditors/CheckboxesTagsFE.tsx index 42e3a7e3fb..1b2b8f9326 100644 --- a/webapp/src/components/common/fieldEditors/CheckboxesTagsFE.tsx +++ b/webapp/src/components/common/fieldEditors/CheckboxesTagsFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Autocomplete, AutocompleteProps, diff --git a/webapp/src/components/common/fieldEditors/ColorPickerFE/index.tsx b/webapp/src/components/common/fieldEditors/ColorPickerFE/index.tsx index e0d39b342e..54bc1bc754 100644 --- a/webapp/src/components/common/fieldEditors/ColorPickerFE/index.tsx +++ b/webapp/src/components/common/fieldEditors/ColorPickerFE/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, TextField, TextFieldProps, InputAdornment } from "@mui/material"; import { ChangeEvent, useRef, useState } from "react"; import { ColorResult, SketchPicker } from "react-color"; diff --git a/webapp/src/components/common/fieldEditors/ColorPickerFE/utils.ts b/webapp/src/components/common/fieldEditors/ColorPickerFE/utils.ts index a42276f7f4..8508a629cd 100644 --- a/webapp/src/components/common/fieldEditors/ColorPickerFE/utils.ts +++ b/webapp/src/components/common/fieldEditors/ColorPickerFE/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ColorResult } from "react-color"; export function stringToRGB(color: string): ColorResult["rgb"] | undefined { diff --git a/webapp/src/components/common/fieldEditors/ListFE/index.tsx b/webapp/src/components/common/fieldEditors/ListFE/index.tsx index 29f3518e26..94082376a5 100644 --- a/webapp/src/components/common/fieldEditors/ListFE/index.tsx +++ b/webapp/src/components/common/fieldEditors/ListFE/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Autocomplete, Box, diff --git a/webapp/src/components/common/fieldEditors/ListFE/utils.ts b/webapp/src/components/common/fieldEditors/ListFE/utils.ts index fd5591a30d..0496f1f066 100644 --- a/webapp/src/components/common/fieldEditors/ListFE/utils.ts +++ b/webapp/src/components/common/fieldEditors/ListFE/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { v4 as uuidv4 } from "uuid"; import * as RA from "ramda-adjunct"; diff --git a/webapp/src/components/common/fieldEditors/NumberFE.tsx b/webapp/src/components/common/fieldEditors/NumberFE.tsx index eb1de8ea53..40947322c1 100644 --- a/webapp/src/components/common/fieldEditors/NumberFE.tsx +++ b/webapp/src/components/common/fieldEditors/NumberFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TextField, TextFieldProps } from "@mui/material"; import * as RA from "ramda-adjunct"; import reactHookFormSupport from "../../../hoc/reactHookFormSupport"; diff --git a/webapp/src/components/common/fieldEditors/PasswordFE.tsx b/webapp/src/components/common/fieldEditors/PasswordFE.tsx index 4a0d1447cf..7723ab0366 100644 --- a/webapp/src/components/common/fieldEditors/PasswordFE.tsx +++ b/webapp/src/components/common/fieldEditors/PasswordFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TextField, TextFieldProps } from "@mui/material"; import reactHookFormSupport from "../../../hoc/reactHookFormSupport"; diff --git a/webapp/src/components/common/fieldEditors/RadioFE.tsx b/webapp/src/components/common/fieldEditors/RadioFE.tsx index ae296f64f3..2b8fa016c4 100644 --- a/webapp/src/components/common/fieldEditors/RadioFE.tsx +++ b/webapp/src/components/common/fieldEditors/RadioFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { FormControl, FormControlLabel, diff --git a/webapp/src/components/common/fieldEditors/SearchFE.tsx b/webapp/src/components/common/fieldEditors/SearchFE.tsx index e9d76c96da..39b1e1d626 100644 --- a/webapp/src/components/common/fieldEditors/SearchFE.tsx +++ b/webapp/src/components/common/fieldEditors/SearchFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { IconButton, InputAdornment } from "@mui/material"; import SearchIcon from "@mui/icons-material/Search"; import ClearIcon from "@mui/icons-material/Clear"; diff --git a/webapp/src/components/common/fieldEditors/SelectFE.tsx b/webapp/src/components/common/fieldEditors/SelectFE.tsx index 938f94f499..56ce7c30b4 100644 --- a/webapp/src/components/common/fieldEditors/SelectFE.tsx +++ b/webapp/src/components/common/fieldEditors/SelectFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { FormControl, FormHelperText, diff --git a/webapp/src/components/common/fieldEditors/StringFE.tsx b/webapp/src/components/common/fieldEditors/StringFE.tsx index a915a40289..1f60a0f5ee 100644 --- a/webapp/src/components/common/fieldEditors/StringFE.tsx +++ b/webapp/src/components/common/fieldEditors/StringFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TextField, TextFieldProps } from "@mui/material"; import reactHookFormSupport from "../../../hoc/reactHookFormSupport"; diff --git a/webapp/src/components/common/fieldEditors/SwitchFE.tsx b/webapp/src/components/common/fieldEditors/SwitchFE.tsx index 4abed57c0c..30d3edd60f 100644 --- a/webapp/src/components/common/fieldEditors/SwitchFE.tsx +++ b/webapp/src/components/common/fieldEditors/SwitchFE.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { FormControl, FormControlLabel, diff --git a/webapp/src/components/common/loaders/AppLoader.tsx b/webapp/src/components/common/loaders/AppLoader.tsx index 57230f7e2f..b8ab955ff3 100644 --- a/webapp/src/components/common/loaders/AppLoader.tsx +++ b/webapp/src/components/common/loaders/AppLoader.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { Box, Typography } from "@mui/material"; diff --git a/webapp/src/components/common/loaders/BackdropLoading.tsx b/webapp/src/components/common/loaders/BackdropLoading.tsx index 57ebdcd1d7..29218a2c4e 100644 --- a/webapp/src/components/common/loaders/BackdropLoading.tsx +++ b/webapp/src/components/common/loaders/BackdropLoading.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Backdrop, Box, CircularProgress } from "@mui/material"; interface BackdropLoadingProps { diff --git a/webapp/src/components/common/loaders/GlobalPageLoadingError.tsx b/webapp/src/components/common/loaders/GlobalPageLoadingError.tsx index a595345bcb..f31dc03b1d 100644 --- a/webapp/src/components/common/loaders/GlobalPageLoadingError.tsx +++ b/webapp/src/components/common/loaders/GlobalPageLoadingError.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Typography } from "@mui/material"; import topRightBackground from "../../../assets/img/top-right-background.png"; diff --git a/webapp/src/components/common/loaders/SimpleLoader.tsx b/webapp/src/components/common/loaders/SimpleLoader.tsx index e1785cc000..8493b99327 100644 --- a/webapp/src/components/common/loaders/SimpleLoader.tsx +++ b/webapp/src/components/common/loaders/SimpleLoader.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import { Box, CircularProgress } from "@mui/material"; diff --git a/webapp/src/components/common/page/BasicPage.tsx b/webapp/src/components/common/page/BasicPage.tsx index 1adec419e2..1d368850ad 100644 --- a/webapp/src/components/common/page/BasicPage.tsx +++ b/webapp/src/components/common/page/BasicPage.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Box, Divider } from "@mui/material"; import { PropsWithChildren, ReactNode } from "react"; diff --git a/webapp/src/components/common/page/RootPage.tsx b/webapp/src/components/common/page/RootPage.tsx index a06d1b6e18..fb72759b8a 100644 --- a/webapp/src/components/common/page/RootPage.tsx +++ b/webapp/src/components/common/page/RootPage.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { SvgIconComponent } from "@mui/icons-material"; import { Box, Typography } from "@mui/material"; import BasicPage from "./BasicPage"; diff --git a/webapp/src/components/common/page/SimpleContent.tsx b/webapp/src/components/common/page/SimpleContent.tsx index 6be0cd51b0..cd4804272c 100644 --- a/webapp/src/components/common/page/SimpleContent.tsx +++ b/webapp/src/components/common/page/SimpleContent.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useTranslation } from "react-i18next"; import LiveHelpRoundedIcon from "@mui/icons-material/LiveHelpRounded"; import { Box } from "@mui/material"; @@ -16,6 +30,7 @@ function EmptyView(props: EmptyViewProps) { (value: T): React.MutableRefObject { diff --git a/webapp/src/hooks/useBlocker.ts b/webapp/src/hooks/useBlocker.ts index b942611443..e4fce66307 100644 --- a/webapp/src/hooks/useBlocker.ts +++ b/webapp/src/hooks/useBlocker.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { History, Transition } from "history"; import { useContext, useEffect } from "react"; import { UNSAFE_NavigationContext as NavigationContext } from "react-router-dom"; diff --git a/webapp/src/hooks/useDebounce.ts b/webapp/src/hooks/useDebounce.ts index b854f42d30..231c4849a2 100644 --- a/webapp/src/hooks/useDebounce.ts +++ b/webapp/src/hooks/useDebounce.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { debounce, DebouncedFunc, diff --git a/webapp/src/hooks/useDebouncedEffect.ts b/webapp/src/hooks/useDebouncedEffect.ts index a4850c9531..90fdbdeb3d 100644 --- a/webapp/src/hooks/useDebouncedEffect.ts +++ b/webapp/src/hooks/useDebouncedEffect.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as R from "ramda"; import * as RA from "ramda-adjunct"; import { useEffect } from "react"; diff --git a/webapp/src/hooks/useDebouncedState.ts b/webapp/src/hooks/useDebouncedState.ts index 7a3dd7cb15..470248a02d 100644 --- a/webapp/src/hooks/useDebouncedState.ts +++ b/webapp/src/hooks/useDebouncedState.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { DebouncedFunc, DebouncedFuncLeading, diff --git a/webapp/src/hooks/useEnqueueErrorSnackbar.tsx b/webapp/src/hooks/useEnqueueErrorSnackbar.tsx index 7108492f9e..51dcec46d7 100644 --- a/webapp/src/hooks/useEnqueueErrorSnackbar.tsx +++ b/webapp/src/hooks/useEnqueueErrorSnackbar.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { ProviderContext, useSnackbar } from "notistack"; import { useCallback } from "react"; import { L } from "ts-toolbelt"; diff --git a/webapp/src/hooks/useMemoLocked.ts b/webapp/src/hooks/useMemoLocked.ts index b6e03535f9..1d536c92a7 100644 --- a/webapp/src/hooks/useMemoLocked.ts +++ b/webapp/src/hooks/useMemoLocked.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; /* diff --git a/webapp/src/hooks/useNavigateOnCondition.ts b/webapp/src/hooks/useNavigateOnCondition.ts index 036ce0e72f..3608856916 100644 --- a/webapp/src/hooks/useNavigateOnCondition.ts +++ b/webapp/src/hooks/useNavigateOnCondition.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { DependencyList } from "react"; import { useNavigate, To } from "react-router-dom"; import { useUpdateEffect } from "react-use"; diff --git a/webapp/src/hooks/useOperationInProgressCount.ts b/webapp/src/hooks/useOperationInProgressCount.ts index bc71fb677a..26be81248b 100644 --- a/webapp/src/hooks/useOperationInProgressCount.ts +++ b/webapp/src/hooks/useOperationInProgressCount.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useMemo, useState } from "react"; import * as R from "ramda"; diff --git a/webapp/src/hooks/usePromise.ts b/webapp/src/hooks/usePromise.ts index 890874e4fa..8769a05128 100644 --- a/webapp/src/hooks/usePromise.ts +++ b/webapp/src/hooks/usePromise.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useCallback, useEffect, useState } from "react"; import { usePromise as usePromiseWrapper } from "react-use"; import { isDependencyList } from "../utils/reactUtils"; diff --git a/webapp/src/hooks/usePromiseWithSnackbarError.ts b/webapp/src/hooks/usePromiseWithSnackbarError.ts index e8e9ba0e17..346d7568a6 100644 --- a/webapp/src/hooks/usePromiseWithSnackbarError.ts +++ b/webapp/src/hooks/usePromiseWithSnackbarError.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect } from "react"; import useEnqueueErrorSnackbar from "./useEnqueueErrorSnackbar"; import usePromise, { UsePromiseResponse, UsePromiseParams } from "./usePromise"; diff --git a/webapp/src/hooks/usePrompt.ts b/webapp/src/hooks/usePrompt.ts index 460e0bcb0d..6f0d1d0d76 100644 --- a/webapp/src/hooks/usePrompt.ts +++ b/webapp/src/hooks/usePrompt.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import useBlocker from "./useBlocker"; // * Workaround until it will be supported by react-router v6. diff --git a/webapp/src/hooks/useUpdateEffectOnce.ts b/webapp/src/hooks/useUpdateEffectOnce.ts index 61fedd115e..c8ec4d7808 100644 --- a/webapp/src/hooks/useUpdateEffectOnce.ts +++ b/webapp/src/hooks/useUpdateEffectOnce.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useEffect, useRef } from "react"; import { useUpdateEffect } from "react-use"; diff --git a/webapp/src/i18n.ts b/webapp/src/i18n.ts index 980cffbf89..f1012a8238 100644 --- a/webapp/src/i18n.ts +++ b/webapp/src/i18n.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import i18n from "i18next"; import Backend from "i18next-http-backend"; import LanguageDetector from "i18next-browser-languagedetector"; diff --git a/webapp/src/index.test.tsx b/webapp/src/index.test.tsx index 6317806c00..e2c5ffa601 100644 --- a/webapp/src/index.test.tsx +++ b/webapp/src/index.test.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { render } from "@testing-library/react"; import { Provider } from "react-redux"; import { StyledEngineProvider } from "@mui/material"; diff --git a/webapp/src/index.tsx b/webapp/src/index.tsx index 2c6792f7a8..4a3d8d1d42 100644 --- a/webapp/src/index.tsx +++ b/webapp/src/index.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createRoot } from "react-dom/client"; import { Provider } from "react-redux"; import { StyledEngineProvider } from "@mui/material"; diff --git a/webapp/src/redux/components/UseAsyncAppSelectorCond.tsx b/webapp/src/redux/components/UseAsyncAppSelectorCond.tsx index 7244b74c37..9e62e3bddd 100644 --- a/webapp/src/redux/components/UseAsyncAppSelectorCond.tsx +++ b/webapp/src/redux/components/UseAsyncAppSelectorCond.tsx @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as R from "ramda"; import { UseAsyncEntityStateResponse } from "../hooks/useAsyncAppSelector"; import { FetchStatus } from "../utils"; diff --git a/webapp/src/redux/ducks/auth.ts b/webapp/src/redux/ducks/auth.ts index f2eadef4d2..e77351b6c8 100644 --- a/webapp/src/redux/ducks/auth.ts +++ b/webapp/src/redux/ducks/auth.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createAsyncThunk, createReducer, isAnyOf } from "@reduxjs/toolkit"; import jwtDecode, { JwtPayload } from "jwt-decode"; import { UserInfo } from "../../common/types"; diff --git a/webapp/src/redux/ducks/groups.ts b/webapp/src/redux/ducks/groups.ts index 08e932a4d6..0d487f3a35 100644 --- a/webapp/src/redux/ducks/groups.ts +++ b/webapp/src/redux/ducks/groups.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createAsyncThunk, createEntityAdapter, diff --git a/webapp/src/redux/ducks/index.ts b/webapp/src/redux/ducks/index.ts index cbe18b24f7..7fe58f0a35 100644 --- a/webapp/src/redux/ducks/index.ts +++ b/webapp/src/redux/ducks/index.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { Action, combineReducers } from "redux"; import { L } from "ts-toolbelt"; import studies from "./studies"; diff --git a/webapp/src/redux/ducks/studies.ts b/webapp/src/redux/ducks/studies.ts index 2a52eda706..6260a002f0 100644 --- a/webapp/src/redux/ducks/studies.ts +++ b/webapp/src/redux/ducks/studies.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createAction, createAsyncThunk, diff --git a/webapp/src/redux/ducks/studyMaps.ts b/webapp/src/redux/ducks/studyMaps.ts index 3075e0dbff..9b5d1303dd 100644 --- a/webapp/src/redux/ducks/studyMaps.ts +++ b/webapp/src/redux/ducks/studyMaps.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createAction, createAsyncThunk, diff --git a/webapp/src/redux/ducks/studySyntheses.ts b/webapp/src/redux/ducks/studySyntheses.ts index a7ae6cdc52..00beb748b4 100644 --- a/webapp/src/redux/ducks/studySyntheses.ts +++ b/webapp/src/redux/ducks/studySyntheses.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createAction, createAsyncThunk, diff --git a/webapp/src/redux/ducks/ui.ts b/webapp/src/redux/ducks/ui.ts index 85b428c858..18d4886b55 100644 --- a/webapp/src/redux/ducks/ui.ts +++ b/webapp/src/redux/ducks/ui.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createAction, createReducer } from "@reduxjs/toolkit"; import { makeActionName } from "../utils"; diff --git a/webapp/src/redux/ducks/users.ts b/webapp/src/redux/ducks/users.ts index 1ad9f7e124..89922f8018 100644 --- a/webapp/src/redux/ducks/users.ts +++ b/webapp/src/redux/ducks/users.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createAsyncThunk, createEntityAdapter, diff --git a/webapp/src/redux/hooks/useAppDispatch.ts b/webapp/src/redux/hooks/useAppDispatch.ts index 6c73d110fa..62c5305391 100644 --- a/webapp/src/redux/hooks/useAppDispatch.ts +++ b/webapp/src/redux/hooks/useAppDispatch.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useDispatch } from "react-redux"; import { AppDispatch } from "../store"; diff --git a/webapp/src/redux/hooks/useAppSelector.ts b/webapp/src/redux/hooks/useAppSelector.ts index 8b0bcb08b0..54a95cf219 100644 --- a/webapp/src/redux/hooks/useAppSelector.ts +++ b/webapp/src/redux/hooks/useAppSelector.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TypedUseSelectorHook, useSelector } from "react-redux"; import { AppState } from "../ducks"; diff --git a/webapp/src/redux/hooks/useAsyncAppSelector.ts b/webapp/src/redux/hooks/useAsyncAppSelector.ts index 831cb294a1..2d01ab895a 100644 --- a/webapp/src/redux/hooks/useAsyncAppSelector.ts +++ b/webapp/src/redux/hooks/useAsyncAppSelector.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { AsyncThunk } from "@reduxjs/toolkit"; import { useEffect } from "react"; import { AppState } from "../ducks"; diff --git a/webapp/src/redux/hooks/useStudyMaps.ts b/webapp/src/redux/hooks/useStudyMaps.ts index 0057ee95e0..5e187fed1f 100644 --- a/webapp/src/redux/hooks/useStudyMaps.ts +++ b/webapp/src/redux/hooks/useStudyMaps.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { StudyMetadata } from "../../common/types"; import { AppState } from "../ducks"; diff --git a/webapp/src/redux/hooks/useStudySynthesis.ts b/webapp/src/redux/hooks/useStudySynthesis.ts index 0dcf068c6b..57fdf75931 100644 --- a/webapp/src/redux/hooks/useStudySynthesis.ts +++ b/webapp/src/redux/hooks/useStudySynthesis.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { useState } from "react"; import { useAsync } from "react-use"; import { StudyMetadata } from "../../common/types"; diff --git a/webapp/src/redux/middlewares/localStorageMiddleware.ts b/webapp/src/redux/middlewares/localStorageMiddleware.ts index 2cd2a288e9..2e0e4baded 100644 --- a/webapp/src/redux/middlewares/localStorageMiddleware.ts +++ b/webapp/src/redux/middlewares/localStorageMiddleware.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createListenerMiddleware, isAnyOf } from "@reduxjs/toolkit"; import { UserInfo } from "../../common/types"; import storage, { StorageKey } from "../../services/utils/localStorage"; diff --git a/webapp/src/redux/selectors.ts b/webapp/src/redux/selectors.ts index 61c0c71f59..5fb8947726 100644 --- a/webapp/src/redux/selectors.ts +++ b/webapp/src/redux/selectors.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createEntityAdapter, createSelector } from "@reduxjs/toolkit"; import { last } from "ramda"; import { diff --git a/webapp/src/redux/store.ts b/webapp/src/redux/store.ts index 0fc727390b..35c9296570 100644 --- a/webapp/src/redux/store.ts +++ b/webapp/src/redux/store.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { configureStore } from "@reduxjs/toolkit"; import { ThunkAction } from "redux-thunk"; import { AnyAction } from "redux"; diff --git a/webapp/src/redux/utils.ts b/webapp/src/redux/utils.ts index 66f2c890f8..ff8fe037db 100644 --- a/webapp/src/redux/utils.ts +++ b/webapp/src/redux/utils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { createAction, ActionCreatorWithPayload, diff --git a/webapp/src/services/api/auth.ts b/webapp/src/services/api/auth.ts index 038f4c55ed..f5ec9407df 100644 --- a/webapp/src/services/api/auth.ts +++ b/webapp/src/services/api/auth.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import axios from "axios"; import client from "./client"; import { RefreshDTO as UserTokensDTO } from "../../common/types"; diff --git a/webapp/src/services/api/client.ts b/webapp/src/services/api/client.ts index 5ff02eb13b..1eae8d860e 100644 --- a/webapp/src/services/api/client.ts +++ b/webapp/src/services/api/client.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import axios from "axios"; import debug from "debug"; import Cookies from "js-cookie"; diff --git a/webapp/src/services/api/downloads.ts b/webapp/src/services/api/downloads.ts index 4961bd1b3d..452df236a0 100644 --- a/webapp/src/services/api/downloads.ts +++ b/webapp/src/services/api/downloads.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { getConfig } from "../config"; import client from "./client"; diff --git a/webapp/src/services/api/maintenance.ts b/webapp/src/services/api/maintenance.ts index 5cc707a1b7..f0bcd0ee99 100644 --- a/webapp/src/services/api/maintenance.ts +++ b/webapp/src/services/api/maintenance.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import client from "./client"; export const getMaintenanceMode = async (): Promise => { diff --git a/webapp/src/services/api/matrix.ts b/webapp/src/services/api/matrix.ts index 1eff05f7c9..e7d6bee7a5 100644 --- a/webapp/src/services/api/matrix.ts +++ b/webapp/src/services/api/matrix.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { AxiosRequestConfig } from "axios"; import client from "./client"; import { @@ -10,6 +24,7 @@ import { } from "../../common/types"; import { FileDownloadTask } from "./downloads"; import { getConfig } from "../config"; +import { MatrixUpdateDTO } from "../../components/common/MatrixGrid/types"; export const getMatrixList = async ( name = "", @@ -91,16 +106,37 @@ export const deleteDataSet = async (id: string): Promise => { return res.data; }; +/** + * @deprecated Use `updateMatrix` instead. + * + * @param sid - The study ID. + * @param path - The path of the matrix. + * @param matrixEdit - The matrix edit data. + */ export const editMatrix = async ( sid: string, path: string, matrixEdit: MatrixEditDTO[], ): Promise => { - const res = await client.put( - `/v1/studies/${sid}/matrix?path=${encodeURIComponent(path)}`, + const sanitizedPath = path.startsWith("/") ? path.substring(1) : path; + + await client.put( + `/v1/studies/${sid}/matrix?path=${encodeURIComponent(sanitizedPath)}`, matrixEdit, ); - return res.data; +}; + +export const updateMatrix = async ( + studyId: string, + path: string, + updates: MatrixUpdateDTO[], +): Promise => { + const sanitizedPath = path.startsWith("/") ? path.substring(1) : path; + + await client.put( + `/v1/studies/${studyId}/matrix?path=${encodeURIComponent(sanitizedPath)}`, + updates, + ); }; export const getStudyMatrixIndex = async ( diff --git a/webapp/src/services/api/misc.ts b/webapp/src/services/api/misc.ts index b4bbe4dff0..95c40fefaf 100644 --- a/webapp/src/services/api/misc.ts +++ b/webapp/src/services/api/misc.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import client from "./client"; export interface APIVersion { diff --git a/webapp/src/services/api/studies/config/thematicTrimming/index.ts b/webapp/src/services/api/studies/config/thematicTrimming/index.ts index 0228eb98fc..c6a8bc8992 100644 --- a/webapp/src/services/api/studies/config/thematicTrimming/index.ts +++ b/webapp/src/services/api/studies/config/thematicTrimming/index.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import type { GetThematicTrimmingConfigParams, SetThematicTrimmingConfigParams, diff --git a/webapp/src/services/api/studies/config/thematicTrimming/types.ts b/webapp/src/services/api/studies/config/thematicTrimming/types.ts index 1137a9536f..4edbc2075f 100644 --- a/webapp/src/services/api/studies/config/thematicTrimming/types.ts +++ b/webapp/src/services/api/studies/config/thematicTrimming/types.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { StudyMetadata } from "../../../../../common/types"; export interface ThematicTrimmingConfig { diff --git a/webapp/src/services/api/studies/raw/index.ts b/webapp/src/services/api/studies/raw/index.ts index 63e46dc31a..c0138c2581 100644 --- a/webapp/src/services/api/studies/raw/index.ts +++ b/webapp/src/services/api/studies/raw/index.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import client from "../../client"; import type { DownloadMatrixParams } from "./types"; diff --git a/webapp/src/services/api/studies/raw/types.ts b/webapp/src/services/api/studies/raw/types.ts index e524fbdc72..cf8bcf6285 100644 --- a/webapp/src/services/api/studies/raw/types.ts +++ b/webapp/src/services/api/studies/raw/types.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import type { StudyMetadata } from "../../../../common/types"; export interface DownloadMatrixParams { diff --git a/webapp/src/services/api/studies/tableMode/constants.ts b/webapp/src/services/api/studies/tableMode/constants.ts index acef3d51f6..d2271a109d 100644 --- a/webapp/src/services/api/studies/tableMode/constants.ts +++ b/webapp/src/services/api/studies/tableMode/constants.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + const AREA = "areas"; const LINK = "links"; const THERMAL = "thermals"; diff --git a/webapp/src/services/api/studies/tableMode/index.ts b/webapp/src/services/api/studies/tableMode/index.ts index 03915b259e..c20d54dbeb 100644 --- a/webapp/src/services/api/studies/tableMode/index.ts +++ b/webapp/src/services/api/studies/tableMode/index.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import client from "../../client"; import { format } from "../../../../utils/stringUtils"; import type { diff --git a/webapp/src/services/api/studies/tableMode/types.ts b/webapp/src/services/api/studies/tableMode/types.ts index e20a167e27..cfea92f8e7 100644 --- a/webapp/src/services/api/studies/tableMode/types.ts +++ b/webapp/src/services/api/studies/tableMode/types.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { DeepPartial } from "react-hook-form"; import type { StudyMetadata } from "../../../../common/types"; import { TABLE_MODE_COLUMNS_BY_TYPE, TABLE_MODE_TYPES } from "./constants"; diff --git a/webapp/src/services/api/study.ts b/webapp/src/services/api/study.ts index a060bd8a16..bdb8dde28b 100644 --- a/webapp/src/services/api/study.ts +++ b/webapp/src/services/api/study.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { AxiosRequestConfig } from "axios"; import { isBoolean, trimCharsStart } from "ramda-adjunct"; import client from "./client"; diff --git a/webapp/src/services/api/studydata.ts b/webapp/src/services/api/studydata.ts index a39b55f20b..a230be85bf 100644 --- a/webapp/src/services/api/studydata.ts +++ b/webapp/src/services/api/studydata.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { LinkCreationInfoDTO, LinkInfoWithUI, diff --git a/webapp/src/services/api/tasks.ts b/webapp/src/services/api/tasks.ts index 27b0bec58f..3629646b00 100644 --- a/webapp/src/services/api/tasks.ts +++ b/webapp/src/services/api/tasks.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { TaskDTO, TaskStatus } from "../../common/types"; import client from "./client"; diff --git a/webapp/src/services/api/user.ts b/webapp/src/services/api/user.ts index e8382bc180..0217bd26ed 100644 --- a/webapp/src/services/api/user.ts +++ b/webapp/src/services/api/user.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as RA from "ramda-adjunct"; import client from "./client"; import { diff --git a/webapp/src/services/api/variant.ts b/webapp/src/services/api/variant.ts index 3e8f76132e..0825ef7d1b 100644 --- a/webapp/src/services/api/variant.ts +++ b/webapp/src/services/api/variant.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import client from "./client"; import { CommandDTO, diff --git a/webapp/src/services/api/xpansion.ts b/webapp/src/services/api/xpansion.ts index fb66a08a9a..841d280d17 100644 --- a/webapp/src/services/api/xpansion.ts +++ b/webapp/src/services/api/xpansion.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { AxiosRequestConfig } from "axios"; import { MatrixType } from "../../common/types"; import { diff --git a/webapp/src/services/config.ts b/webapp/src/services/config.ts index 4f93290c8b..2eed7bff46 100644 --- a/webapp/src/services/config.ts +++ b/webapp/src/services/config.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import debug from "debug"; import axios from "axios"; import moment from "moment"; diff --git a/webapp/src/services/utils/index.ts b/webapp/src/services/utils/index.ts index f7980ee2bd..27cb441d65 100644 --- a/webapp/src/services/utils/index.ts +++ b/webapp/src/services/utils/index.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import moment from "moment"; import debug from "debug"; import i18n, { TFunction } from "i18next"; diff --git a/webapp/src/services/utils/localStorage.ts b/webapp/src/services/utils/localStorage.ts index f55586feba..11bd432e0d 100644 --- a/webapp/src/services/utils/localStorage.ts +++ b/webapp/src/services/utils/localStorage.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as RA from "ramda-adjunct"; import packages from "../../../package.json"; import { UserInfo } from "../../common/types"; diff --git a/webapp/src/services/webSockets.ts b/webapp/src/services/webSockets.ts index e61bf0f4b7..18a250f019 100644 --- a/webapp/src/services/webSockets.ts +++ b/webapp/src/services/webSockets.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import debug from "debug"; import * as RA from "ramda-adjunct"; import { diff --git a/webapp/src/tests/mocks/mockGetBoundingClientRect.ts b/webapp/src/tests/mocks/mockGetBoundingClientRect.ts new file mode 100644 index 0000000000..a66544a9d0 --- /dev/null +++ b/webapp/src/tests/mocks/mockGetBoundingClientRect.ts @@ -0,0 +1,90 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +/** + * Mocks the `getBoundingClientRect` method of the Element prototype. + * + * This utility function overrides the default `getBoundingClientRect` method + * to return predetermined values. This is particularly useful in test environments + * where the dimensions and positioning of elements cannot be accurately measured + * as they would be in a fully rendered browser environment. By mocking these values, + * tests can assert layout and dimension-related properties in a controlled and + * predictable manner. + * + * Usage: + * This mock should be set up in the setup phase of your tests, typically in a + * `beforeEach` block, to ensure that every test runs with the same initial conditions. + * Remember to restore or reset the original function after your tests to avoid + * side effects, especially if other tests depend on the original behavior. + * + * @example + * describe('Your Test Suite', () => { + * beforeEach(() => { + * mockGetBoundingClientRect(); + * }); + * + * afterEach(() => { + * vi.restoreAllMocks(); + * }); + * + * test('your test', () => { + * // your test code here + * }); + * }); + * + * The mock is implemented by replacing `Element.prototype.getBoundingClientRect` + * with a custom function that returns fixed dimensions: + * - `width`: Calculated from the computed style of the element. + * - `height`: Calculated from the computed style of the element. + * - `top`: Always 0, simulating the element's position relative to the viewport. + * - `left`: Always 0, simulating the element's position relative to the viewport. + * - `bottom`: Calculated as the height, simulating the element's lower boundary relative to the viewport. + * - `right`: Calculated as the width, simulating the element's right boundary relative to the viewport. + * - `x`: Always 0, representing the x-coordinate of the element's bounding box. + * - `y`: Always 0, representing the y-coordinate of the element's bounding box. + * - `toJSON`: A function that returns an object representation of the bounding box. + * + * Note that the computed dimensions are based on the element's computed style at the time + * of the function call, so tests should ensure that relevant styles are appropriately set + * or mocked to reflect expected values. + * @see https://developer.mozilla.org/fr/docs/Web/API/Element/getBoundingClientRect + */ +export const mockGetBoundingClientRect = () => { + Element.prototype.getBoundingClientRect = vi.fn(function (this: Element) { + const { width, height } = window.getComputedStyle(this); + const rectWidth = parseInt(width, 10); + const rectHeight = parseInt(height, 10); + + return { + width: rectWidth, + height: rectHeight, + top: 0, + left: 0, + bottom: rectHeight, + right: rectWidth, + x: 0, + y: 0, + toJSON: () => ({ + width: rectWidth, + height: rectHeight, + top: 0, + left: 0, + bottom: rectHeight, + right: rectWidth, + x: 0, + y: 0, + }), + }; + }); +}; diff --git a/webapp/src/tests/mocks/mockHTMLCanvasElement.ts b/webapp/src/tests/mocks/mockHTMLCanvasElement.ts new file mode 100644 index 0000000000..84e22dd58e --- /dev/null +++ b/webapp/src/tests/mocks/mockHTMLCanvasElement.ts @@ -0,0 +1,70 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +/** + * Creates a mock for the HTML Canvas API in a testing environment. + * + * This function addresses the problem of testing components that rely on the + * Canvas API in a Node.js environment, where the DOM and Canvas are not natively + * available. Specifically, it solves issues related to testing components that + * use libraries like @glideapps/glide-data-grid, which depend on canvas functionality. + * + * The mock provides stub implementations for commonly used CanvasRenderingContext2D + * methods, allowing tests to run without throwing "not implemented" errors that + * would typically occur when canvas methods are called in a non-browser environment. + * + * @returns An object containing the mocked context and getContext function. + */ +export const mockHTMLCanvasElement = () => { + /** + * A partial mock of CanvasRenderingContext2D. + * Only the most commonly used methods are mocked to keep the implementation lean. + * Additional methods can be added here as needed. + */ + const contextMock: Partial = { + measureText: vi.fn().mockReturnValue({ + width: 0, + actualBoundingBoxAscent: 0, + actualBoundingBoxDescent: 0, + actualBoundingBoxLeft: 0, + actualBoundingBoxRight: 0, + fontBoundingBoxAscent: 0, + fontBoundingBoxDescent: 0, + }), + fillRect: vi.fn(), + clearRect: vi.fn(), + getImageData: vi + .fn() + .mockReturnValue({ data: new Uint8ClampedArray(), width: 0, height: 0 }), + save: vi.fn(), + fillText: vi.fn(), + restore: vi.fn(), + beginPath: vi.fn(), + moveTo: vi.fn(), + lineTo: vi.fn(), + closePath: vi.fn(), + translate: vi.fn(), + scale: vi.fn(), + rotate: vi.fn(), + arc: vi.fn(), + rect: vi.fn(), + }; + + const getContextMock = vi.fn().mockReturnValue(contextMock); + + // Override the getContext method on the HTMLCanvasElement prototype + window.HTMLCanvasElement.prototype.getContext = getContextMock; + + return { contextMock, getContextMock }; +}; diff --git a/webapp/src/tests/mocks/mockResizeObserver.ts b/webapp/src/tests/mocks/mockResizeObserver.ts new file mode 100644 index 0000000000..588233a277 --- /dev/null +++ b/webapp/src/tests/mocks/mockResizeObserver.ts @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +/** + * This is a mock implementation of the global `ResizeObserver`. + * ResizeObserver is a web API used to monitor changes in an element's size. + * As Vitest runs in a Node environment where certain browser-specific APIs like ResizeObserver are not available, + * we need to mock these APIs to prevent errors during testing and ensure that components relying on them can be tested. + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver/ResizeObserver + */ +global.ResizeObserver = vi.fn().mockImplementation(() => ({ + // The `observe` method is responsible for starting the observation of size changes on the specified element. + // We mock this method to simply track calls (since actual DOM measurements aren't possible in Jest or Vitest environments). + observe: vi.fn(), + + // The `unobserve` method stops the observation of an element. It's essential for cleanup in real usage to avoid memory leaks, + // but here it's just a mock to ensure we can verify calls to it during tests. + unobserve: vi.fn(), + + // The `disconnect` method stops all observations by this instance of ResizeObserver. + // This is used to clean up observers when a component unmounts. The mock helps to simulate and test these cleanup behaviors. + disconnect: vi.fn(), +})); diff --git a/webapp/src/tests/setup.ts b/webapp/src/tests/setup.ts index d1e9ef6bae..5512f0a058 100644 --- a/webapp/src/tests/setup.ts +++ b/webapp/src/tests/setup.ts @@ -1,7 +1,22 @@ -import * as matchers from "@testing-library/jest-dom/matchers"; -import "@testing-library/jest-dom"; +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + +import "@testing-library/jest-dom/vitest"; +import { expect, afterEach } from "vitest"; import { cleanup } from "@testing-library/react"; -import { expect } from "vitest"; +import * as matchers from "@testing-library/jest-dom/matchers"; +import "./mocks/mockResizeObserver"; // Extend Vitest's expect function with jest-dom matchers for enhanced DOM assertions. expect.extend(matchers); diff --git a/webapp/src/theme.ts b/webapp/src/theme.ts index efbe96392a..a33788da8e 100644 --- a/webapp/src/theme.ts +++ b/webapp/src/theme.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import * as React from "react"; import { createTheme } from "@mui/material/styles"; diff --git a/webapp/src/types/i18next.d.ts b/webapp/src/types/i18next.d.ts index 557b3de4e2..a9f77c3835 100644 --- a/webapp/src/types/i18next.d.ts +++ b/webapp/src/types/i18next.d.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import "i18next"; declare module "i18next" { diff --git a/webapp/src/types/reset.d.ts b/webapp/src/types/reset.d.ts index 875dabbf65..ceb285f769 100644 --- a/webapp/src/types/reset.d.ts +++ b/webapp/src/types/reset.d.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import "@total-typescript/ts-reset/array-includes"; import "@total-typescript/ts-reset/array-index-of"; import "@total-typescript/ts-reset/filter-boolean"; diff --git a/webapp/src/utils/feUtils.ts b/webapp/src/utils/feUtils.ts index 636fcb82ea..8d6c75de6f 100644 --- a/webapp/src/utils/feUtils.ts +++ b/webapp/src/utils/feUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { HTMLInputTypeAttribute } from "react"; export interface InputObject { diff --git a/webapp/src/utils/fileUtils.ts b/webapp/src/utils/fileUtils.ts index 0233d6f984..f7d3895817 100644 --- a/webapp/src/utils/fileUtils.ts +++ b/webapp/src/utils/fileUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /** * Triggers the download of a file with the given data and name. * diff --git a/webapp/src/utils/fnUtils.ts b/webapp/src/utils/fnUtils.ts index dd32ac4c97..426dc01179 100644 --- a/webapp/src/utils/fnUtils.ts +++ b/webapp/src/utils/fnUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + /** * A utility function designed to be used as a placeholder or stub. It can be used in situations where you might * otherwise be tempted to disable an ESLint rule temporarily, such as when you need to pass a function that diff --git a/webapp/src/utils/i18nUtils.ts b/webapp/src/utils/i18nUtils.ts index c613deab68..185f3dbe26 100644 --- a/webapp/src/utils/i18nUtils.ts +++ b/webapp/src/utils/i18nUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import i18n from "../i18n"; /** diff --git a/webapp/src/utils/muiUtils.ts b/webapp/src/utils/muiUtils.ts index e99d875109..6ab5f19169 100644 --- a/webapp/src/utils/muiUtils.ts +++ b/webapp/src/utils/muiUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { SxProps, Theme } from "@mui/material"; export function mergeSxProp( diff --git a/webapp/src/utils/reactUtils.ts b/webapp/src/utils/reactUtils.ts index 0821bd4b82..a7b71b5468 100644 --- a/webapp/src/utils/reactUtils.ts +++ b/webapp/src/utils/reactUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { setRef } from "@mui/material"; export function isDependencyList( diff --git a/webapp/src/utils/stringUtils.ts b/webapp/src/utils/stringUtils.ts index 823829fb29..6c829d37aa 100644 --- a/webapp/src/utils/stringUtils.ts +++ b/webapp/src/utils/stringUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { deburr } from "lodash"; import * as R from "ramda"; import * as RA from "ramda-adjunct"; diff --git a/webapp/src/utils/studiesUtils.ts b/webapp/src/utils/studiesUtils.ts index 4072e09c51..774e80ed13 100644 --- a/webapp/src/utils/studiesUtils.ts +++ b/webapp/src/utils/studiesUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import moment from "moment"; import * as R from "ramda"; import * as RA from "ramda-adjunct"; diff --git a/webapp/src/utils/tsUtils.ts b/webapp/src/utils/tsUtils.ts index f368e9b8a4..730c211486 100644 --- a/webapp/src/utils/tsUtils.ts +++ b/webapp/src/utils/tsUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { O } from "ts-toolbelt"; /** diff --git a/webapp/src/utils/validationUtils.ts b/webapp/src/utils/validationUtils.ts index 86fb294d8b..3d4c168697 100644 --- a/webapp/src/utils/validationUtils.ts +++ b/webapp/src/utils/validationUtils.ts @@ -1,3 +1,17 @@ +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { t } from "i18next"; //////////////////////////////////////////////////////////////// @@ -7,6 +21,7 @@ import { t } from "i18next"; interface NumberValidationOptions { min?: number; max?: number; + integer?: boolean; } interface StringValidationOptions { @@ -197,8 +212,15 @@ export function validateNumber( return t("form.field.invalidNumber", { value }); } - const { min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER } = - options; + const { + min = Number.MIN_SAFE_INTEGER, + max = Number.MAX_SAFE_INTEGER, + integer = false, + } = options; + + if (integer && !Number.isInteger(valueOrOpts)) { + return t("form.field.mustBeInteger"); + } if (value < min) { return t("form.field.minValue", { 0: min }); diff --git a/webapp/src/vite-env.d.ts b/webapp/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2a0..0000000000 --- a/webapp/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/webapp/tsconfig.json b/webapp/tsconfig.json index 3a20f675ad..c9e8d32271 100644 --- a/webapp/tsconfig.json +++ b/webapp/tsconfig.json @@ -2,7 +2,11 @@ "compilerOptions": { "target": "es2022", "useDefineForClassFields": true, - "lib": ["ES2022", "DOM", "DOM.Iterable"], + "lib": [ + "ES2022", + "DOM", + "DOM.Iterable", + ], "module": "ESNext", "skipLibCheck": true, @@ -13,7 +17,11 @@ "isolatedModules": true, "noEmit": true, "jsx": "react-jsx", - "types": ["vitest/globals", "vitest/jsdom"], + "types": [ + "vite/client", + "vitest/globals", + "vitest/jsdom", + ], /* Linting */ "strict": true, diff --git a/webapp/tsconfig.node.json b/webapp/tsconfig.node.json index b1b8569880..15b8ba2c14 100644 --- a/webapp/tsconfig.node.json +++ b/webapp/tsconfig.node.json @@ -5,7 +5,10 @@ "module": "ESNext", "moduleResolution": "bundler", "allowSyntheticDefaultImports": true, - "types": ["vitest/globals", "vitest/jsdom"] + "types": [ + "vitest/globals", + "vitest/jsdom", + ] }, "include": ["vite.config.ts"] } diff --git a/webapp/vite.config.ts b/webapp/vite.config.ts index 7cce8d327b..8dac6c2f4e 100644 --- a/webapp/vite.config.ts +++ b/webapp/vite.config.ts @@ -1,4 +1,17 @@ -/// +/** + * Copyright (c) 2024, RTE (https://www.rte-france.com) + * + * See AUTHORS.txt + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of the Antares project. + */ + import { defineConfig } from "vite"; import react from "@vitejs/plugin-react-swc"; @@ -30,7 +43,7 @@ export default defineConfig(({ mode }) => { }, }, test: { - globals: true, // Use the APIs globally + globals: true, // Use the APIs globally, environment: "jsdom", css: true, setupFiles: "./src/tests/setup.ts",