From 98a27343e3a06f7ede11529b5c2eb1cdf4ca59ea Mon Sep 17 00:00:00 2001 From: Frederik Kratzert Date: Sun, 19 Oct 2025 10:31:52 +0000 Subject: [PATCH 1/7] Refactor: Rename method that loads cached sites file --- rivretrieve/australia.py | 6 +++--- rivretrieve/base.py | 8 ++------ rivretrieve/brazil.py | 6 +++--- rivretrieve/canada.py | 6 +++--- rivretrieve/chile.py | 6 +++--- rivretrieve/france.py | 6 +++--- rivretrieve/japan.py | 6 +++--- rivretrieve/poland.py | 6 +++--- rivretrieve/slovenia.py | 6 +++--- rivretrieve/southafrica.py | 6 +++--- rivretrieve/uk_ea.py | 6 +++--- rivretrieve/uk_nrfa.py | 4 ++-- rivretrieve/usa.py | 6 +++--- rivretrieve/utils.py | 7 +++---- 14 files changed, 40 insertions(+), 45 deletions(-) diff --git a/rivretrieve/australia.py b/rivretrieve/australia.py index e6da17e..5dc6f6a 100644 --- a/rivretrieve/australia.py +++ b/rivretrieve/australia.py @@ -19,9 +19,9 @@ class AustraliaFetcher(base.RiverDataFetcher): BOM_URL = "http://www.bom.gov.au/waterdata/services" @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available Australian gauge IDs.""" - return utils.load_sites_csv("australia") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available Australian gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("australia") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/base.py b/rivretrieve/base.py index fd6746c..199a8ad 100644 --- a/rivretrieve/base.py +++ b/rivretrieve/base.py @@ -38,12 +38,8 @@ def get_data( @staticmethod @abc.abstractmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available gauge IDs. - - Returns: - A pandas DataFrame containing gauge ID information. - """ + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available gauge IDs and metadata from a cached file.""" pass def get_metadata(self) -> pd.DataFrame: diff --git a/rivretrieve/brazil.py b/rivretrieve/brazil.py index b92da1f..9339182 100644 --- a/rivretrieve/brazil.py +++ b/rivretrieve/brazil.py @@ -42,9 +42,9 @@ def __init__(self, username: Optional[str] = None, password: Optional[str] = Non ) @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available Brazilian gauge IDs.""" - return utils.load_sites_csv("brazil") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available Brazilian gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("brazil") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/canada.py b/rivretrieve/canada.py index 16599d2..3c0219b 100644 --- a/rivretrieve/canada.py +++ b/rivretrieve/canada.py @@ -27,9 +27,9 @@ class CanadaFetcher(base.RiverDataFetcher): HYDAT_PATH = DATA_DIR / "Hydat.sqlite3" @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available Canadian gauge IDs.""" - return utils.load_sites_csv("canada") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available Canadian gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("canada") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/chile.py b/rivretrieve/chile.py index 4388fef..368835a 100644 --- a/rivretrieve/chile.py +++ b/rivretrieve/chile.py @@ -18,9 +18,9 @@ class ChileFetcher(base.RiverDataFetcher): """Fetches river gauge data from Chile's CR2 explorador.""" @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available Chilean gauge IDs.""" - return utils.load_sites_csv("chile") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available Chilean gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("chile") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/france.py b/rivretrieve/france.py index dc0d47f..5aaadcd 100644 --- a/rivretrieve/france.py +++ b/rivretrieve/france.py @@ -17,9 +17,9 @@ class FranceFetcher(base.RiverDataFetcher): BASE_URL = "https://hubeau.eaufrance.fr/api/v2/hydrometrie/obs_elab" @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available French gauge IDs.""" - return utils.load_sites_csv("french") # Note: CSV file name is french_sites.csv + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available French gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("french") # Note: CSV file name is french_sites.csv @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/japan.py b/rivretrieve/japan.py index 13fc1f9..ea80911 100644 --- a/rivretrieve/japan.py +++ b/rivretrieve/japan.py @@ -21,9 +21,9 @@ class JapanFetcher(base.RiverDataFetcher): BASE_URL = "http://www1.river.go.jp/cgi-bin/DspWaterData.exe" @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available Japanese gauge IDs.""" - return utils.load_sites_csv("japan") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available Japanese gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("japan") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/poland.py b/rivretrieve/poland.py index 7f08532..2a6fc7d 100644 --- a/rivretrieve/poland.py +++ b/rivretrieve/poland.py @@ -25,9 +25,9 @@ class PolandFetcher(base.RiverDataFetcher): CACHE_FILE = Path(os.path.dirname(__file__)) / "data" / "poland.zarr" @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available Polish gauge IDs.""" - return utils.load_sites_csv("poland") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available Polish gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("poland") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/slovenia.py b/rivretrieve/slovenia.py index f99dd81..6e6adc1 100644 --- a/rivretrieve/slovenia.py +++ b/rivretrieve/slovenia.py @@ -19,9 +19,9 @@ class SloveniaFetcher(base.RiverDataFetcher): BASE_URL = "https://vode.arso.gov.si/hidarhiv/pov_arhiv_tab.php" @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available Slovenian gauge IDs.""" - return utils.load_sites_csv("slovenia") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available Slovenian gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("slovenia") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/southafrica.py b/rivretrieve/southafrica.py index 3973618..a28da4a 100644 --- a/rivretrieve/southafrica.py +++ b/rivretrieve/southafrica.py @@ -21,9 +21,9 @@ class SouthAfricaFetcher(base.RiverDataFetcher): BASE_URL = "https://www.dws.gov.za/Hydrology/Verified/HyData.aspx" @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available South African gauge IDs.""" - return utils.load_sites_csv("southAfrican") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available South African gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("southAfrican") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/uk_ea.py b/rivretrieve/uk_ea.py index 986954f..0c67329 100644 --- a/rivretrieve/uk_ea.py +++ b/rivretrieve/uk_ea.py @@ -28,9 +28,9 @@ class UKEAFetcher(base.RiverDataFetcher): } @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available UK gauge IDs.""" - return utils.load_sites_csv("uk_ea") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available UK gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("uk_ea") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/uk_nrfa.py b/rivretrieve/uk_nrfa.py index 9691a98..f6f6413 100644 --- a/rivretrieve/uk_nrfa.py +++ b/rivretrieve/uk_nrfa.py @@ -28,9 +28,9 @@ class UKNRFAFetcher(base.RiverDataFetcher): } @staticmethod - def get_gauge_ids() -> pd.DataFrame: + def get_cached_metadata() -> pd.DataFrame: """Retrieves a DataFrame of available NRFA gauge IDs from the cached CSV.""" - return utils.load_sites_csv("uk_nrfa") + return utils.load_cached_metadata_csv("uk_nrfa") def get_metadata(self) -> pd.DataFrame: """Fetches site metadata from the NRFA API and renames columns.""" diff --git a/rivretrieve/usa.py b/rivretrieve/usa.py index 733594a..d638e6c 100644 --- a/rivretrieve/usa.py +++ b/rivretrieve/usa.py @@ -15,9 +15,9 @@ class USAFetcher(base.RiverDataFetcher): """Fetches river gauge data from USGS NWIS.""" @staticmethod - def get_gauge_ids() -> pd.DataFrame: - """Retrieves a DataFrame of available USA gauge IDs.""" - return utils.load_sites_csv("usa") + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available USA gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("usa") @staticmethod def get_available_variables() -> tuple[str, ...]: diff --git a/rivretrieve/utils.py b/rivretrieve/utils.py index 34198ec..890818b 100644 --- a/rivretrieve/utils.py +++ b/rivretrieve/utils.py @@ -14,8 +14,6 @@ logger = logging.getLogger(__name__) -DEFAULT_HEADERS = {"User-Agent": "Mozilla/5.0"} - def format_start_date(start_date: Optional[str]) -> str: """Formats the start date, defaulting to 1900-01-01 if None.""" @@ -60,12 +58,13 @@ def requests_retry_session( return session -def load_sites_csv(country_code: str) -> pd.DataFrame: +def load_cached_metadata_csv(country_code: str) -> pd.DataFrame: """Loads site data from a CSV file in the data directory.""" current_dir = os.path.dirname(__file__) file_path = os.path.join(current_dir, "cached_site_data", f"{country_code}_sites.csv") try: - return pd.read_csv(file_path, dtype={constants.GAUGE_ID: str}) + df = pd.read_csv(file_path, dtype={constants.GAUGE_ID: str}) + return df.set_index(constants.GAUGE_ID) except FileNotFoundError: logger.error(f"Site file not found: {file_path}") raise From 02b127d2c68f363baa49747c2ec09c20f13b84b2 Mon Sep 17 00:00:00 2001 From: Frederik Kratzert Date: Mon, 20 Oct 2025 09:12:49 +0000 Subject: [PATCH 2/7] Add fetcher for portugal, fixes #40 --- examples/test_portugal_fetcher.py | 52 + rivretrieve/__init__.py | 1 + rivretrieve/portugal.py | 858 + tests/test_data/portugal_19B01H_stage.html | 23676 +++++++++++++++++++ tests/test_portugal.py | 46 + 5 files changed, 24633 insertions(+) create mode 100644 examples/test_portugal_fetcher.py create mode 100644 rivretrieve/portugal.py create mode 100644 tests/test_data/portugal_19B01H_stage.html create mode 100644 tests/test_portugal.py diff --git a/examples/test_portugal_fetcher.py b/examples/test_portugal_fetcher.py new file mode 100644 index 0000000..814c758 --- /dev/null +++ b/examples/test_portugal_fetcher.py @@ -0,0 +1,52 @@ +import logging + +import matplotlib.pyplot as plt + +from rivretrieve import PortugalFetcher, constants + +logging.basicConfig(level=logging.INFO) + +# Example gauge IDs from the SITE_MAP in portugal.py +gauge_ids = [ + "19B/01H", # A known gauge ID from the map +] +variables = [constants.STAGE_DAILY_MEAN] +start_date = "1980-01-01" +end_date = None # Defaults to today + +fetcher = PortugalFetcher() + +for variable in variables: + plt.figure(figsize=(12, 6)) + print(f"\n--- Testing variable: {variable} ---") + for gauge_id in gauge_ids: + print(f"Fetching {variable} for {gauge_id} from {start_date} to {end_date}...") + data = fetcher.get_data(gauge_id=gauge_id, variable=variable, start_date=start_date, end_date=end_date) + if not data.empty: + print(f"Data for {gauge_id}:") + print(data.head()) + print(f"Time series from {data.index.min()} to {data.index.max()}") + plt.plot( + data.index, + data[variable], + label=f"{gauge_id} - {variable}", + marker=".", + linestyle="-", + ) + else: + print(f"No {variable} data found for {gauge_id}") + + if plt.gca().has_data(): + plt.xlabel(constants.TIME_INDEX) + plt.ylabel(variable) + plt.title(f"Portugal River Data ({start_date} to {end_date})") + plt.legend() + plt.grid(True) + plt.tight_layout() + plot_path = f"portugal_{variable}_plot.png" + plt.savefig(plot_path) + print(f"Plot saved to {plot_path}") + else: + print(f"No data to plot for {variable}.") + +print("Test finished.") diff --git a/rivretrieve/__init__.py b/rivretrieve/__init__.py index b54e7cb..3878a25 100644 --- a/rivretrieve/__init__.py +++ b/rivretrieve/__init__.py @@ -8,6 +8,7 @@ from .france import FranceFetcher from .japan import JapanFetcher from .poland import PolandFetcher +from .portugal import PortugalFetcher from .slovenia import SloveniaFetcher from .southafrica import SouthAfricaFetcher from .uk_ea import UKEAFetcher diff --git a/rivretrieve/portugal.py b/rivretrieve/portugal.py new file mode 100644 index 0000000..2416db0 --- /dev/null +++ b/rivretrieve/portugal.py @@ -0,0 +1,858 @@ +"""Fetcher for Portuguese river gauge data from SNIRH.""" + +import html +import logging +from datetime import datetime +from io import StringIO +from typing import Optional + +import pandas as pd + +from . import base, constants, utils + +logger = logging.getLogger(__name__) + +# SITE_MAP from https://github.com/kratzert/RivRetrieve-Python/issues/40 +SITE_MAP = { + "19B/01H": 1627743378, + "03J/02H": 1627743350, + "17H/04H": 1627743352, + "15G/02H": 1627743380, + "11H/02H": 1627743382, + "21O/08H": 2443345812, + "21O/03H": 1627743386, + "26J/01H": 1627743392, + "04K/04A": 11508860178, + "11H/01A": 1627743384, + "17M/01A": 1627743458, + "06S/01A": 1627743548, + "28I/01A": 1627743554, + "14H/01A": 1627743562, + "30E/01A": 1627743568, + "05O/01A": 1627743572, + "04H/01A": 1627743674, + "12M/01A": 1627743678, + "12L/02A": 1627751888, + "05P/01A": 1627753166, + "11L/03A": 1627758736, + "13H/05A": 1627758750, + "11H/05A": 7945659548, + "11K/02A": 1627758884, + "03J/01A": 1627758928, + "16K/01A": 1627759292, + "08N/01AE": 1627759302, + "12H/01A": 1627759328, + "07K/01A": 1627759340, + "02Q/01A": 1627759434, + "27L/01A": 1627759452, + "14O/01A": 1627759474, + "07M/02A": 1627759510, + "07K/02A": 1627759512, + "22L/01A": 1627759534, + "29M/04A": 7914972596, + "07K/05A": 7556914548, + "05R/01A": 1627743534, + "17J/01A": 1627743544, + "08H/01A": 1627743574, + "05P/02A": 1627743666, + "26F/01A": 1627743668, + "30M/06A": 7927143708, + "16H/01A": 1627743896, + "15J/01A": 1627751876, + "28G/02A": 1627751880, + "12L/01AE": 1627751890, + "13L/01AE": 1627751892, + "07G/01A": 1627751912, + "04J/08A": 9978398426, + "09G/04A": 7554829608, + "12N/01AE": 1627752558, + "10K/01A": 1627758608, + "06N/01A": 1627758622, + "26G/01AE": 1627758624, + "12I/01A": 1627758668, + "17L/03A": 1627758676, + "05K/02A": 10908513554, + "04I/01A": 1627758686, + "14N/01A": 1627758730, + "22M/01A": 1627758752, + "20E/01A": 1627758756, + "12O/01A": 1627758774, + "22I/01A": 1627758784, + "05T/01A": 1627758786, + "19H/01A": 1627758816, + "29I/01A": 1627758826, + "27H/01A": 1627758846, + "27H/03AE": 1627758832, + "26E/01A": 1627758860, + "18K/02A": 1627758874, + "30L/01A": 1627758894, + "24I/01A": 1627758906, + "18F/03A": 1627758936, + "13O/01A": 1627758954, + "04F/01A": 1627758956, + "23G/01A": 1627758948, + "17L/01A": 1627759290, + "07M/01A": 1627759330, + "21A/01A": 1627759358, + "03I/01A": 1627759378, + "28G/01A": 1627759384, + "13J/01A": 1627759390, + "08P/01A": 1627759396, + "14M/01A": 1627759382, + "17B/01A": 1627759402, + "08N/02AE": 1627759456, + "06P/02AE": 1627759488, + "24H/01A": 1627759492, + "05O/02A": 7556914544, + "02Q/02AE": 8235958464, + "03J/04A": 1627759522, + "03J/05A": 1627759524, + "03I/04A": 12303382358, + "06P/01A": 1627759552, + "08L/01A": 1627759554, + "03H/01A": 1627759560, + "17C/06A": 7796342256, + "19O/01A": 1627743354, + "06M/01A": 1627743406, + "24M/06A": 1627743418, + "24M/07A": 1627743416, + "24M/08A": 7554862818, + "12J/01A": 1627743426, + "03J/02AE": 1627743422, + "02H/01A": 1627743428, + "03J/03A": 1627743430, + "24J/01A": 1627743440, + "06K/05A": 1627743432, + "30G/02A": 1627743460, + "07P/01A": 1627743468, + "04P/01A": 1627743482, + "06O/09A": 7554777518, + "30L/02A": 1627743538, + "14I/01A": 1627743586, + "20O/01A": 1627743648, + "10M/01A": 1627743662, + "07I/01A": 1627743682, + "16G/03A": 7557137960, + "21J/01A": 1627752100, + "26M/01A": 1627752188, + "06O/10A": 7554829602, + "16K/02A": 1627758658, + "30G/01A": 1627758670, + "11L/01A": 1627758738, + "19J/01A": 1627758764, + "27H/02AE": 1627758830, + "22K/01A": 1627758834, + "16I/02A": 1627758876, + "30G/11AE": 3507536920, + "06N/02AE": 1627758894, + "06O/01A": 1627758952, + "05S/01A": 1627758968, + "13L/02A": 1627758972, + "07O/02A": 1627758976, + "16L/01AE": 1627758980, + "09H/06A": 7554777512, + "26I/01A": 1627759368, + "12O/02A": 1627759374, + "06O/02A": 1627759380, + "06K/01A": 1627759446, + "07H/01A": 1627759468, + "03G/01A": 1627759476, + "11L/02A": 1627759502, + "06M/06A": 9321904688, + "29M/03H": 1627743398, + "23F/01H": 1627743394, + "23I/02H": 1627743396, + "17C/01H": 1627743400, + "17I/01H": 1627743402, + "14H/02H": 1627743404, + "11H/01H": 1627743408, + "18F/02H": 1627743410, + "17G/02H": 1627743414, + "15K/01H": 1627743412, + "03J/01H": 1627743424, + "03J/06H": 1627743420, + "08H/05H": 1701658505, + "08H/01H": 1627743434, + "17I/02H": 1627743436, + "24J/01H": 1627743438, + "31F/04H": 1627743442, + "06I/01H": 1627743444, + "06I/04H": 1627743446, + "02I/01H": 1627743448, + "24L/01H": 1627743450, + "11J/01H": 1627743452, + "09F/03H": 1627743456, + "25M/01H": 1627743462, + "24O/01H": 1627743464, + "07F/04H": 1627743466, + "03D/01H": 1627743470, + "30L/04H": 1627743474, + "21A/06H": 10065708580, + "07F/02H": 1627743472, + "26K/02H": 1627743476, + "26I/01H": 1627743478, + "05Q/01H": 1627743480, + "17F/04H": 1627743484, + "13O/02A": 1627743362, + "27L/02A": 1627743364, + "04H/05A": 1627743358, + "04H/02A": 1627743454, + "04J/09A": 11029759146, + "20I/01A": 1627758678, + "05E/02A": 1627743376, + "09H/05A": 1627743356, + "15E/05A": 1627743360, + "25P/01A": 1627743366, + "20H/01A": 1627743368, + "25L/01A": 1627758944, + "12G/01AE": 1627743374, + "25E/02H": 1627743486, + "07K/02H": 1627743488, + "06G/01H": 1627743490, + "24M/01H": 1627743492, + "07P/01H": 1627743494, + "04E/03H": 1627743500, + "04F/02H": 1627743502, + "03H/01H": 1627743504, + "12L/01H": 1627743506, + "17G/05H": 1627743508, + "14H/03H": 1627743512, + "14H/04H": 1627743514, + "03J/04H": 1627743528, + "14I/02H": 1627743516, + "05S/01H": 1627743530, + "30G/10H": 1627743520, + "30G/09H": 1627743522, + "02H/02H": 1627743524, + "30G/04H": 1627743532, + "17N/01H": 1627743536, + "30L/03H": 1627743540, + "30L/01H": 1627743542, + "06S/02H": 1627743546, + "20E/01H": 1627743550, + "31E/01H": 1627743552, + "31K/03H": 1627743556, + "03L/01H": 1627743558, + "14H/01H": 1627743560, + "30E/02H": 1627743566, + "17F/01H": 1627743576, + "25N/01H": 1627743578, + "20I/03H": 1627743580, + "04J/02H": 1627743582, + "04J/07H": 1627743584, + "09I/05H": 1695334936, + "07I/05H": 1627743592, + "07I/04H": 1627743590, + "07I/01H": 1627743616, + "20O/03H": 1627743650, + "19D/03H": 1627743656, + "07F/05H": 1627743654, + "10J/01H": 1627743658, + "10M/07H": 4928135292, + "10M/06H": 1627743660, + "19F/01H": 1627743664, + "12H/04H": 1627743670, + "07H/03H": 1627743672, + "05G/02H": 1627743676, + "07I/02H": 1627743680, + "28K/03H": 1627743688, + "30G/07H": 1627743698, + "01H/03H": 1627743706, + "12M/01H": 1627743716, + "06M/05H": 1627743784, + "06M/01H": 1627743730, + "10P/02H": 1627744042, + "10P/01H": 1627743970, + "08J/02H": 1627744270, + "08J/01H": 1627744152, + "02E/02H": 1627744404, + "09M/01H": 1627744494, + "04J/03H": 1627744618, + "30E/01H": 1627744712, + "17G/08H": 1627744828, + "03M/01H": 1627744996, + "20B/02H": 1627745096, + "12J/02H": 1627744920, + "08O/03H": 1627745264, + "08O/02H": 1627745200, + "31J/01H": 1627751868, + "21A/05H": 1627751870, + "23E/02H": 1627751872, + "17G/01H": 1627751874, + "28F/01H": 1627751878, + "15E/04H": 1627751882, + "31H/01H": 1627751884, + "18L/01H": 1627751886, + "03H/04H": 1627751894, + "07G/01H": 1627751900, + "04J/04H": 1627751922, + "03L/04H": 8259755350, + "03L/02H": 1627751948, + "30L/02H": 1627751978, + "10H/01H": 1627752042, + "31F/02H": 1627752088, + "20M/01H": 1627752122, + "10F/01H": 1627752130, + "27I/01H": 1627752142, + "07H/01H": 1627752166, + "06K/05H": 1627752302, + "06K/01H": 1627752254, + "07J/01H": 1627752204, + "26G/01H": 1627752328, + "08P/03H": 1627752390, + "08P/01H": 1627752346, + "07H/02H": 1627752420, + "08Q/02H": 1627752674, + "08Q/01H": 1627752468, + "16G/02H": 1627752796, + "19D/02H": 1627752886, + "04E/01H": 1627752978, + "21B/02H": 1627753084, + "11I/01H": 1627758610, + "16D/01H": 1627758614, + "06G/04H": 1627758612, + "19K/01H": 1627758616, + "16K/03H": 1627758618, + "23I/01H": 1627758620, + "02G/02H": 8770661530, + "15E/06H": 9087187588, + "04E/06H": 1627758626, + "03F/01H": 1627758628, + "30G/05H": 1627758634, + "04J/01H": 1627758630, + "15K/02H": 1695334942, + "14D/01H": 1627758636, + "01G/03H": 1627758640, + "01G/02H": 1627758638, + "30H/02H": 1627758642, + "16L/01H": 1627758644, + "13E/03H": 1627758646, + "07F/03H": 1627758648, + "16H/01H": 1627758650, + "06M/02H": 1627758652, + "08H/04H": 1627758656, + "08H/02H": 1627758654, + "07F/01H": 1627758662, + "06I/03H": 1627758664, + "12I/01H": 1627758666, + "16G/01H": 1627758606, + "13H/01H": 1627758604, + "17C/05H": 1627758674, + "20I/02H": 1627743370, + "04H/01H": 1627758680, + "13H/04H": 1627758682, + "03Q/01H": 1627758684, + "21L/01H": 1627758690, + "25K/01H": 1627758688, + "22G/02H": 1627758692, + "24G/01H": 1627758694, + "03L/03AE": 1701658501, + "03O/01AE": 1627758724, + "08J/01AE": 1627758700, + "10K/02AE": 1627758702, + "03P/01AE": 1627758704, + "07J/02AE": 1627758706, + "09H/02AE": 1627758710, + "12H/02AE": 1627758712, + "08J/03AE": 1627758714, + "05G/01AE": 1627758716, + "08J/02AE": 1627758718, + "07H/02AE": 1627758726, + "09I/01AE": 1627758696, + "04K/03AE": 2602492446, + "09H/01AE": 1627758698, + "09G/01AE": 1627758708, + "06K/01AE": 1627758720, + "10H/03AE": 4240009782, + "06K/02AE": 1627758722, + "21I/01H": 1627758728, + "14N/01H": 1627758732, + "21A/02H": 1627759318, + "10M/04H": 1627758734, + "21B/03H": 1627758740, + "15E/01H": 1627758744, + "06F/01H": 1627758742, + "27L/04H": 1627758746, + "13H/03H": 1627758748, + "09J/01H": 1627758754, + "11L/02H": 1627758760, + "11L/01H": 1627758758, + "04E/04H": 1627758766, + "18G/02H": 1627758768, + "01F/03H": 1627758770, + "12O/01H": 1627758772, + "25E/01H": 1627758776, + "21B/01H": 1627758778, + "01G/01H": 1627758780, + "13K/01H": 1627758782, + "05T/01H": 1627743526, + "21O/02H": 1627758794, + "04J/06H": 1627758796, + "25G/03H": 1627758798, + "07L/04H": 1627758808, + "07L/01H": 1627758806, + "20O/01H": 1627758810, + "25G/02H": 1627758790, + "16H/02H": 1627758792, + "27H/01H": 1627758800, + "21J/01H": 1627758802, + "18I/01H": 1627758804, + "10K/04H": 1627758812, + "19M/01H": 1627758814, + "24M/03H": 1627758820, + "20I/01H": 1627758824, + "26K/01H": 1627758818, + "27J/01H": 1627758840, + "27H/02H": 1627758848, + "21O/01H": 1627758852, + "24M/02H": 1627758822, + "29L/01H": 1627758828, + "30G/01H": 1627758836, + "19N/01H": 1627758838, + "14D/03H": 1627758842, + "24L/02H": 1627758844, + "12G/06H": 1627758850, + "12E/03H": 1627758854, + "27G/01H": 1627758856, + "19E/02H": 1627758858, + "17F/06H": 1627758862, + "18E/05H": 1627758864, + "07I/03H": 1627758866, + "05M/01H": 1627758868, + "25P/02H": 1627758870, + "26H/01H": 1627758872, + "10K/08H": 1627758880, + "10K/03H": 1627758878, + "28J/01H": 1627758882, + "16K/05H": 1627758886, + "29E/01H": 1627758892, + "30M/05H": 1627758896, + "30M/04H": 1627758898, + "30M/01H": 1627758900, + "30M/02H": 1627758902, + "30E/05H": 1627758890, + "24I/01H": 1627758910, + "28K/02H": 1627758912, + "17E/01H": 1627758914, + "04G/04H": 1627758918, + "11M/03H": 1627758922, + "11M/01H": 1627758920, + "04K/01H": 1627758926, + "03J/03H": 1627758930, + "30G/02H": 1627758932, + "03E/01H": 1627758934, + "20I/04H": 1627758938, + "09H/01H": 1627758940, + "25L/01H": 1627758942, + "28G/02H": 1627758946, + "19C/01H": 1627758950, + "04F/01H": 1627758958, + "06G/03H": 1627758960, + "30F/01H": 1627758962, + "17F/05H": 1627758964, + "09G/02H": 1627758966, + "06L/01H": 1627758970, + "07O/01H": 1627758974, + "09H/02H": 1627758978, + "28L/03H": 7633043532, + "28L/04H": 11791068834, + "22C/02H": 1627758990, + "19C/03H": 1627758992, + "19N/02H": 1627758994, + "26G/04H": 1627758996, + "26G/05H": 1627758998, + "18F/04H": 1627759000, + "22C/01H": 1627759002, + "10G/01H": 1627759004, + "05E/03H": 1627759006, + "12E/01H": 1627759008, + "05Q/03H": 1627759010, + "09I/06H": 10080899844, + "11H/03H": 1627758986, + "14D/02H": 1627759012, + "18E/06H": 1627759014, + "19C/02H": 1627759018, + "07H/04H": 1627759020, + "04G/01H": 1627759024, + "04G/07H": 1627759022, + "05G/01H": 1627759026, + "20H/02H": 1627759028, + "12G/02H": 1627759030, + "12G/09H": 11204879762, + "14I/01H": 1627759032, + "19D/06H": 1627759034, + "03G/05H": 1627759036, + "12G/03H": 1627759040, + "13H/02H": 1627759038, + "20C/01H": 1627759042, + "06I/02H": 1627759044, + "21F/01H": 1627759046, + "25H/01H": 1627759048, + "20C/03H": 1627759050, + "13E/04H": 1627759052, + "22G/03H": 1627759054, + "02P/01H": 1627759058, + "13F/02H": 1627759056, + "04J/05H": 1627759060, + "17G/07H": 1627759062, + "22C/03H": 1627759064, + "12J/01H": 1627759066, + "12G/08H": 1627759068, + "20F/02H": 1627759070, + "19D/05H": 1627759072, + "02P/02H": 1627758788, + "22D/01H": 1627759074, + "03G/02H": 1627759016, + "13I/02H": 11204877412, + "17H/03H": 1627758984, + "13J/03H": 11204877406, + "03F/02H": 1627759116, + "03F/03H": 1627759118, + "03G/01H": 1627759232, + "11I/07H": 1627759076, + "13J/02H": 11204877400, + "10K/06H": 1627759078, + "05J/01H": 1627759080, + "20G/01H": 1627759082, + "10K/02H": 1627759084, + "10N/01H": 1627759086, + "04E/02H": 1627759088, + "21K/01H": 1627759090, + "09O/03H": 1627759094, + "09O/02H": 1627759092, + "18E/01H": 1627759096, + "07K/03H": 1627759100, + "04O/02H": 1627759102, + "13I/01H": 1627759098, + "11K/01H": 1627759106, + "10L/01H": 1627759108, + "05E/01H": 1627759110, + "21B/05H": 1627759112, + "04N/02H": 1627759114, + "21A/01H": 1627759120, + "02F/01H": 1627759122, + "12N/01H": 1627759124, + "30G/08H": 1627759126, + "15E/03H": 1627759128, + "09F/01H": 1627759130, + "21B/06H": 1627759132, + "10M/05H": 1627759134, + "13F/04H": 1627759136, + "06F/02H": 1627759138, + "23M/01H": 1627759140, + "12H/03H": 1627759142, + "19E/03H": 1627759144, + "14N/02H": 1627759146, + "17F/02H": 1627759148, + "10M/01H": 1627759150, + "19D/04H": 1627759154, + "17L/01H": 1627759156, + "04O/01H": 1627759158, + "12M/02H": 1627759160, + "12H/02H": 1627759162, + "30E/04H": 1627759164, + "10G/04H": 1627759166, + "04R/01H": 1627759168, + "21C/01H": 1627759170, + "21A/03H": 1627759172, + "22G/01H": 1627759174, + "12G/05H": 1627759176, + "15E/02H": 1627759178, + "09I/03H": 1627759180, + "04G/02H": 1627759182, + "19C/04H": 1627759184, + "10K/05H": 1627759186, + "12E/02H": 1627759190, + "12F/01H": 1627759192, + "26L/01H": 1627759194, + "02Q/01H": 1627759196, + "10G/05H": 1627759198, + "05Q/04H": 1627759202, + "05Q/02H": 1627759200, + "16F/01H": 1627759204, + "10F/02H": 1627759206, + "21C/02H": 1627759208, + "26K/03H": 1627759210, + "17F/03H": 1627759212, + "03H/05H": 1627759214, + "31H/02H": 1627759218, + "13F/01H": 1627759216, + "06O/02H": 1627759220, + "12G/04H": 1627759222, + "10K/01H": 1627759224, + "11I/03H": 1627759228, + "11I/02H": 1627759226, + "13E/01H": 1627759230, + "18E/02H": 1627759234, + "20E/02H": 1627759236, + "13G/01H": 11204877430, + "26F/02H": 1627759238, + "10F/03H": 7927143702, + "03H/02H": 1627759242, + "11I/06H": 1627759240, + "30K/01H": 10682227146, + "25G/04H": 1627759244, + "09G/01H": 1627759246, + "04N/01H": 1627759248, + "11M/02H": 1627759250, + "06P/01H": 1627759252, + "13E/02H": 1627759254, + "18K/01H": 1627759256, + "04O/04H": 1627759260, + "04O/03H": 1627759258, + "09I/02H": 1627759262, + "20C/02H": 1627759264, + "10G/02H": 1627758988, + "17C/04H": 1627759152, + "02G/01H": 1627759266, + "09I/04H": 1627758982, + "20D/02H": 1627759268, + "25O/01H": 1627759270, + "12H/01H": 1627759272, + "19E/04H": 1627759278, + "19E/01H": 1627759274, + "18F/01H": 1627759276, + "12F/04H": 1627759280, + "11I/05H": 1627759282, + "12G/01H": 1627759284, + "12F/02H": 1627759286, + "04G/05H": 1627759288, + "16K/02H": 1627759294, + "17G/03H": 1627759298, + "27L/01H": 1627759300, + "31L/01H": 10682227148, + "11H/04H": 1627759308, + "07L/03H": 1627759310, + "17G/06H": 1627759306, + "21A/04H": 1627759304, + "06K/02H": 1627759312, + "06O/08H": 1627759316, + "06O/03H": 1627759314, + "21A/07H": 10065708582, + "08L/04H": 1627759322, + "08L/01H": 1627759320, + "02O/01H": 1627759324, + "03G/06H": 8202036962, + "03G/03H": 1627759326, + "17M/01H": 1627759332, + "19O/01H": 1627759334, + "04G/06H": 1627759336, + "03N/01H": 1627759338, + "09J/02H": 1627759344, + "03M/05H": 1627759346, + "09H/03H": 1627759350, + "10G/03H": 1627759352, + "17D/01H": 1627759354, + "07G/03H": 1627759356, + "27L/05H": 1627759362, + "27L/03H": 1627759364, + "15O/01H": 1627759366, + "19B/02H": 1627759370, + "07K/04H": 2443345822, + "07K/01H": 1627759342, + "11O/01H": 1627759372, + "25N/02H": 10018589836, + "03I/02H": 1627759376, + "28G/01H": 1627759386, + "06O/05H": 1627759388, + "17H/01H": 1627759392, + "25G/01H": 1627759394, + "05K/01H": 1627759398, + "29G/01H": 1627759412, + "07L/02H": 1627759414, + "12I/02H": 1627759416, + "01G/04H": 1627759418, + "15P/02H": 1627759422, + "15P/01H": 1627759420, + "05S/02H": 1627759424, + "21B/04H": 1627759426, + "06O/06H": 1627759428, + "09G/03H": 1627759432, + "11I/09H": 1627759438, + "31K/02H": 1627759440, + "11I/10H": 1693384198, + "11I/08H": 1627759442, + "17B/01H": 1627759444, + "13F/05H": 1627759448, + "24H/01H": 1627759400, + "10H/02H": 1627759404, + "29G/02H": 3158125162, + "04S/02H": 1627759408, + "24G/02H": 1627759410, + "17G/04H": 1627759450, + "07G/02H": 1627759454, + "29M/01H": 1627759458, + "02H/01H": 1627759460, + "03I/01H": 1627759464, + "03I/03H": 1627759462, + "17C/02H": 1627759466, + "12G/07H": 1627759472, + "24H/03H": 1627759470, + "17H/02H": 1627759478, + "10M/02H": 1627759480, + "16C/01H": 1627759482, + "24H/02H": 1627759506, + "30H/03H": 1627759486, + "18G/03H": 1627759490, + "11I/04H": 1627759498, + "19F/02H": 1627759500, + "09O/01H": 1627759484, + "03K/01H": 1627759494, + "06L/02H": 1627759496, + "08O/04H": 1693384202, + "08O/01H": 1627759504, + "06M/03H": 1627759508, + "28L/02H": 1627759514, + "12F/03H": 1627759516, + "20L/01H": 1627759518, + "03J/05H": 1627759520, + "23K/01H": 1627759526, + "10M/03H": 1627759528, + "30F/02H": 1627759530, + "15E/07H": 9087187590, + "04K/02H": 1627759532, + "03G/04H": 1627759536, + "09L/01H": 1627759538, + "10L/02H": 1627759540, + "20D/01H": 1627759542, + "13F/03H": 1627759544, + "11G/01H": 1627759546, + "16K/01H": 1627759548, + "08L/02H": 1627759550, + "03M/04H": 1627759556, + "05N/01H": 1627759558, + "03H/03H": 1627759562, + "04R/02H": 1627759564, + "03P/01H": 1627759566, + "05H/01H": 1627759568, + "05H/02H": 1627759570, + "09K/01H": 1627759572, + "19O/02H": 1627759574, + "22E/01H": 1627759576, + "23M/02H": 1627743390, + "17C/03H": 1627758888, + "18E/04H": 1627758916, +} + +# --- SNIRH PARAMETER MAP (Portuguese + English) ---------------------------- +SNIRH_PARAMS = { + 1850: (constants.DISCHARGE_DAILY_MEAN, "Caudal médio diário"), + 1845: (constants.STAGE_DAILY_MEAN, "Nível médio diário"), +} + + +class PortugalFetcher(base.RiverDataFetcher): + """Fetches river gauge data from Portugal's SNIRH.""" + + BASE_URL = "https://snirh.apambiente.pt/snirh/_dadosbase/site/janela_verdados.php" + + @staticmethod + def get_cached_metadata() -> pd.DataFrame: + """Retrieves a DataFrame of available Portuguese gauge IDs and metadata.""" + return utils.load_cached_metadata_csv("portugal") + + @staticmethod + def get_available_variables() -> tuple[str, ...]: + return tuple(val[0] for val in SNIRH_PARAMS.values()) + + def _get_param_id(self, variable: str) -> Optional[int]: + for param_id, (var_name, _) in SNIRH_PARAMS.items(): + if var_name == variable: + return param_id + return None + + def _download_data(self, gauge_id: str, variable: str, start_date: str, end_date: str) -> Optional[pd.DataFrame]: + """Downloads and parses the data table from SNIRH.""" + if gauge_id not in SITE_MAP: + logger.error(f"Gauge ID {gauge_id} not found in SITE_MAP.") + return None + site_id = SITE_MAP[gauge_id] + + param_id = self._get_param_id(variable) + if param_id is None: + raise ValueError(f"Unsupported variable: {variable}") + + _, param_en = SNIRH_PARAMS[param_id] + + # The API seems to return all data regardless of tmin/tmax, so we fetch all and filter later. + tmin = "01/01/1900" + tmax = datetime.now().strftime("%d/%m/%Y") + + url = f"{self.BASE_URL}?sites={site_id}&pars={param_id}&tmin={tmin}&tmax={tmax}" + + headers = { + "User-Agent": "Mozilla/5.0", + "Referer": "https://snirh.apambiente.pt/", + } + + logger.info(f"Fetching {variable} for site {gauge_id} ({site_id}) from SNIRH") + try: + s = utils.requests_retry_session() + r = s.get(url, headers=headers) + r.raise_for_status() + tables = pd.read_html(StringIO(r.text)) + except Exception as e: + logger.error(f"Failed to retrieve data for {gauge_id}, param {param_id}: {e}") + return None + + logger.info(f"Found {len(tables)} tables for {gauge_id}, param {param_id}.") + if len(tables) <= 4: + logger.warning(f"No data table found for {gauge_id}, param {param_id} (expected more than 4 tables).") + return None + + df = tables[4].copy().dropna(how="all").reset_index(drop=True) + logger.debug(f"Table 4 head:\n{df.head()}") + + # Detect header pattern + if len(df) >= 2 and "Data" in str(df.iloc[0, 0]) and "Data" in str(df.iloc[1, 0]): + df = df.iloc[2:].copy() + df.columns = [constants.TIME_INDEX, variable] + elif "Data" in str(df.iloc[0, 0]): + df.columns = [html.unescape(str(c)).strip() for c in df.iloc[0]] + df = df.iloc[1:].copy() + df.columns = [constants.TIME_INDEX, variable] + else: + df.columns = [constants.TIME_INDEX, variable] + + # Clean and format + df[constants.TIME_INDEX] = pd.to_datetime(df[constants.TIME_INDEX], errors="coerce", format="%d/%m/%Y %H:%M") + df[variable] = pd.to_numeric(df[variable], errors="coerce") + + return df + + def _parse_data(self, gauge_id: str, raw_data: Optional[pd.DataFrame], variable: str) -> pd.DataFrame: + """Parses the raw DataFrame.""" + if raw_data is None or raw_data.empty: + return pd.DataFrame(columns=[constants.TIME_INDEX, variable]) + + return raw_data.set_index(constants.TIME_INDEX) + + def get_data( + self, + gauge_id: str, + variable: str, + start_date: Optional[str] = None, + end_date: Optional[str] = None, + ) -> pd.DataFrame: + """Fetches and parses Portuguese river gauge data.""" + start_date = utils.format_start_date(start_date) + end_date = utils.format_end_date(end_date) + + if variable not in self.get_available_variables(): + raise ValueError(f"Unsupported variable: {variable}") + + try: + df = self._download_data(gauge_id, variable, start_date, end_date) + if df is None or df.empty: + return pd.DataFrame(columns=[constants.TIME_INDEX, variable]) + + df = self._parse_data(gauge_id, df, variable) + + # Filter by date range + start_date_dt = pd.to_datetime(start_date) + end_date_dt = pd.to_datetime(end_date) + df = df[(df.index >= start_date_dt) & (df.index <= end_date_dt)] + except Exception as e: + logger.error(f"Failed to get data for site {gauge_id}, variable {variable}: {e}") + return pd.DataFrame(columns=[constants.TIME_INDEX, variable]) + return df diff --git a/tests/test_data/portugal_19B01H_stage.html b/tests/test_data/portugal_19B01H_stage.html new file mode 100644 index 0000000..f017d21 --- /dev/null +++ b/tests/test_data/portugal_19B01H_stage.html @@ -0,0 +1,23676 @@ + + + + + + + +SNIRH > Dados de Base + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data
Nível médio diário (m)
16/02/2002 00:00 + 0.36
17/02/2002 00:00 + 0.35
18/02/2002 00:00 + 0.35
19/02/2002 00:00 + 0.35
20/02/2002 00:00 + 0.35
21/02/2002 00:00 + 0.35
22/02/2002 00:00 + 0.35
23/02/2002 00:00 + 0.35
24/02/2002 00:00 + 0.34
25/02/2002 00:00 + 0.34
26/02/2002 00:00 + 0.34
27/02/2002 00:00 + 0.34
28/02/2002 00:00 + 0.38
01/03/2002 00:00 + 0.65
02/03/2002 00:00 + 0.46
03/03/2002 00:00 + 0.40
04/03/2002 00:00 + 0.45
05/03/2002 00:00 + 0.39
06/03/2002 00:00 + 0.37
07/03/2002 00:00 + 0.36
08/03/2002 00:00 + 0.35
09/03/2002 00:00 + 0.35
10/03/2002 00:00 + 0.35
11/03/2002 00:00 + 0.37
12/03/2002 00:00 + 0.55
13/03/2002 00:00 + 0.72
14/03/2002 00:00 + 0.85
15/03/2002 00:00 + 0.79
16/03/2002 00:00 + 0.91
17/03/2002 00:00 + 0.92
18/03/2002 00:00 + 0.80
19/03/2002 00:00 + 0.60
20/03/2002 00:00 + 0.54
21/03/2002 00:00 + 0.49
22/03/2002 00:00 + 0.46
23/03/2002 00:00 + 0.44
24/03/2002 00:00 + 0.43
25/03/2002 00:00 + 0.42
26/03/2002 00:00 + 0.41
27/03/2002 00:00 + 0.42
28/03/2002 00:00 + 0.41
29/03/2002 00:00 + 0.40
30/03/2002 00:00 + 0.38
31/03/2002 00:00 + 0.38
01/04/2002 00:00 + 0.37
02/04/2002 00:00 + 0.37
03/04/2002 00:00 + 0.42
04/04/2002 00:00 + 0.43
05/04/2002 00:00 + 0.47
06/04/2002 00:00 + 0.62
07/04/2002 00:00 + 0.62
08/04/2002 00:00 + 0.51
09/04/2002 00:00 + 0.51
10/04/2002 00:00 + 0.60
11/04/2002 00:00 + 0.53
12/04/2002 00:00 + 0.46
13/04/2002 00:00 + 0.45
14/04/2002 00:00 + 0.40
15/04/2002 00:00 + 0.38
16/04/2002 00:00 + 0.38
17/04/2002 00:00 + 0.37
18/04/2002 00:00 + 0.37
19/04/2002 00:00 + 0.36
20/04/2002 00:00 + 0.36
21/04/2002 00:00 + 0.34
22/04/2002 00:00 + 0.33
23/04/2002 00:00 + 0.33
24/04/2002 00:00 + 0.33
25/04/2002 00:00 + 0.32
26/04/2002 00:00 + 0.31
27/04/2002 00:00 + 0.32
28/04/2002 00:00 + 0.31
29/04/2002 00:00 + 0.30
30/04/2002 00:00 + 0.30
01/05/2002 00:00 + 0.30
02/05/2002 00:00 + 0.30
03/05/2002 00:00 + 0.31
04/05/2002 00:00 + 0.30
05/05/2002 00:00 + 0.30
06/05/2002 00:00 + 0.29
07/05/2002 00:00 + 0.30
08/05/2002 00:00 + 0.31
09/05/2002 00:00 + 0.31
10/05/2002 00:00 + 0.31
11/05/2002 00:00 + 0.30
12/05/2002 00:00 + 0.29
13/05/2002 00:00 + 0.29
14/05/2002 00:00 + 0.30
15/05/2002 00:00 + 0.30
16/05/2002 00:00 + 0.29
17/05/2002 00:00 + 0.34
18/05/2002 00:00 + 0.31
19/05/2002 00:00 + 0.30
20/05/2002 00:00 + 0.29
21/05/2002 00:00 + 0.29
22/05/2002 00:00 + 0.31
23/05/2002 00:00 + 0.30
24/05/2002 00:00 + 0.29
25/05/2002 00:00 + 0.29
26/05/2002 00:00 + 0.28
27/05/2002 00:00 + 0.28
28/05/2002 00:00 + 0.28
29/05/2002 00:00 + 0.28
30/05/2002 00:00 + 0.29
31/05/2002 00:00 + 0.28
01/06/2002 00:00 + 0.28
02/06/2002 00:00 + 0.28
03/06/2002 00:00 + 0.27
04/06/2002 00:00 + 0.29
05/06/2002 00:00 + 0.32
06/06/2002 00:00 + 0.31
07/06/2002 00:00 + 0.32
08/06/2002 00:00 + 0.34
09/06/2002 00:00 + 0.31
10/06/2002 00:00 + 0.29
11/06/2002 00:00 + 0.28
12/06/2002 00:00 + 0.28
13/06/2002 00:00 + 0.28
14/06/2002 00:00 + 0.28
15/06/2002 00:00 + 0.28
16/06/2002 00:00 + 0.27
17/06/2002 00:00 + 0.26
18/06/2002 00:00 + 0.27
19/06/2002 00:00 + 0.27
20/06/2002 00:00 + 0.27
21/06/2002 00:00 + 0.28
22/06/2002 00:00 + 0.28
23/06/2002 00:00 + 0.27
24/06/2002 00:00 + 0.25
25/06/2002 00:00 + 0.24
26/06/2002 00:00 + 0.25
27/06/2002 00:00 + 0.26
28/06/2002 00:00 + 0.28
29/06/2002 00:00 + 0.27
30/06/2002 00:00 + 0.27
01/07/2002 00:00 + 0.25
02/07/2002 00:00 + 0.24
03/07/2002 00:00 + 0.25
04/07/2002 00:00 + 0.26
05/07/2002 00:00 + 0.25
06/07/2002 00:00 + 0.27
07/07/2002 00:00 + 0.28
08/07/2002 00:00 + 0.26
09/07/2002 00:00 + 0.29
10/07/2002 00:00 + 0.28
11/07/2002 00:00 + 0.29
12/07/2002 00:00 + 0.28
13/07/2002 00:00 + 0.28
14/07/2002 00:00 + 0.28
15/07/2002 00:00 + 0.24
16/07/2002 00:00 + 0.23
17/07/2002 00:00 + 0.25
18/07/2002 00:00 + 0.24
19/07/2002 00:00 + 0.24
20/07/2002 00:00 + 0.25
21/07/2002 00:00 + 0.24
22/07/2002 00:00 + 0.26
23/07/2002 00:00 + 0.26
24/07/2002 00:00 + 0.27
25/07/2002 00:00 + 0.26
26/07/2002 00:00 + 0.26
27/07/2002 00:00 + 0.27
28/07/2002 00:00 + 0.25
29/07/2002 00:00 + 0.24
30/07/2002 00:00 + 0.24
31/07/2002 00:00 + 0.26
01/08/2002 00:00 + 0.25
02/08/2002 00:00 + 0.25
03/08/2002 00:00 + 0.26
04/08/2002 00:00 + 0.27
05/08/2002 00:00 + 0.25
06/08/2002 00:00 + 0.24
07/08/2002 00:00 + 0.24
08/08/2002 00:00 + 0.24
09/08/2002 00:00 + 0.24
10/08/2002 00:00 + 0.25
11/08/2002 00:00 + 0.27
12/08/2002 00:00 + 0.26
13/08/2002 00:00 + 0.24
14/08/2002 00:00 + 0.23
15/08/2002 00:00 + 0.26
16/08/2002 00:00 + 0.26
17/08/2002 00:00 + 0.25
18/08/2002 00:00 + 0.28
19/08/2002 00:00 + 0.26
20/08/2002 00:00 + 0.25
21/08/2002 00:00 + 0.24
22/08/2002 00:00 + 0.22
23/08/2002 00:00 + 0.25
24/08/2002 00:00 + 0.27
25/08/2002 00:00 + 0.27
26/08/2002 00:00 + 0.27
27/08/2002 00:00 + 0.25
28/08/2002 00:00 + 0.24
29/08/2002 00:00 + 0.24
30/08/2002 00:00 + 0.24
31/08/2002 00:00 + 0.26
01/09/2002 00:00 + 0.26
02/09/2002 00:00 + 0.24
03/09/2002 00:00 + 0.25
04/09/2002 00:00 + 0.26
05/09/2002 00:00 + 0.28
06/09/2002 00:00 + 0.28
07/09/2002 00:00 + 0.29
08/09/2002 00:00 + 0.41
09/09/2002 00:00 + 0.38
10/09/2002 00:00 + 0.31
11/09/2002 00:00 + 0.30
12/09/2002 00:00 + 0.30
13/09/2002 00:00 + 0.30
14/09/2002 00:00 + 0.36
15/09/2002 00:00 + 0.56
16/09/2002 00:00 + 0.48
17/09/2002 00:00 + 0.53
18/09/2002 00:00 + 1.10
19/09/2002 00:00 + 0.51
20/09/2002 00:00 + 0.41
21/09/2002 00:00 + 0.44
22/09/2002 00:00 + 0.54
23/09/2002 00:00 + 0.42
24/09/2002 00:00 + 0.36
25/09/2002 00:00 + 0.41
26/09/2002 00:00 + 0.45
27/09/2002 00:00 + 0.36
28/09/2002 00:00 + 0.34
29/09/2002 00:00 + 0.33
30/09/2002 00:00 + 0.35
01/10/2002 00:00 + 0.87
02/10/2002 00:00 + 0.48
03/10/2002 00:00 + 0.37
04/10/2002 00:00 + 0.35
05/10/2002 00:00 + 0.35
06/10/2002 00:00 + 0.54
07/10/2002 00:00 + 0.43
08/10/2002 00:00 + 0.37
09/10/2002 00:00 + 0.39
10/10/2002 00:00 + 0.40
11/10/2002 00:00 + 0.38
12/10/2002 00:00 + 0.39
13/10/2002 00:00 + 0.38
14/10/2002 00:00 + 0.34
15/10/2002 00:00 + 0.37
16/10/2002 00:00 + 0.45
17/10/2002 00:00 + 0.52
18/10/2002 00:00 + 0.39
19/10/2002 00:00 + 0.35
20/10/2002 00:00 + 0.48
21/10/2002 00:00 + 0.96
22/10/2002 00:00 + 0.60
23/10/2002 00:00 + 0.51
24/10/2002 00:00 + 0.41
25/10/2002 00:00 + 0.42
26/10/2002 00:00 + 0.38
27/10/2002 00:00 + 0.36
28/10/2002 00:00 + 0.35
29/10/2002 00:00 + 0.37
30/10/2002 00:00 + 0.53
31/10/2002 00:00 + 0.40
01/11/2002 00:00 + 0.38
02/11/2002 00:00 + 0.37
03/11/2002 00:00 + 0.36
04/11/2002 00:00 + 0.35
05/11/2002 00:00 + 0.34
06/11/2002 00:00 + 0.35
07/11/2002 00:00 + 0.34
08/11/2002 00:00 + 0.32
09/11/2002 00:00 + 0.33
10/11/2002 00:00 + 0.32
11/11/2002 00:00 + 0.34
12/11/2002 00:00 + 0.35
13/11/2002 00:00 + 0.74
14/11/2002 00:00 + 1.19
15/11/2002 00:00 + 1.16
16/11/2002 00:00 + 1.36
17/11/2002 00:00 + 0.96
18/11/2002 00:00 + 0.82
19/11/2002 00:00 + 2.19
20/11/2002 00:00 + 1.19
21/11/2002 00:00 + 1.03
22/11/2002 00:00 + 1.56
23/11/2002 00:00 + 1.83
24/11/2002 00:00 + 1.71
25/11/2002 00:00 + 1.12
26/11/2002 00:00 + 0.93
27/11/2002 00:00 + 0.87
28/11/2002 00:00 + 0.87
29/11/2002 00:00 + 0.77
30/11/2002 00:00 + 0.75
01/12/2002 00:00 + 0.72
02/12/2002 00:00 + 0.77
03/12/2002 00:00 + 0.72
04/12/2002 00:00 + 0.73
05/12/2002 00:00 + 0.70
06/12/2002 00:00 + 0.68
07/12/2002 00:00 + 0.67
08/12/2002 00:00 + 0.66
09/12/2002 00:00 + 0.85
10/12/2002 00:00 + 1.20
11/12/2002 00:00 + 0.99
12/12/2002 00:00 + 0.80
13/12/2002 00:00 + 0.81
14/12/2002 00:00 + 1.06
15/12/2002 00:00 + 0.83
16/12/2002 00:00 + 0.80
17/12/2002 00:00 + 1.16
18/12/2002 00:00 + 1.02
19/12/2002 00:00 + 0.94
20/12/2002 00:00 + 0.84
21/12/2002 00:00 + 0.81
22/12/2002 00:00 + 0.79
23/12/2002 00:00 + 0.81
24/12/2002 00:00 + 0.79
25/12/2002 00:00 + 0.94
26/12/2002 00:00 + 0.86
27/12/2002 00:00 + 1.69
28/12/2002 00:00 + 1.18
29/12/2002 00:00 + 0.93
30/12/2002 00:00 + 1.06
31/12/2002 00:00 + 0.92
01/01/2003 00:00 + 0.93
02/01/2003 00:00 + 0.96
03/01/2003 00:00 + 0.94
04/01/2003 00:00 + 0.95
05/01/2003 00:00 + 1.06
06/01/2003 00:00 + 1.16
07/01/2003 00:00 + 1.27
08/01/2003 00:00 + 1.29
13/01/2003 00:00 + 0.85
14/01/2003 00:00 + 0.83
15/01/2003 00:00 + 0.81
16/01/2003 00:00 + 0.79
17/01/2003 00:00 + 0.77
18/01/2003 00:00 + 0.95
19/01/2003 00:00 + 1.50
20/01/2003 00:00 + 1.46
21/01/2003 00:00 + 1.49
22/01/2003 00:00 + 1.28
23/01/2003 00:00 + 1.07
24/01/2003 00:00 + 0.94
25/01/2003 00:00 + 0.90
26/01/2003 00:00 + 0.86
27/01/2003 00:00 + 0.83
28/01/2003 00:00 + 0.83
29/01/2003 00:00 + 0.81
30/01/2003 00:00 + 0.79
31/01/2003 00:00 + 0.79
01/02/2003 00:00 + 0.76
02/02/2003 00:00 + 0.74
03/02/2003 00:00 + 0.74
04/02/2003 00:00 + 0.76
05/02/2003 00:00 + 0.76
06/02/2003 00:00 + 0.74
07/02/2003 00:00 + 0.76
08/02/2003 00:00 + 0.76
09/02/2003 00:00 + 0.72
10/02/2003 00:00 + 0.72
11/02/2003 00:00 + 0.73
12/02/2003 00:00 + 0.75
13/02/2003 00:00 + 0.73
14/02/2003 00:00 + 0.76
15/02/2003 00:00 + 0.74
16/02/2003 00:00 + 0.70
17/02/2003 00:00 + 0.70
18/02/2003 00:00 + 0.82
19/02/2003 00:00 + 1.37
20/02/2003 00:00 + 1.21
21/02/2003 00:00 + 0.95
22/02/2003 00:00 + 1.18
23/02/2003 00:00 + 0.91
24/02/2003 00:00 + 1.01
25/02/2003 00:00 + 1.50
26/02/2003 00:00 + 1.41
27/02/2003 00:00 + 1.22
28/02/2003 00:00 + 0.98
01/03/2003 00:00 + 0.96
02/03/2003 00:00 + 0.94
03/03/2003 00:00 + 0.88
04/03/2003 00:00 + 0.86
05/03/2003 00:00 + 0.83
06/03/2003 00:00 + 0.80
07/03/2003 00:00 + 0.78
08/03/2003 00:00 + 0.77
09/03/2003 00:00 + 0.76
10/03/2003 00:00 + 0.75
11/03/2003 00:00 + 0.74
12/03/2003 00:00 + 0.73
13/03/2003 00:00 + 0.73
14/03/2003 00:00 + 0.73
15/03/2003 00:00 + 0.71
16/03/2003 00:00 + 0.71
17/03/2003 00:00 + 0.71
18/03/2003 00:00 + 0.74
19/03/2003 00:00 + 0.70
20/03/2003 00:00 + 0.69
21/03/2003 00:00 + 0.69
22/03/2003 00:00 + 0.68
23/03/2003 00:00 + 0.68
24/03/2003 00:00 + 0.67
25/03/2003 00:00 + 0.76
26/03/2003 00:00 + 0.70
27/03/2003 00:00 + 0.95
28/03/2003 00:00 + 0.80
29/03/2003 00:00 + 1.11
30/03/2003 00:00 + 1.91
31/03/2003 00:00 + 0.95
13/04/2003 00:00 + 1.33
14/04/2003 00:00 + 1.64
15/04/2003 00:00 + 1.24
16/04/2003 00:00 + 0.94
17/04/2003 00:00 + 0.87
18/04/2003 00:00 + 0.85
19/04/2003 00:00 + 0.83
20/04/2003 00:00 + 0.82
21/04/2003 00:00 + 0.79
22/04/2003 00:00 + 0.85
23/04/2003 00:00 + 0.80
24/04/2003 00:00 + 0.78
25/04/2003 00:00 + 1.28
26/04/2003 00:00 + 1.62
27/04/2003 00:00 + 0.97
28/04/2003 00:00 + 0.92
29/04/2003 00:00 + 0.87
30/04/2003 00:00 + 0.85
01/05/2003 00:00 + 0.83
02/05/2003 00:00 + 0.81
03/05/2003 00:00 + 0.80
04/05/2003 00:00 + 0.79
05/05/2003 00:00 + 0.78
06/05/2003 00:00 + 0.76
07/05/2003 00:00 + 0.76
08/05/2003 00:00 + 0.76
09/05/2003 00:00 + 0.75
10/05/2003 00:00 + 0.75
11/05/2003 00:00 + 0.74
12/05/2003 00:00 + 0.73
13/05/2003 00:00 + 0.74
14/05/2003 00:00 + 0.73
15/05/2003 00:00 + 0.74
16/05/2003 00:00 + 0.74
17/05/2003 00:00 + 0.73
18/05/2003 00:00 + 0.73
19/05/2003 00:00 + 0.73
20/05/2003 00:00 + 0.73
21/05/2003 00:00 + 0.72
22/05/2003 00:00 + 0.72
23/05/2003 00:00 + 0.73
24/05/2003 00:00 + 0.73
25/05/2003 00:00 + 0.71
26/05/2003 00:00 + 0.71
27/05/2003 00:00 + 0.71
28/05/2003 00:00 + 0.71
29/05/2003 00:00 + 0.71
30/05/2003 00:00 + 0.72
31/05/2003 00:00 + 0.72
01/06/2003 00:00 + 0.71
02/06/2003 00:00 + 0.71
03/06/2003 00:00 + 0.72
04/06/2003 00:00 + 0.74
05/06/2003 00:00 + 0.71
06/06/2003 00:00 + 0.70
07/06/2003 00:00 + 0.70
08/06/2003 00:00 + 0.69
09/06/2003 00:00 + 0.68
10/06/2003 00:00 + 0.69
11/06/2003 00:00 + 0.69
12/06/2003 00:00 + 0.70
13/06/2003 00:00 + 0.71
14/06/2003 00:00 + 0.70
15/06/2003 00:00 + 0.70
16/06/2003 00:00 + 0.69
17/06/2003 00:00 + 0.69
18/06/2003 00:00 + 0.69
19/06/2003 00:00 + 0.70
20/06/2003 00:00 + 0.70
21/06/2003 00:00 + 0.71
22/06/2003 00:00 + 0.70
23/06/2003 00:00 + 0.69
24/06/2003 00:00 + 0.67
25/06/2003 00:00 + 0.66
26/06/2003 00:00 + 0.66
27/06/2003 00:00 + 0.66
28/06/2003 00:00 + 0.66
29/06/2003 00:00 + 0.67
30/06/2003 00:00 + 0.69
01/07/2003 00:00 + 0.67
02/07/2003 00:00 + 0.66
03/07/2003 00:00 + 0.65
04/07/2003 00:00 + 0.64
05/07/2003 00:00 + 0.64
06/07/2003 00:00 + 0.64
07/07/2003 00:00 + 0.63
08/07/2003 00:00 + 0.63
09/07/2003 00:00 + 0.63
10/07/2003 00:00 + 0.63
11/07/2003 00:00 + 0.64
12/07/2003 00:00 + 0.65
13/07/2003 00:00 + 0.66
14/07/2003 00:00 + 0.67
15/07/2003 00:00 + 0.70
16/07/2003 00:00 + 0.69
17/07/2003 00:00 + 0.67
18/07/2003 00:00 + 0.66
19/07/2003 00:00 + 0.67
20/07/2003 00:00 + 0.66
21/07/2003 00:00 + 0.65
22/07/2003 00:00 + 0.65
23/07/2003 00:00 + 0.65
24/07/2003 00:00 + 0.66
25/07/2003 00:00 + 0.66
26/07/2003 00:00 + 0.67
27/07/2003 00:00 + 0.66
28/07/2003 00:00 + 0.66
29/07/2003 00:00 + 0.67
30/07/2003 00:00 + 0.67
31/07/2003 00:00 + 0.67
01/08/2003 00:00 + 0.69
02/08/2003 00:00 + 0.69
03/08/2003 00:00 + 0.68
04/08/2003 00:00 + 0.67
05/08/2003 00:00 + 0.67
06/08/2003 00:00 + 0.68
07/08/2003 00:00 + 0.69
08/08/2003 00:00 + 0.70
09/08/2003 00:00 + 0.70
10/08/2003 00:00 + 0.68
11/08/2003 00:00 + 0.68
12/08/2003 00:00 + 0.68
13/08/2003 00:00 + 0.70
14/08/2003 00:00 + 0.70
15/08/2003 00:00 + 0.70
16/08/2003 00:00 + 0.69
17/08/2003 00:00 + 0.68
18/08/2003 00:00 + 0.62
19/08/2003 00:00 + 0.62
20/08/2003 00:00 + 0.63
21/08/2003 00:00 + 0.62
22/08/2003 00:00 + 0.62
23/08/2003 00:00 + 0.62
24/08/2003 00:00 + 0.61
25/08/2003 00:00 + 0.62
26/08/2003 00:00 + 0.60
27/08/2003 00:00 + 0.61
28/08/2003 00:00 + 0.63
29/08/2003 00:00 + 0.63
30/08/2003 00:00 + 0.63
31/08/2003 00:00 + 0.64
01/09/2003 00:00 + 0.64
02/09/2003 00:00 + 0.63
03/09/2003 00:00 + 0.62
04/09/2003 00:00 + 0.63
05/09/2003 00:00 + 0.63
06/09/2003 00:00 + 0.63
07/09/2003 00:00 + 0.62
08/09/2003 00:00 + 0.62
09/09/2003 00:00 + 0.63
10/09/2003 00:00 + 0.62
11/09/2003 00:00 + 0.62
12/09/2003 00:00 + 0.62
13/09/2003 00:00 + 0.60
14/09/2003 00:00 + 0.60
15/09/2003 00:00 + 0.60
16/09/2003 00:00 + 0.60
17/09/2003 00:00 + 0.62
18/09/2003 00:00 + 0.62
19/09/2003 00:00 + 0.62
20/09/2003 00:00 + 0.62
21/09/2003 00:00 + 0.63
22/09/2003 00:00 + 0.63
23/09/2003 00:00 + 0.62
24/09/2003 00:00 + 0.62
25/09/2003 00:00 + 0.61
26/09/2003 00:00 + 0.61
27/09/2003 00:00 + 0.60
28/09/2003 00:00 + 0.61
29/09/2003 00:00 + 0.61
30/09/2003 00:00 + 0.85
01/10/2003 00:00 + 0.76
02/10/2003 00:00 + 0.87
03/10/2003 00:00 + 0.73
04/10/2003 00:00 + 0.64
05/10/2003 00:00 + 0.62
06/10/2003 00:00 + 0.60
07/10/2003 00:00 + 0.59
08/10/2003 00:00 + 0.60
09/10/2003 00:00 + 0.59
10/10/2003 00:00 + 0.59
11/10/2003 00:00 + 0.62
12/10/2003 00:00 + 0.70
13/10/2003 00:00 + 0.63
14/10/2003 00:00 + 0.61
15/10/2003 00:00 + 0.64
16/10/2003 00:00 + 0.72
17/10/2003 00:00 + 0.64
18/10/2003 00:00 + 0.66
19/10/2003 00:00 + 0.74
20/10/2003 00:00 + 0.69
21/10/2003 00:00 + 0.63
22/10/2003 00:00 + 0.62
23/10/2003 00:00 + 0.61
24/10/2003 00:00 + 0.60
25/10/2003 00:00 + 1.11
26/10/2003 00:00 + 0.83
27/10/2003 00:00 + 1.03
28/10/2003 00:00 + 0.80
29/10/2003 00:00 + 1.00
30/10/2003 00:00 + 0.70
31/10/2003 00:00 + 1.41
01/11/2003 00:00 + 0.93
02/11/2003 00:00 + 0.69
03/11/2003 00:00 + 0.63
04/11/2003 00:00 + 0.61
05/11/2003 00:00 + 0.60
06/11/2003 00:00 + 0.59
07/11/2003 00:00 + 0.59
08/11/2003 00:00 + 0.60
09/11/2003 00:00 + 1.34
10/11/2003 00:00 + 1.05
11/11/2003 00:00 + 0.73
12/11/2003 00:00 + 0.65
13/11/2003 00:00 + 0.64
14/11/2003 00:00 + 0.63
15/11/2003 00:00 + 1.41
16/11/2003 00:00 + 1.13
17/11/2003 00:00 + 0.75
18/11/2003 00:00 + 0.68
19/11/2003 00:00 + 0.64
20/11/2003 00:00 + 0.62
21/11/2003 00:00 + 0.74
22/11/2003 00:00 + 2.04
23/11/2003 00:00 + 0.95
24/11/2003 00:00 + 0.80
25/11/2003 00:00 + 0.73
26/11/2003 00:00 + 0.76
27/11/2003 00:00 + 0.96
28/11/2003 00:00 + 0.78
29/11/2003 00:00 + 0.75
30/11/2003 00:00 + 0.88
01/12/2003 00:00 + 1.39
02/12/2003 00:00 + 1.31
03/12/2003 00:00 + 1.28
04/12/2003 00:00 + 1.20
05/12/2003 00:00 + 0.96
06/12/2003 00:00 + 1.31
07/12/2003 00:00 + 1.75
08/12/2003 00:00 + 1.44
09/12/2003 00:00 + 1.93
10/12/2003 00:00 + 1.40
11/12/2003 00:00 + 1.08
12/12/2003 00:00 + 1.00
13/12/2003 00:00 + 0.95
14/12/2003 00:00 + 0.90
15/12/2003 00:00 + 0.88
16/12/2003 00:00 + 0.87
17/12/2003 00:00 + 0.88
18/12/2003 00:00 + 1.02
19/12/2003 00:00 + 0.88
20/12/2003 00:00 + 0.85
21/12/2003 00:00 + 0.82
22/12/2003 00:00 + 0.80
23/12/2003 00:00 + 0.79
24/12/2003 00:00 + 0.77
25/12/2003 00:00 + 0.77
26/12/2003 00:00 + 0.76
27/12/2003 00:00 + 0.77
28/12/2003 00:00 + 0.80
29/12/2003 00:00 + 0.76
30/12/2003 00:00 + 0.76
31/12/2003 00:00 + 0.77
01/01/2004 00:00 + 0.80
02/01/2004 00:00 + 0.81
03/01/2004 00:00 + 0.77
04/01/2004 00:00 + 0.76
05/01/2004 00:00 + 0.75
06/01/2004 00:00 + 0.74
07/01/2004 00:00 + 0.74
08/01/2004 00:00 + 0.76
09/01/2004 00:00 + 0.77
10/01/2004 00:00 + 0.77
11/01/2004 00:00 + 0.77
12/01/2004 00:00 + 0.77
13/01/2004 00:00 + 0.76
14/01/2004 00:00 + 0.76
15/01/2004 00:00 + 0.81
16/01/2004 00:00 + 0.83
17/01/2004 00:00 + 0.77
18/01/2004 00:00 + 0.75
19/01/2004 00:00 + 0.73
20/01/2004 00:00 + 0.73
21/01/2004 00:00 + 0.72
22/01/2004 00:00 + 0.72
23/01/2004 00:00 + 0.72
24/01/2004 00:00 + 0.73
25/01/2004 00:00 + 0.75
26/01/2004 00:00 + 0.77
27/01/2004 00:00 + 1.01
28/01/2004 00:00 + 1.34
29/01/2004 00:00 + 0.91
30/01/2004 00:00 + 1.13
31/01/2004 00:00 + 1.30
01/02/2004 00:00 + 1.10
02/02/2004 00:00 + 0.97
03/02/2004 00:00 + 0.91
04/02/2004 00:00 + 0.87
05/02/2004 00:00 + 0.85
06/02/2004 00:00 + 0.84
07/02/2004 00:00 + 0.83
08/02/2004 00:00 + 0.83
09/02/2004 00:00 + 0.82
10/02/2004 00:00 + 0.82
11/02/2004 00:00 + 0.80
12/02/2004 00:00 + 0.79
13/02/2004 00:00 + 0.79
14/02/2004 00:00 + 0.79
15/02/2004 00:00 + 0.78
16/02/2004 00:00 + 0.77
17/02/2004 00:00 + 0.78
18/02/2004 00:00 + 0.79
19/02/2004 00:00 + 0.80
20/02/2004 00:00 + 0.79
21/02/2004 00:00 + 0.78
22/02/2004 00:00 + 0.95
23/02/2004 00:00 + 0.83
24/02/2004 00:00 + 0.83
25/02/2004 00:00 + 1.35
26/02/2004 00:00 + 1.07
27/02/2004 00:00 + 0.87
28/02/2004 00:00 + 0.83
29/02/2004 00:00 + 0.82
01/03/2004 00:00 + 0.80
02/03/2004 00:00 + 0.77
03/03/2004 00:00 + 0.76
04/03/2004 00:00 + 0.76
05/03/2004 00:00 + 0.77
06/03/2004 00:00 + 0.78
07/03/2004 00:00 + 0.77
08/03/2004 00:00 + 0.77
09/03/2004 00:00 + 0.77
10/03/2004 00:00 + 0.78
11/03/2004 00:00 + 0.81
12/03/2004 00:00 + 0.99
13/03/2004 00:00 + 0.84
14/03/2004 00:00 + 0.77
15/03/2004 00:00 + 0.76
16/03/2004 00:00 + 0.77
17/03/2004 00:00 + 0.77
18/03/2004 00:00 + 0.77
19/03/2004 00:00 + 0.77
20/03/2004 00:00 + 0.77
21/03/2004 00:00 + 0.77
22/03/2004 00:00 + 0.75
23/03/2004 00:00 + 0.76
24/03/2004 00:00 + 0.78
25/03/2004 00:00 + 0.77
26/03/2004 00:00 + 0.77
27/03/2004 00:00 + 0.76
28/03/2004 00:00 + 0.80
29/03/2004 00:00 + 0.76
30/03/2004 00:00 + 0.77
31/03/2004 00:00 + 0.79
01/04/2004 00:00 + 1.01
02/04/2004 00:00 + 0.85
03/04/2004 00:00 + 0.76
04/04/2004 00:00 + 0.74
05/04/2004 00:00 + 0.75
06/04/2004 00:00 + 0.77
07/04/2004 00:00 + 0.78
08/04/2004 00:00 + 0.77
09/04/2004 00:00 + 0.75
10/04/2004 00:00 + 0.73
11/04/2004 00:00 + 0.72
12/04/2004 00:00 + 0.71
13/04/2004 00:00 + 0.73
14/04/2004 00:00 + 0.67
15/04/2004 00:00 + 0.66
16/04/2004 00:00 + 0.66
17/04/2004 00:00 + 0.65
18/04/2004 00:00 + 0.66
19/04/2004 00:00 + 0.66
20/04/2004 00:00 + 0.65
21/04/2004 00:00 + 0.74
22/04/2004 00:00 + 0.76
23/04/2004 00:00 + 0.66
24/04/2004 00:00 + 0.65
25/04/2004 00:00 + 0.64
26/04/2004 00:00 + 0.62
27/04/2004 00:00 + 0.61
28/04/2004 00:00 + 0.60
29/04/2004 00:00 + 0.61
30/04/2004 00:00 + 0.61
01/05/2004 00:00 + 0.71
02/05/2004 00:00 + 0.65
03/05/2004 00:00 + 0.63
04/05/2004 00:00 + 0.61
05/05/2004 00:00 + 0.61
06/05/2004 00:00 + 0.62
07/05/2004 00:00 + 0.61
08/05/2004 00:00 + 0.60
09/05/2004 00:00 + 0.63
10/05/2004 00:00 + 0.64
11/05/2004 00:00 + 0.62
12/05/2004 00:00 + 0.62
13/05/2004 00:00 + 0.61
14/05/2004 00:00 + 0.60
15/05/2004 00:00 + 0.58
16/05/2004 00:00 + 0.58
17/05/2004 00:00 + 0.57
18/05/2004 00:00 + 0.57
19/05/2004 00:00 + 0.57
20/05/2004 00:00 + 0.57
21/05/2004 00:00 + 0.62
22/05/2004 00:00 + 0.63
23/05/2004 00:00 + 0.57
24/05/2004 00:00 + 0.57
25/05/2004 00:00 + 0.57
26/05/2004 00:00 + 0.57
27/05/2004 00:00 + 0.57
28/05/2004 00:00 + 0.57
29/05/2004 00:00 + 0.58
30/05/2004 00:00 + 0.58
31/05/2004 00:00 + 0.57
01/06/2004 00:00 + 0.57
02/06/2004 00:00 + 0.58
03/06/2004 00:00 + 0.57
04/06/2004 00:00 + 0.57
05/06/2004 00:00 + 0.59
06/06/2004 00:00 + 0.59
07/06/2004 00:00 + 0.57
08/06/2004 00:00 + 0.57
09/06/2004 00:00 + 0.57
10/06/2004 00:00 + 0.56
11/06/2004 00:00 + 0.55
12/06/2004 00:00 + 0.55
13/06/2004 00:00 + 0.54
14/06/2004 00:00 + 0.54
15/06/2004 00:00 + 0.53
16/06/2004 00:00 + 0.53
17/06/2004 00:00 + 0.54
18/06/2004 00:00 + 0.53
19/06/2004 00:00 + 0.53
20/06/2004 00:00 + 0.53
21/06/2004 00:00 + 0.54
22/06/2004 00:00 + 0.54
23/06/2004 00:00 + 0.54
24/06/2004 00:00 + 0.53
25/06/2004 00:00 + 0.50
26/06/2004 00:00 + 0.49
27/06/2004 00:00 + 0.50
28/06/2004 00:00 + 0.49
29/06/2004 00:00 + 0.48
30/06/2004 00:00 + 0.46
01/07/2004 00:00 + 0.47
02/07/2004 00:00 + 0.49
03/07/2004 00:00 + 0.51
04/07/2004 00:00 + 0.52
05/07/2004 00:00 + 0.52
06/07/2004 00:00 + 0.52
07/07/2004 00:00 + 0.51
08/07/2004 00:00 + 0.52
09/07/2004 00:00 + 0.53
10/07/2004 00:00 + 0.54
11/07/2004 00:00 + 0.54
12/07/2004 00:00 + 0.53
13/07/2004 00:00 + 0.52
14/07/2004 00:00 + 0.52
15/07/2004 00:00 + 0.51
16/07/2004 00:00 + 0.50
17/07/2004 00:00 + 0.50
18/07/2004 00:00 + 0.51
19/07/2004 00:00 + 0.51
20/07/2004 00:00 + 0.51
21/07/2004 00:00 + 0.50
22/07/2004 00:00 + 0.49
23/07/2004 00:00 + 0.49
24/07/2004 00:00 + 0.49
25/07/2004 00:00 + 0.49
26/07/2004 00:00 + 0.48
27/07/2004 00:00 + 0.43
28/07/2004 00:00 + 0.43
29/07/2004 00:00 + 0.46
30/07/2004 00:00 + 0.49
31/07/2004 00:00 + 0.50
01/08/2004 00:00 + 0.49
02/08/2004 00:00 + 0.49
03/08/2004 00:00 + 0.50
04/08/2004 00:00 + 0.51
05/08/2004 00:00 + 0.51
06/08/2004 00:00 + 0.52
07/08/2004 00:00 + 0.51
08/08/2004 00:00 + 0.53
09/08/2004 00:00 + 0.53
10/08/2004 00:00 + 0.53
11/08/2004 00:00 + 0.56
12/08/2004 00:00 + 0.56
13/08/2004 00:00 + 0.55
14/08/2004 00:00 + 0.57
15/08/2004 00:00 + 0.59
16/08/2004 00:00 + 0.58
17/08/2004 00:00 + 0.64
18/08/2004 00:00 + 0.63
19/08/2004 00:00 + 0.54
20/08/2004 00:00 + 0.49
21/08/2004 00:00 + 0.53
22/08/2004 00:00 + 0.63
23/08/2004 00:00 + 0.65
24/08/2004 00:00 + 0.60
25/08/2004 00:00 + 0.61
26/08/2004 00:00 + 0.62
27/08/2004 00:00 + 0.62
28/08/2004 00:00 + 0.63
29/08/2004 00:00 + 0.63
30/08/2004 00:00 + 0.64
31/08/2004 00:00 + 0.64
01/09/2004 00:00 + 0.65
02/09/2004 00:00 + 0.67
03/09/2004 00:00 + 0.68
04/09/2004 00:00 + 0.69
05/09/2004 00:00 + 0.68
06/09/2004 00:00 + 0.67
07/09/2004 00:00 + 0.67
08/09/2004 00:00 + 0.66
09/09/2004 00:00 + 0.66
10/09/2004 00:00 + 0.66
11/09/2004 00:00 + 0.66
12/09/2004 00:00 + 0.66
13/09/2004 00:00 + 0.65
14/09/2004 00:00 + 0.66
15/09/2004 00:00 + 0.66
16/09/2004 00:00 + 0.65
17/09/2004 00:00 + 0.65
18/09/2004 00:00 + 0.67
19/09/2004 00:00 + 0.68
20/09/2004 00:00 + 0.68
21/09/2004 00:00 + 0.66
22/09/2004 00:00 + 0.66
23/09/2004 00:00 + 0.66
24/09/2004 00:00 + 0.67
25/09/2004 00:00 + 0.66
26/09/2004 00:00 + 0.64
27/09/2004 00:00 + 0.63
28/09/2004 00:00 + 0.62
29/09/2004 00:00 + 0.65
30/09/2004 00:00 + 0.64
01/10/2004 00:00 + 0.66
02/10/2004 00:00 + 0.65
03/10/2004 00:00 + 0.65
04/10/2004 00:00 + 0.67
05/10/2004 00:00 + 0.65
06/10/2004 00:00 + 0.66
07/10/2004 00:00 + 0.64
08/10/2004 00:00 + 0.66
09/10/2004 00:00 + 0.71
10/10/2004 00:00 + 0.73
11/10/2004 00:00 + 0.69
12/10/2004 00:00 + 0.66
13/10/2004 00:00 + 0.64
14/10/2004 00:00 + 0.65
15/10/2004 00:00 + 0.67
16/10/2004 00:00 + 0.67
17/10/2004 00:00 + 0.68
18/10/2004 00:00 + 0.72
19/10/2004 00:00 + 0.92
20/10/2004 00:00 + 0.93
21/10/2004 00:00 + 0.97
22/10/2004 00:00 + 0.80
23/10/2004 00:00 + 0.74
24/10/2004 00:00 + 0.84
25/10/2004 00:00 + 0.75
26/10/2004 00:00 + 0.64
27/10/2004 00:00 + 1.14
28/10/2004 00:00 + 0.79
29/10/2004 00:00 + 1.03
30/10/2004 00:00 + 0.85
31/10/2004 00:00 + 0.84
01/11/2004 00:00 + 0.71
02/11/2004 00:00 + 0.66
03/11/2004 00:00 + 0.99
04/11/2004 00:00 + 0.76
05/11/2004 00:00 + 0.68
06/11/2004 00:00 + 0.65
07/11/2004 00:00 + 0.66
08/11/2004 00:00 + 0.64
09/11/2004 00:00 + 0.61
10/11/2004 00:00 + 0.60
11/11/2004 00:00 + 0.59
12/11/2004 00:00 + 0.57
13/11/2004 00:00 + 0.56
14/11/2004 00:00 + 0.56
15/11/2004 00:00 + 0.55
16/11/2004 00:00 + 0.54
17/11/2004 00:00 + 0.53
18/11/2004 00:00 + 0.54
19/11/2004 00:00 + 0.54
20/11/2004 00:00 + 0.53
21/11/2004 00:00 + 0.52
22/11/2004 00:00 + 0.51
23/11/2004 00:00 + 0.51
24/11/2004 00:00 + 0.50
25/11/2004 00:00 + 0.50
26/11/2004 00:00 + 0.51
27/11/2004 00:00 + 0.51
28/11/2004 00:00 + 0.53
29/11/2004 00:00 + 0.56
30/11/2004 00:00 + 0.55
01/12/2004 00:00 + 0.73
02/12/2004 00:00 + 0.62
03/12/2004 00:00 + 0.51
04/12/2004 00:00 + 0.47
05/12/2004 00:00 + 0.45
06/12/2004 00:00 + 0.44
07/12/2004 00:00 + 0.43
08/12/2004 00:00 + 0.42
09/12/2004 00:00 + 0.42
10/12/2004 00:00 + 0.42
11/12/2004 00:00 + 0.42
12/12/2004 00:00 + 0.42
13/12/2004 00:00 + 0.45
14/12/2004 00:00 + 0.46
15/12/2004 00:00 + 0.45
16/12/2004 00:00 + 0.45
17/12/2004 00:00 + 0.46
18/12/2004 00:00 + 0.46
19/12/2004 00:00 + 0.47
20/12/2004 00:00 + 0.46
21/12/2004 00:00 + 0.43
22/12/2004 00:00 + 0.41
23/12/2004 00:00 + 0.40
24/12/2004 00:00 + 0.40
25/12/2004 00:00 + 0.42
26/12/2004 00:00 + 0.42
27/12/2004 00:00 + 0.42
28/12/2004 00:00 + 0.41
29/12/2004 00:00 + 0.45
30/12/2004 00:00 + 0.42
31/12/2004 00:00 + 0.41
01/01/2005 00:00 + 0.41
02/01/2005 00:00 + 0.42
03/01/2005 00:00 + 0.41
04/01/2005 00:00 + 0.40
05/01/2005 00:00 + 0.40
06/01/2005 00:00 + 0.40
07/01/2005 00:00 + 0.40
08/01/2005 00:00 + 0.40
09/01/2005 00:00 + 0.41
10/01/2005 00:00 + 0.41
11/01/2005 00:00 + 0.41
12/01/2005 00:00 + 0.42
13/01/2005 00:00 + 0.44
14/01/2005 00:00 + 0.43
15/01/2005 00:00 + 0.43
16/01/2005 00:00 + 0.42
17/01/2005 00:00 + 0.39
18/01/2005 00:00 + 0.39
19/01/2005 00:00 + 0.41
20/01/2005 00:00 + 0.40
21/01/2005 00:00 + 0.40
22/01/2005 00:00 + 0.39
23/01/2005 00:00 + 0.39
24/01/2005 00:00 + 0.39
25/01/2005 00:00 + 0.38
26/01/2005 00:00 + 0.36
27/01/2005 00:00 + 0.35
28/01/2005 00:00 + 0.35
29/01/2005 00:00 + 0.36
30/01/2005 00:00 + 0.35
31/01/2005 00:00 + 0.35
01/02/2005 00:00 + 0.35
02/02/2005 00:00 + 0.35
03/02/2005 00:00 + 0.36
04/02/2005 00:00 + 0.36
05/02/2005 00:00 + 0.36
06/02/2005 00:00 + 0.39
07/02/2005 00:00 + 0.39
08/02/2005 00:00 + 0.35
09/02/2005 00:00 + 0.35
10/02/2005 00:00 + 0.35
11/02/2005 00:00 + 0.36
12/02/2005 00:00 + 0.36
13/02/2005 00:00 + 0.38
14/02/2005 00:00 + 0.39
15/02/2005 00:00 + 0.37
16/02/2005 00:00 + 0.36
17/02/2005 00:00 + 0.34
18/02/2005 00:00 + 0.34
19/02/2005 00:00 + 0.33
20/02/2005 00:00 + 0.35
21/02/2005 00:00 + 0.37
22/02/2005 00:00 + 0.36
23/02/2005 00:00 + 0.38
24/02/2005 00:00 + 0.41
25/02/2005 00:00 + 0.36
26/02/2005 00:00 + 0.33
27/02/2005 00:00 + 0.35
28/02/2005 00:00 + 0.33
01/03/2005 00:00 + 0.31
02/03/2005 00:00 + 0.31
03/03/2005 00:00 + 0.32
04/03/2005 00:00 + 0.33
05/03/2005 00:00 + 0.32
06/03/2005 00:00 + 0.35
07/03/2005 00:00 + 0.36
08/03/2005 00:00 + 0.34
09/03/2005 00:00 + 0.33
10/03/2005 00:00 + 0.34
11/03/2005 00:00 + 0.36
12/03/2005 00:00 + 0.37
13/03/2005 00:00 + 0.38
14/03/2005 00:00 + 0.38
15/03/2005 00:00 + 0.37
16/03/2005 00:00 + 0.37
17/03/2005 00:00 + 0.37
18/03/2005 00:00 + 0.38
19/03/2005 00:00 + 0.36
20/03/2005 00:00 + 0.36
21/03/2005 00:00 + 0.36
22/03/2005 00:00 + 0.36
23/03/2005 00:00 + 0.33
24/03/2005 00:00 + 0.31
25/03/2005 00:00 + 0.38
26/03/2005 00:00 + 0.39
27/03/2005 00:00 + 0.28
28/03/2005 00:00 + 0.40
29/03/2005 00:00 + 0.40
30/03/2005 00:00 + 0.27
31/03/2005 00:00 + 0.24
01/04/2005 00:00 + 0.21
02/04/2005 00:00 + 0.26
03/04/2005 00:00 + 0.30
04/04/2005 00:00 + 0.21
05/04/2005 00:00 + 0.22
06/04/2005 00:00 + 0.23
07/04/2005 00:00 + 0.23
08/04/2005 00:00 + 0.23
09/04/2005 00:00 + 0.22
10/04/2005 00:00 + 0.24
11/04/2005 00:00 + 0.25
12/04/2005 00:00 + 0.27
13/04/2005 00:00 + 0.27
14/04/2005 00:00 + 0.28
15/04/2005 00:00 + 0.27
16/04/2005 00:00 + 0.26
17/04/2005 00:00 + 0.28
18/04/2005 00:00 + 0.30
19/04/2005 00:00 + 0.29
20/04/2005 00:00 + 0.26
21/04/2005 00:00 + 0.27
22/04/2005 00:00 + 0.27
23/04/2005 00:00 + 0.28
24/04/2005 00:00 + 0.30
25/04/2005 00:00 + 0.27
26/04/2005 00:00 + 0.26
27/04/2005 00:00 + 0.27
28/04/2005 00:00 + 0.26
29/04/2005 00:00 + 0.26
30/04/2005 00:00 + 0.26
01/05/2005 00:00 + 0.25
02/05/2005 00:00 + 0.23
03/05/2005 00:00 + 0.21
04/05/2005 00:00 + 0.20
05/05/2005 00:00 + 0.20
06/05/2005 00:00 + 0.20
07/05/2005 00:00 + 0.18
08/05/2005 00:00 + 0.15
09/05/2005 00:00 + 0.07
10/05/2005 00:00 + 0.00
11/05/2005 00:00 + 0.00
12/05/2005 00:00 + 0.04
13/05/2005 00:00 + 0.00
14/05/2005 00:00 + 0.08
15/05/2005 00:00 + 0.17
16/05/2005 00:00 + 0.20
17/05/2005 00:00 + 0.24
18/05/2005 00:00 + 0.25
19/05/2005 00:00 + 0.23
20/05/2005 00:00 + 0.26
21/05/2005 00:00 + 0.26
22/05/2005 00:00 + 0.23
23/05/2005 00:00 + 0.22
24/05/2005 00:00 + 0.25
25/05/2005 00:00 + 0.27
26/05/2005 00:00 + 0.23
27/05/2005 00:00 + 0.21
28/05/2005 00:00 + 0.20
29/05/2005 00:00 + 0.21
30/05/2005 00:00 + 0.23
31/05/2005 00:00 + 0.23
01/06/2005 00:00 + 0.18
02/06/2005 00:00 + 0.11
03/06/2005 00:00 + 0.11
04/06/2005 00:00 + 0.14
05/06/2005 00:00 + 0.16
06/06/2005 00:00 + 0.14
07/06/2005 00:00 + 0.11
24/11/2007 00:00 + 0.55
25/11/2007 00:00 + 0.47
26/11/2007 00:00 + 0.44
27/11/2007 00:00 + 0.43
28/11/2007 00:00 + 0.43
29/11/2007 00:00 + 0.43
30/11/2007 00:00 + 0.45
01/12/2007 00:00 + 0.44
02/12/2007 00:00 + 0.46
03/12/2007 00:00 + 0.45
04/12/2007 00:00 + 0.45
05/12/2007 00:00 + 0.45
06/12/2007 00:00 + 0.46
07/12/2007 00:00 + 0.45
08/12/2007 00:00 + 0.45
09/12/2007 00:00 + 0.45
10/12/2007 00:00 + 0.45
11/12/2007 00:00 + 0.44
12/12/2007 00:00 + 0.44
13/12/2007 00:00 + 0.45
14/12/2007 00:00 + 0.44
15/12/2007 00:00 + 0.44
16/12/2007 00:00 + 0.44
17/12/2007 00:00 + 0.44
18/12/2007 00:00 + 0.44
19/12/2007 00:00 + 0.75
20/12/2007 00:00 + 0.98
21/12/2007 00:00 + 0.59
22/12/2007 00:00 + 0.49
23/12/2007 00:00 + 0.46
24/12/2007 00:00 + 0.45
25/12/2007 00:00 + 0.45
26/12/2007 00:00 + 0.56
27/12/2007 00:00 + 0.48
28/12/2007 00:00 + 0.45
29/12/2007 00:00 + 0.44
30/12/2007 00:00 + 0.44
31/12/2007 00:00 + 0.44
01/01/2008 00:00 + 0.46
02/01/2008 00:00 + 0.84
03/01/2008 00:00 + 1.15
04/01/2008 00:00 + 1.34
05/01/2008 00:00 + 0.72
06/01/2008 00:00 + 0.63
07/01/2008 00:00 + 0.56
08/01/2008 00:00 + 0.53
09/01/2008 00:00 + 0.54
10/01/2008 00:00 + 0.61
11/01/2008 00:00 + 0.58
12/01/2008 00:00 + 0.55
13/01/2008 00:00 + 0.61
14/01/2008 00:00 + 0.78
15/01/2008 00:00 + 0.59
16/01/2008 00:00 + 0.56
17/01/2008 00:00 + 0.52
18/01/2008 00:00 + 0.51
19/01/2008 00:00 + 0.50
20/01/2008 00:00 + 0.49
21/01/2008 00:00 + 0.49
22/01/2008 00:00 + 0.48
23/01/2008 00:00 + 0.49
24/01/2008 00:00 + 0.48
25/01/2008 00:00 + 0.47
26/01/2008 00:00 + 0.47
27/01/2008 00:00 + 0.46
28/01/2008 00:00 + 0.46
29/01/2008 00:00 + 0.47
30/01/2008 00:00 + 0.48
31/01/2008 00:00 + 0.47
01/02/2008 00:00 + 0.47
02/02/2008 00:00 + 0.54
03/02/2008 00:00 + 0.54
04/02/2008 00:00 + 0.61
05/02/2008 00:00 + 0.52
06/02/2008 00:00 + 0.48
07/02/2008 00:00 + 0.48
08/02/2008 00:00 + 0.47
09/02/2008 00:00 + 0.47
10/02/2008 00:00 + 0.46
11/02/2008 00:00 + 0.46
12/02/2008 00:00 + 0.46
13/02/2008 00:00 + 0.45
14/02/2008 00:00 + 0.45
15/02/2008 00:00 + 0.45
16/02/2008 00:00 + 0.45
17/02/2008 00:00 + 0.45
18/02/2008 00:00 + 0.92
19/02/2008 00:00 + 0.69
20/02/2008 00:00 + 0.57
21/02/2008 00:00 + 0.63
22/02/2008 00:00 + 0.55
23/02/2008 00:00 + 0.54
24/02/2008 00:00 + 0.62
25/02/2008 00:00 + 0.69
26/02/2008 00:00 + 0.56
27/02/2008 00:00 + 0.52
28/02/2008 00:00 + 0.84
29/02/2008 00:00 + 0.61
01/03/2008 00:00 + 0.55
02/03/2008 00:00 + 0.52
03/03/2008 00:00 + 0.50
04/03/2008 00:00 + 0.48
05/03/2008 00:00 + 0.46
06/03/2008 00:00 + 0.46
07/03/2008 00:00 + 0.46
08/03/2008 00:00 + 0.46
09/03/2008 00:00 + 0.46
10/03/2008 00:00 + 0.46
11/03/2008 00:00 + 0.54
12/03/2008 00:00 + 0.48
13/03/2008 00:00 + 0.46
14/03/2008 00:00 + 0.45
15/03/2008 00:00 + 0.45
16/03/2008 00:00 + 0.44
17/03/2008 00:00 + 0.45
18/03/2008 00:00 + 0.49
19/03/2008 00:00 + 0.73
20/03/2008 00:00 + 0.72
21/03/2008 00:00 + 0.54
22/03/2008 00:00 + 0.50
23/03/2008 00:00 + 0.50
24/03/2008 00:00 + 0.46
25/03/2008 00:00 + 0.46
26/03/2008 00:00 + 0.46
27/03/2008 00:00 + 0.46
28/03/2008 00:00 + 0.46
29/03/2008 00:00 + 0.46
30/03/2008 00:00 + 0.46
31/03/2008 00:00 + 0.45
01/04/2008 00:00 + 0.46
02/04/2008 00:00 + 0.47
03/04/2008 00:00 + 0.47
04/04/2008 00:00 + 0.47
05/04/2008 00:00 + 0.47
06/04/2008 00:00 + 0.47
07/04/2008 00:00 + 0.51
08/04/2008 00:00 + 0.72
09/04/2008 00:00 + 0.83
10/04/2008 00:00 + 1.02
11/04/2008 00:00 + 0.77
12/04/2008 00:00 + 0.63
13/04/2008 00:00 + 0.60
14/04/2008 00:00 + 0.58
15/04/2008 00:00 + 0.53
16/04/2008 00:00 + 0.53
17/04/2008 00:00 + 0.77
18/04/2008 00:00 + 1.73
19/04/2008 00:00 + 1.54
20/04/2008 00:00 + 1.18
21/04/2008 00:00 + 0.97
22/04/2008 00:00 + 0.79
23/04/2008 00:00 + 0.71
24/04/2008 00:00 + 0.67
25/04/2008 00:00 + 0.63
26/04/2008 00:00 + 0.60
27/04/2008 00:00 + 0.58
28/04/2008 00:00 + 0.56
29/04/2008 00:00 + 0.54
30/04/2008 00:00 + 0.54
01/05/2008 00:00 + 0.53
02/05/2008 00:00 + 0.52
03/05/2008 00:00 + 0.51
04/05/2008 00:00 + 0.51
05/05/2008 00:00 + 0.50
06/05/2008 00:00 + 0.51
07/05/2008 00:00 + 0.50
08/05/2008 00:00 + 0.51
09/05/2008 00:00 + 0.50
10/05/2008 00:00 + 0.55
11/05/2008 00:00 + 0.52
12/05/2008 00:00 + 0.51
13/05/2008 00:00 + 0.50
14/05/2008 00:00 + 0.49
15/05/2008 00:00 + 0.50
16/05/2008 00:00 + 0.57
17/05/2008 00:00 + 0.49
18/05/2008 00:00 + 0.48
19/05/2008 00:00 + 0.48
20/05/2008 00:00 + 0.47
21/05/2008 00:00 + 0.49
22/05/2008 00:00 + 0.52
23/05/2008 00:00 + 0.89
24/05/2008 00:00 + 0.65
25/05/2008 00:00 + 0.59
26/05/2008 00:00 + 0.56
27/05/2008 00:00 + 1.00
28/05/2008 00:00 + 0.71
29/05/2008 00:00 + 0.64
30/05/2008 00:00 + 0.57
31/05/2008 00:00 + 0.55
01/06/2008 00:00 + 0.51
02/06/2008 00:00 + 0.49
03/06/2008 00:00 + 0.48
04/06/2008 00:00 + 0.48
05/06/2008 00:00 + 0.46
06/06/2008 00:00 + 0.46
07/06/2008 00:00 + 0.45
08/06/2008 00:00 + 0.43
09/06/2008 00:00 + 0.42
10/06/2008 00:00 + 0.41
11/06/2008 00:00 + 0.40
12/06/2008 00:00 + 0.40
13/06/2008 00:00 + 0.40
14/06/2008 00:00 + 0.39
15/06/2008 00:00 + 0.39
16/06/2008 00:00 + 0.40
17/06/2008 00:00 + 0.41
18/06/2008 00:00 + 0.40
19/06/2008 00:00 + 0.39
20/06/2008 00:00 + 0.39
21/06/2008 00:00 + 0.38
22/06/2008 00:00 + 0.39
23/06/2008 00:00 + 0.38
24/06/2008 00:00 + 0.38
25/06/2008 00:00 + 0.37
26/06/2008 00:00 + 0.36
27/06/2008 00:00 + 0.35
28/06/2008 00:00 + 0.35
29/06/2008 00:00 + 0.35
30/06/2008 00:00 + 0.41
01/07/2008 00:00 + 0.35
02/07/2008 00:00 + 0.34
03/07/2008 00:00 + 0.33
04/07/2008 00:00 + 0.33
05/07/2008 00:00 + 0.33
06/07/2008 00:00 + 0.32
07/07/2008 00:00 + 0.32
08/07/2008 00:00 + 0.32
09/07/2008 00:00 + 0.31
10/07/2008 00:00 + 0.30
11/07/2008 00:00 + 0.31
12/07/2008 00:00 + 0.33
13/07/2008 00:00 + 0.32
14/07/2008 00:00 + 0.32
15/07/2008 00:00 + 0.37
16/07/2008 00:00 + 0.41
17/07/2008 00:00 + 0.44
18/07/2008 00:00 + 0.39
19/07/2008 00:00 + 0.36
20/07/2008 00:00 + 0.32
21/07/2008 00:00 + 0.31
22/07/2008 00:00 + 0.31
23/07/2008 00:00 + 0.30
24/07/2008 00:00 + 0.30
25/07/2008 00:00 + 0.39
26/07/2008 00:00 + 0.48
27/07/2008 00:00 + 0.36
28/07/2008 00:00 + 0.35
29/07/2008 00:00 + 0.32
30/07/2008 00:00 + 0.30
31/07/2008 00:00 + 0.30
01/08/2008 00:00 + 0.31
02/08/2008 00:00 + 0.32
03/08/2008 00:00 + 0.32
04/08/2008 00:00 + 0.31
05/08/2008 00:00 + 0.31
06/08/2008 00:00 + 0.30
07/08/2008 00:00 + 0.29
08/08/2008 00:00 + 0.30
09/08/2008 00:00 + 0.30
10/08/2008 00:00 + 0.31
11/08/2008 00:00 + 0.31
12/08/2008 00:00 + 0.31
13/08/2008 00:00 + 0.32
14/08/2008 00:00 + 0.32
15/08/2008 00:00 + 0.32
16/08/2008 00:00 + 0.31
17/08/2008 00:00 + 0.32
18/08/2008 00:00 + 0.31
19/08/2008 00:00 + 0.31
20/08/2008 00:00 + 0.30
21/08/2008 00:00 + 0.30
22/08/2008 00:00 + 0.32
23/08/2008 00:00 + 0.32
24/08/2008 00:00 + 0.31
25/08/2008 00:00 + 0.33
26/08/2008 00:00 + 0.31
27/08/2008 00:00 + 0.30
28/08/2008 00:00 + 0.30
29/08/2008 00:00 + 0.30
30/08/2008 00:00 + 0.32
31/08/2008 00:00 + 0.31
01/09/2008 00:00 + 0.33
02/09/2008 00:00 + 0.33
03/09/2008 00:00 + 0.33
04/09/2008 00:00 + 0.33
05/09/2008 00:00 + 0.36
06/09/2008 00:00 + 0.45
07/09/2008 00:00 + 0.36
08/09/2008 00:00 + 0.34
09/09/2008 00:00 + 0.33
10/09/2008 00:00 + 0.32
11/09/2008 00:00 + 0.33
12/09/2008 00:00 + 0.34
13/09/2008 00:00 + 0.34
14/09/2008 00:00 + 0.33
15/09/2008 00:00 + 0.34
16/09/2008 00:00 + 0.33
17/09/2008 00:00 + 0.33
18/09/2008 00:00 + 0.34
19/09/2008 00:00 + 0.34
20/09/2008 00:00 + 0.34
21/09/2008 00:00 + 0.44
22/09/2008 00:00 + 0.56
23/09/2008 00:00 + 0.36
24/09/2008 00:00 + 0.35
25/09/2008 00:00 + 0.34
26/09/2008 00:00 + 0.34
27/09/2008 00:00 + 0.34
28/09/2008 00:00 + 0.33
29/09/2008 00:00 + 0.34
30/09/2008 00:00 + 0.34
01/10/2008 00:00 + 0.33
02/10/2008 00:00 + 0.33
03/10/2008 00:00 + 0.33
04/10/2008 00:00 + 0.33
05/10/2008 00:00 + 0.33
06/10/2008 00:00 + 0.32
07/10/2008 00:00 + 0.37
08/10/2008 00:00 + 0.40
09/10/2008 00:00 + 0.34
10/10/2008 00:00 + 0.33
11/10/2008 00:00 + 0.32
12/10/2008 00:00 + 0.90
13/10/2008 00:00 + 0.71
14/10/2008 00:00 + 0.41
15/10/2008 00:00 + 0.38
16/10/2008 00:00 + 0.36
17/10/2008 00:00 + 0.35
18/10/2008 00:00 + 0.35
19/10/2008 00:00 + 0.35
20/10/2008 00:00 + 0.34
21/10/2008 00:00 + 0.34
22/10/2008 00:00 + 0.34
23/10/2008 00:00 + 0.34
24/10/2008 00:00 + 0.34
25/10/2008 00:00 + 0.34
26/10/2008 00:00 + 0.34
27/10/2008 00:00 + 0.33
28/10/2008 00:00 + 0.34
29/10/2008 00:00 + 0.33
30/10/2008 00:00 + 0.51
31/10/2008 00:00 + 0.67
01/11/2008 00:00 + 0.52
02/11/2008 00:00 + 0.39
03/11/2008 00:00 + 0.36
04/11/2008 00:00 + 0.39
05/11/2008 00:00 + 0.45
06/11/2008 00:00 + 0.39
07/11/2008 00:00 + 0.36
08/11/2008 00:00 + 0.36
09/11/2008 00:00 + 0.35
10/11/2008 00:00 + 0.35
11/11/2008 00:00 + 0.36
12/11/2008 00:00 + 0.38
13/11/2008 00:00 + 0.36
14/11/2008 00:00 + 0.35
15/11/2008 00:00 + 0.35
16/11/2008 00:00 + 0.34
17/11/2008 00:00 + 0.35
18/11/2008 00:00 + 0.34
19/11/2008 00:00 + 0.34
20/11/2008 00:00 + 0.34
21/11/2008 00:00 + 0.34
22/11/2008 00:00 + 0.35
23/11/2008 00:00 + 0.35
24/11/2008 00:00 + 0.35
25/11/2008 00:00 + 0.36
26/11/2008 00:00 + 0.35
27/11/2008 00:00 + 0.35
28/11/2008 00:00 + 0.41
29/11/2008 00:00 + 0.79
30/11/2008 00:00 + 0.80
01/12/2008 00:00 + 0.79
02/12/2008 00:00 + 0.62
03/12/2008 00:00 + 0.55
04/12/2008 00:00 + 0.77
05/12/2008 00:00 + 0.50
06/12/2008 00:00 + 0.46
07/12/2008 00:00 + 0.84
08/12/2008 00:00 + 0.62
09/12/2008 00:00 + 0.47
10/12/2008 00:00 + 0.44
11/12/2008 00:00 + 0.43
12/12/2008 00:00 + 0.54
13/12/2008 00:00 + 0.83
14/12/2008 00:00 + 0.92
15/12/2008 00:00 + 0.75
16/12/2008 00:00 + 0.58
17/12/2008 00:00 + 0.50
18/12/2008 00:00 + 0.47
19/12/2008 00:00 + 0.45
20/12/2008 00:00 + 0.43
21/12/2008 00:00 + 0.42
22/12/2008 00:00 + 0.41
23/12/2008 00:00 + 0.41
24/12/2008 00:00 + 0.40
25/12/2008 00:00 + 0.40
26/12/2008 00:00 + 0.40
27/12/2008 00:00 + 0.41
28/12/2008 00:00 + 0.53
29/12/2008 00:00 + 0.42
30/12/2008 00:00 + 0.40
31/12/2008 00:00 + 0.65
01/01/2009 00:00 + 0.71
02/01/2009 00:00 + 0.75
03/01/2009 00:00 + 0.75
04/01/2009 00:00 + 0.74
05/01/2009 00:00 + 0.56
06/01/2009 00:00 + 0.52
07/01/2009 00:00 + 0.50
08/01/2009 00:00 + 0.47
09/01/2009 00:00 + 0.45
10/01/2009 00:00 + 0.49
11/01/2009 00:00 + 0.45
12/01/2009 00:00 + 0.44
13/01/2009 00:00 + 0.69
14/01/2009 00:00 + 0.53
15/01/2009 00:00 + 0.84
16/01/2009 00:00 + 0.78
17/01/2009 00:00 + 0.58
18/01/2009 00:00 + 0.55
19/01/2009 00:00 + 0.81
20/01/2009 00:00 + 0.94
21/01/2009 00:00 + 0.86
22/01/2009 00:00 + 1.18
23/01/2009 00:00 + 1.30
24/01/2009 00:00 + 0.97
25/01/2009 00:00 + 0.80
26/01/2009 00:00 + 0.83
27/01/2009 00:00 + 0.71
28/01/2009 00:00 + 0.78
29/01/2009 00:00 + 0.84
30/01/2009 00:00 + 1.11
31/01/2009 00:00 + 1.53
01/02/2009 00:00 + 2.56
02/02/2009 00:00 + 1.30
03/02/2009 00:00 + 1.09
04/02/2009 00:00 + 1.18
05/02/2009 00:00 + 1.09
06/02/2009 00:00 + 1.22
07/02/2009 00:00 + 1.14
08/02/2009 00:00 + 0.88
09/02/2009 00:00 + 0.92
10/02/2009 00:00 + 1.13
11/02/2009 00:00 + 0.84
12/02/2009 00:00 + 0.78
13/02/2009 00:00 + 0.73
14/02/2009 00:00 + 0.69
15/02/2009 00:00 + 0.66
16/02/2009 00:00 + 0.63
17/02/2009 00:00 + 0.60
18/02/2009 00:00 + 0.57
19/02/2009 00:00 + 0.56
20/02/2009 00:00 + 0.55
21/02/2009 00:00 + 0.53
22/02/2009 00:00 + 0.52
23/02/2009 00:00 + 0.52
24/02/2009 00:00 + 0.51
25/02/2009 00:00 + 0.49
26/02/2009 00:00 + 0.48
27/02/2009 00:00 + 0.48
28/02/2009 00:00 + 0.48
01/03/2009 00:00 + 0.51
02/03/2009 00:00 + 0.50
03/03/2009 00:00 + 0.48
04/03/2009 00:00 + 0.50
05/03/2009 00:00 + 0.61
06/03/2009 00:00 + 0.56
07/03/2009 00:00 + 0.53
08/03/2009 00:00 + 0.49
09/03/2009 00:00 + 0.47
10/03/2009 00:00 + 0.45
11/03/2009 00:00 + 0.44
12/03/2009 00:00 + 0.43
13/03/2009 00:00 + 0.43
14/03/2009 00:00 + 0.42
15/03/2009 00:00 + 0.42
16/03/2009 00:00 + 0.41
17/03/2009 00:00 + 0.40
18/03/2009 00:00 + 0.38
19/03/2009 00:00 + 0.39
20/03/2009 00:00 + 0.39
21/03/2009 00:00 + 0.38
22/03/2009 00:00 + 0.38
23/03/2009 00:00 + 0.38
24/03/2009 00:00 + 0.37
25/03/2009 00:00 + 0.36
26/03/2009 00:00 + 0.36
27/03/2009 00:00 + 0.36
28/03/2009 00:00 + 0.36
29/03/2009 00:00 + 0.35
30/03/2009 00:00 + 0.35
31/03/2009 00:00 + 0.35
01/04/2009 00:00 + 0.35
02/04/2009 00:00 + 0.35
03/04/2009 00:00 + 0.34
04/04/2009 00:00 + 0.34
05/04/2009 00:00 + 0.34
06/04/2009 00:00 + 0.34
07/04/2009 00:00 + 0.34
08/04/2009 00:00 + 0.34
09/04/2009 00:00 + 0.34
10/04/2009 00:00 + 0.37
11/04/2009 00:00 + 0.38
12/04/2009 00:00 + 0.35
13/04/2009 00:00 + 0.35
14/04/2009 00:00 + 0.41
15/04/2009 00:00 + 0.55
16/04/2009 00:00 + 0.46
17/04/2009 00:00 + 0.44
18/04/2009 00:00 + 0.51
19/04/2009 00:00 + 0.57
20/04/2009 00:00 + 0.39
21/04/2009 00:00 + 0.36
22/04/2009 00:00 + 0.36
23/04/2009 00:00 + 0.35
24/04/2009 00:00 + 0.35
25/04/2009 00:00 + 0.35
26/04/2009 00:00 + 0.45
27/04/2009 00:00 + 0.38
28/04/2009 00:00 + 0.37
29/04/2009 00:00 + 0.36
30/04/2009 00:00 + 0.37
01/05/2009 00:00 + 0.37
02/05/2009 00:00 + 0.35
03/05/2009 00:00 + 0.34
04/05/2009 00:00 + 0.34
05/05/2009 00:00 + 0.35
06/05/2009 00:00 + 0.34
07/05/2009 00:00 + 0.33
08/05/2009 00:00 + 0.36
09/05/2009 00:00 + 0.34
10/05/2009 00:00 + 0.40
11/05/2009 00:00 + 0.91
12/05/2009 00:00 + 0.50
13/05/2009 00:00 + 0.41
14/05/2009 00:00 + 0.40
15/05/2009 00:00 + 0.38
16/05/2009 00:00 + 0.37
17/05/2009 00:00 + 0.36
18/05/2009 00:00 + 0.35
19/05/2009 00:00 + 0.34
20/05/2009 00:00 + 0.34
21/05/2009 00:00 + 0.35
22/05/2009 00:00 + 0.35
23/05/2009 00:00 + 0.38
24/05/2009 00:00 + 0.45
25/05/2009 00:00 + 0.34
26/05/2009 00:00 + 0.34
27/05/2009 00:00 + 0.34
28/05/2009 00:00 + 0.31
29/05/2009 00:00 + 0.30
30/05/2009 00:00 + 0.29
31/05/2009 00:00 + 0.27
01/06/2009 00:00 + 0.26
02/06/2009 00:00 + 0.25
03/06/2009 00:00 + 0.26
04/06/2009 00:00 + 0.26
05/06/2009 00:00 + 0.56
06/06/2009 00:00 + 0.69
07/06/2009 00:00 + 0.42
08/06/2009 00:00 + 0.36
09/06/2009 00:00 + 0.33
10/06/2009 00:00 + 0.32
11/06/2009 00:00 + 0.30
12/06/2009 00:00 + 0.30
13/06/2009 00:00 + 0.30
14/06/2009 00:00 + 0.29
15/06/2009 00:00 + 0.28
16/06/2009 00:00 + 0.27
17/06/2009 00:00 + 0.27
18/06/2009 00:00 + 0.27
19/06/2009 00:00 + 0.26
20/06/2009 00:00 + 0.26
21/06/2009 00:00 + 0.25
22/06/2009 00:00 + 0.25
23/06/2009 00:00 + 0.24
24/06/2009 00:00 + 0.25
25/06/2009 00:00 + 0.25
26/06/2009 00:00 + 0.24
27/06/2009 00:00 + 0.24
28/06/2009 00:00 + 0.26
29/06/2009 00:00 + 0.27
30/06/2009 00:00 + 0.26
01/07/2009 00:00 + 0.25
02/07/2009 00:00 + 0.24
03/07/2009 00:00 + 0.24
04/07/2009 00:00 + 0.24
05/07/2009 00:00 + 0.25
06/07/2009 00:00 + 0.25
07/07/2009 00:00 + 0.24
08/07/2009 00:00 + 0.24
09/07/2009 00:00 + 0.24
10/07/2009 00:00 + 0.24
11/07/2009 00:00 + 0.24
12/07/2009 00:00 + 0.24
13/07/2009 00:00 + 0.25
14/07/2009 00:00 + 0.24
15/07/2009 00:00 + 0.24
16/07/2009 00:00 + 0.24
17/07/2009 00:00 + 0.24
18/07/2009 00:00 + 0.24
19/07/2009 00:00 + 0.24
20/07/2009 00:00 + 0.24
21/07/2009 00:00 + 0.24
22/07/2009 00:00 + 0.24
23/07/2009 00:00 + 0.25
24/07/2009 00:00 + 0.24
25/07/2009 00:00 + 0.25
26/07/2009 00:00 + 0.25
27/07/2009 00:00 + 0.24
28/07/2009 00:00 + 0.24
29/07/2009 00:00 + 0.24
30/07/2009 00:00 + 0.24
31/07/2009 00:00 + 0.24
01/08/2009 00:00 + 0.25
02/08/2009 00:00 + 0.27
03/08/2009 00:00 + 0.24
04/08/2009 00:00 + 0.24
05/08/2009 00:00 + 0.24
06/08/2009 00:00 + 0.24
07/08/2009 00:00 + 0.24
08/08/2009 00:00 + 0.24
09/08/2009 00:00 + 0.24
10/08/2009 00:00 + 0.24
11/08/2009 00:00 + 0.24
12/08/2009 00:00 + 0.24
13/08/2009 00:00 + 0.24
14/08/2009 00:00 + 0.24
15/08/2009 00:00 + 0.24
16/08/2009 00:00 + 0.24
17/08/2009 00:00 + 0.24
18/08/2009 00:00 + 0.24
19/08/2009 00:00 + 0.24
20/08/2009 00:00 + 0.24
21/08/2009 00:00 + 0.24
22/08/2009 00:00 + 0.24
23/08/2009 00:00 + 0.24
24/08/2009 00:00 + 0.25
25/08/2009 00:00 + 0.25
26/08/2009 00:00 + 0.25
27/08/2009 00:00 + 0.24
28/08/2009 00:00 + 0.25
29/08/2009 00:00 + 0.24
30/08/2009 00:00 + 0.24
31/08/2009 00:00 + 0.24
01/09/2009 00:00 + 0.24
02/09/2009 00:00 + 0.24
03/09/2009 00:00 + 0.24
04/09/2009 00:00 + 0.25
05/09/2009 00:00 + 0.25
06/09/2009 00:00 + 0.25
07/09/2009 00:00 + 0.25
08/09/2009 00:00 + 0.25
09/09/2009 00:00 + 0.24
10/09/2009 00:00 + 0.25
11/09/2009 00:00 + 0.25
12/09/2009 00:00 + 0.26
13/09/2009 00:00 + 0.26
14/09/2009 00:00 + 0.28
15/09/2009 00:00 + 0.27
16/09/2009 00:00 + 0.27
17/09/2009 00:00 + 0.26
18/09/2009 00:00 + 0.28
19/09/2009 00:00 + 0.30
20/09/2009 00:00 + 0.27
21/09/2009 00:00 + 0.27
22/09/2009 00:00 + 0.26
23/09/2009 00:00 + 0.26
24/09/2009 00:00 + 0.28
25/09/2009 00:00 + 0.26
26/09/2009 00:00 + 0.26
27/09/2009 00:00 + 0.25
28/09/2009 00:00 + 0.27
29/09/2009 00:00 + 0.24
30/09/2009 00:00 + 0.24
01/10/2009 00:00 + 0.25
02/10/2009 00:00 + 0.26
03/10/2009 00:00 + 0.25
04/10/2009 00:00 + 0.27
05/10/2009 00:00 + 0.27
06/10/2009 00:00 + 0.38
07/10/2009 00:00 + 0.78
08/10/2009 00:00 + 0.52
09/10/2009 00:00 + 0.35
10/10/2009 00:00 + 0.30
11/10/2009 00:00 + 0.30
12/10/2009 00:00 + 0.29
13/10/2009 00:00 + 0.28
14/10/2009 00:00 + 0.28
15/10/2009 00:00 + 0.28
16/10/2009 00:00 + 0.28
17/10/2009 00:00 + 0.27
18/10/2009 00:00 + 0.27
19/10/2009 00:00 + 0.28
20/10/2009 00:00 + 0.53
21/10/2009 00:00 + 0.56
22/10/2009 00:00 + 0.95
23/10/2009 00:00 + 0.52
24/10/2009 00:00 + 0.38
25/10/2009 00:00 + 0.35
26/10/2009 00:00 + 0.34
27/10/2009 00:00 + 0.32
28/10/2009 00:00 + 0.32
29/10/2009 00:00 + 0.33
30/10/2009 00:00 + 0.32
31/10/2009 00:00 + 0.33
01/11/2009 00:00 + 0.34
02/11/2009 00:00 + 0.41
03/11/2009 00:00 + 0.37
04/11/2009 00:00 + 0.37
05/11/2009 00:00 + 0.39
06/11/2009 00:00 + 0.37
07/11/2009 00:00 + 0.39
08/11/2009 00:00 + 0.38
09/11/2009 00:00 + 0.44
10/11/2009 00:00 + 0.39
11/11/2009 00:00 + 0.37
12/11/2009 00:00 + 0.35
13/11/2009 00:00 + 0.38
14/11/2009 00:00 + 0.49
15/11/2009 00:00 + 0.49
16/11/2009 00:00 + 1.41
17/11/2009 00:00 + 1.27
18/11/2009 00:00 + 0.60
19/11/2009 00:00 + 0.52
20/11/2009 00:00 + 0.49
21/11/2009 00:00 + 0.60
22/11/2009 00:00 + 0.73
23/11/2009 00:00 + 0.50
24/11/2009 00:00 + 0.48
25/11/2009 00:00 + 0.56
26/11/2009 00:00 + 0.88
27/11/2009 00:00 + 0.59
28/11/2009 00:00 + 0.58
29/11/2009 00:00 + 0.96
30/11/2009 00:00 + 0.97
01/12/2009 00:00 + 0.69
02/12/2009 00:00 + 1.25
03/12/2009 00:00 + 0.93
04/12/2009 00:00 + 0.61
05/12/2009 00:00 + 0.28
06/12/2009 00:00 + 0.26
07/12/2009 00:00 + 0.57
08/12/2009 00:00 + 0.30
09/12/2009 00:00 + 0.25
10/12/2009 00:00 + 0.24
11/12/2009 00:00 + 0.24
12/12/2009 00:00 + 0.24
13/12/2009 00:00 + 0.24
14/12/2009 00:00 + 0.24
15/12/2009 00:00 + 0.24
16/12/2009 00:00 + 0.24
17/12/2009 00:00 + 0.24
18/12/2009 00:00 + 0.24
19/12/2009 00:00 + 0.24
20/12/2009 00:00 + 0.24
21/12/2009 00:00 + 0.64
22/12/2009 00:00 + 0.42
23/12/2009 00:00 + 0.55
24/12/2009 00:00 + 0.37
25/12/2009 00:00 + 0.27
26/12/2009 00:00 + 0.43
27/12/2009 00:00 + 0.25
28/12/2009 00:00 + 1.21
29/12/2009 00:00 + 1.32
30/12/2009 00:00 + 1.37
31/12/2009 00:00 + 1.30
01/01/2010 00:00 + 0.77
02/01/2010 00:00 + 0.57
03/01/2010 00:00 + 1.28
04/01/2010 00:00 + 1.24
05/01/2010 00:00 + 0.88
06/01/2010 00:00 + 0.69
07/01/2010 00:00 + 0.60
08/01/2010 00:00 + 0.51
09/01/2010 00:00 + 0.47
10/01/2010 00:00 + 0.46
11/01/2010 00:00 + 0.73
12/01/2010 00:00 + 1.43
27/06/2015 00:00 + 0.48
28/06/2015 00:00 + 0.45
29/06/2015 00:00 + 0.42
30/06/2015 00:00 + 0.39
01/07/2015 00:00 + 0.33
02/07/2015 00:00 + 0.29
03/07/2015 00:00 + 0.39
04/07/2015 00:00 + 0.43
05/07/2015 00:00 + 0.41
06/07/2015 00:00 + 0.48
07/07/2015 00:00 + 0.41
08/07/2015 00:00 + 0.28
09/07/2015 00:00 + 0.29
10/07/2015 00:00 + 0.44
11/07/2015 00:00 + 0.59
12/07/2015 00:00 + 0.60
13/07/2015 00:00 + 0.58
14/07/2015 00:00 + 0.57
15/07/2015 00:00 + 0.56
16/07/2015 00:00 + 0.56
17/07/2015 00:00 + 0.55
18/07/2015 00:00 + 0.62
19/07/2015 00:00 + 0.63
20/07/2015 00:00 + 0.63
21/07/2015 00:00 + 0.59
22/07/2015 00:00 + 0.55
23/07/2015 00:00 + 0.49
24/07/2015 00:00 + 0.46
25/07/2015 00:00 + 0.51
26/07/2015 00:00 + 0.59
27/07/2015 00:00 + 0.61
28/07/2015 00:00 + 0.54
29/07/2015 00:00 + 0.49
30/07/2015 00:00 + 0.45
31/07/2015 00:00 + 0.43
01/08/2015 00:00 + 0.47
02/08/2015 00:00 + 0.58
03/08/2015 00:00 + 0.56
04/08/2015 00:00 + 0.52
05/08/2015 00:00 + 0.47
06/08/2015 00:00 + 0.40
07/08/2015 00:00 + 0.32
08/08/2015 00:00 + 0.33
09/08/2015 00:00 + 0.36
10/08/2015 00:00 + 0.35
11/08/2015 00:00 + 0.25
12/08/2015 00:00 + 0.21
13/08/2015 00:00 + 0.21
14/08/2015 00:00 + 0.21
15/08/2015 00:00 + 0.24
16/08/2015 00:00 + 0.24
17/08/2015 00:00 + 0.21
18/08/2015 00:00 + 0.22
19/08/2015 00:00 + 0.22
20/08/2015 00:00 + 0.21
21/08/2015 00:00 + 0.25
22/08/2015 00:00 + 0.52
23/08/2015 00:00 + 0.59
24/08/2015 00:00 + 0.58
25/08/2015 00:00 + 0.57
26/08/2015 00:00 + 0.58
27/08/2015 00:00 + 0.57
28/08/2015 00:00 + 0.56
29/08/2015 00:00 + 0.52
30/08/2015 00:00 + 0.50
31/08/2015 00:00 + 0.54
01/09/2015 00:00 + 0.56
02/09/2015 00:00 + 0.57
03/09/2015 00:00 + 0.58
04/09/2015 00:00 + 0.61
05/09/2015 00:00 + 0.55
06/09/2015 00:00 + 0.56
07/09/2015 00:00 + 0.57
08/09/2015 00:00 + 0.57
09/09/2015 00:00 + 0.56
10/09/2015 00:00 + 0.56
11/09/2015 00:00 + 0.56
12/09/2015 00:00 + 0.55
13/09/2015 00:00 + 0.56
14/09/2015 00:00 + 0.58
15/09/2015 00:00 + 0.56
16/09/2015 00:00 + 0.62
17/09/2015 00:00 + 0.62
18/09/2015 00:00 + 0.60
19/09/2015 00:00 + 0.57
20/09/2015 00:00 + 0.58
21/09/2015 00:00 + 0.55
22/09/2015 00:00 + 0.49
23/09/2015 00:00 + 0.46
24/09/2015 00:00 + 0.39
25/09/2015 00:00 + 0.39
26/09/2015 00:00 + 0.36
27/09/2015 00:00 + 0.26
28/09/2015 00:00 + 0.23
29/09/2015 00:00 + 0.22
30/09/2015 00:00 + 0.25
01/10/2015 00:00 + 0.26
02/10/2015 00:00 + 0.25
03/10/2015 00:00 + 0.26
04/10/2015 00:00 + 0.28
05/10/2015 00:00 + 0.33
06/10/2015 00:00 + 0.44
07/10/2015 00:00 + 0.60
08/10/2015 00:00 + 0.61
09/10/2015 00:00 + 0.60
10/10/2015 00:00 + 0.62
11/10/2015 00:00 + 0.64
12/10/2015 00:00 + 0.67
13/10/2015 00:00 + 0.73
14/10/2015 00:00 + 0.65
15/10/2015 00:00 + 0.57
16/10/2015 00:00 + 0.29
17/10/2015 00:00 + 0.30
18/10/2015 00:00 + 0.41
19/10/2015 00:00 + 0.35
20/10/2015 00:00 + 0.29
21/10/2015 00:00 + 0.28
22/10/2015 00:00 + 0.27
23/10/2015 00:00 + 0.28
24/10/2015 00:00 + 0.28
25/10/2015 00:00 + 0.29
26/10/2015 00:00 + 0.38
27/10/2015 00:00 + 0.46
28/10/2015 00:00 + 0.36
29/10/2015 00:00 + 0.33
30/10/2015 00:00 + 0.30
31/10/2015 00:00 + 0.33
01/11/2015 00:00 + 0.35
02/11/2015 00:00 + 0.35
03/11/2015 00:00 + 0.32
04/11/2015 00:00 + 0.34
05/11/2015 00:00 + 0.35
06/11/2015 00:00 + 0.31
07/11/2015 00:00 + 0.30
08/11/2015 00:00 + 0.29
09/11/2015 00:00 + 0.28
10/11/2015 00:00 + 0.28
11/11/2015 00:00 + 0.28
12/11/2015 00:00 + 0.28
13/11/2015 00:00 + 0.28
14/11/2015 00:00 + 0.28
15/11/2015 00:00 + 0.28
16/11/2015 00:00 + 0.28
17/11/2015 00:00 + 0.29
18/11/2015 00:00 + 0.28
19/11/2015 00:00 + 0.28
20/11/2015 00:00 + 0.28
21/11/2015 00:00 + 0.28
22/11/2015 00:00 + 0.30
23/11/2015 00:00 + 0.38
24/11/2015 00:00 + 0.32
25/11/2015 00:00 + 0.30
26/11/2015 00:00 + 0.29
27/11/2015 00:00 + 0.29
28/11/2015 00:00 + 0.28
29/11/2015 00:00 + 0.28
30/11/2015 00:00 + 0.28
01/12/2015 00:00 + 0.29
02/12/2015 00:00 + 0.29
03/12/2015 00:00 + 0.29
04/12/2015 00:00 + 0.29
05/12/2015 00:00 + 0.29
06/12/2015 00:00 + 0.29
07/12/2015 00:00 + 0.29
08/12/2015 00:00 + 0.29
09/12/2015 00:00 + 0.28
10/12/2015 00:00 + 0.28
11/12/2015 00:00 + 0.28
12/12/2015 00:00 + 0.28
13/12/2015 00:00 + 0.28
14/12/2015 00:00 + 0.46
15/12/2015 00:00 + 0.38
16/12/2015 00:00 + 0.31
17/12/2015 00:00 + 0.28
18/12/2015 00:00 + 0.28
19/12/2015 00:00 + 0.28
20/12/2015 00:00 + 0.37
21/12/2015 00:00 + 0.30
22/12/2015 00:00 + 0.28
23/12/2015 00:00 + 0.28
24/12/2015 00:00 + 0.28
25/12/2015 00:00 + 0.28
26/12/2015 00:00 + 0.27
27/12/2015 00:00 + 0.28
28/12/2015 00:00 + 0.55
29/12/2015 00:00 + 0.48
30/12/2015 00:00 + 0.32
31/12/2015 00:00 + 0.35
01/01/2016 00:00 + 0.43
02/01/2016 00:00 + 0.46
03/01/2016 00:00 + 0.30
04/01/2016 00:00 + 0.35
05/01/2016 00:00 + 0.54
06/01/2016 00:00 + 0.40
07/01/2016 00:00 + 0.47
08/01/2016 00:00 + 0.55
09/01/2016 00:00 + 0.48
10/01/2016 00:00 + 0.40
11/01/2016 00:00 + 0.73
12/01/2016 00:00 + 0.41
13/01/2016 00:00 + 0.34
14/01/2016 00:00 + 0.36
15/01/2016 00:00 + 0.37
16/01/2016 00:00 + 0.28
17/01/2016 00:00 + 0.27
18/01/2016 00:00 + 0.26
19/01/2016 00:00 + 0.26
20/01/2016 00:00 + 0.39
21/01/2016 00:00 + 0.41
22/01/2016 00:00 + 0.39
23/01/2016 00:00 + 0.30
24/01/2016 00:00 + 0.27
25/01/2016 00:00 + 1.07
26/01/2016 00:00 + 0.60
27/01/2016 00:00 + 0.36
28/01/2016 00:00 + 0.39
29/01/2016 00:00 + 0.30
30/01/2016 00:00 + 0.24
31/01/2016 00:00 + 0.22
01/02/2016 00:00 + 0.21
02/02/2016 00:00 + 0.20
03/02/2016 00:00 + 0.19
04/02/2016 00:00 + 0.18
05/02/2016 00:00 + 0.18
06/02/2016 00:00 + 0.19
07/02/2016 00:00 + 0.27
08/02/2016 00:00 + 0.18
09/02/2016 00:00 + 0.18
10/02/2016 00:00 + 0.32
11/02/2016 00:00 + 0.41
12/02/2016 00:00 + 0.55
13/02/2016 00:00 + 0.84
14/02/2016 00:00 + 0.90
15/02/2016 00:00 + 0.64
16/02/2016 00:00 + 0.47
17/02/2016 00:00 + 0.46
18/02/2016 00:00 + 0.66
19/02/2016 00:00 + 0.39
20/02/2016 00:00 + 0.32
21/02/2016 00:00 + 0.29
22/02/2016 00:00 + 0.27
23/02/2016 00:00 + 0.25
24/02/2016 00:00 + 0.26
25/02/2016 00:00 + 0.26
26/02/2016 00:00 + 0.63
27/02/2016 00:00 + 1.06
28/02/2016 00:00 + 0.87
29/02/2016 00:00 + 0.50
01/03/2016 00:00 + 0.39
02/03/2016 00:00 + 0.33
03/03/2016 00:00 + 0.30
04/03/2016 00:00 + 0.29
05/03/2016 00:00 + 0.28
06/03/2016 00:00 + 0.27
07/03/2016 00:00 + 0.29
08/03/2016 00:00 + 0.26
09/03/2016 00:00 + 0.24
10/03/2016 00:00 + 0.25
11/03/2016 00:00 + 0.21
12/03/2016 00:00 + 0.20
13/03/2016 00:00 + 0.19
14/03/2016 00:00 + 0.18
15/03/2016 00:00 + 0.19
16/03/2016 00:00 + 0.18
17/03/2016 00:00 + 0.17
18/03/2016 00:00 + 0.30
19/03/2016 00:00 + 0.30
20/03/2016 00:00 + 0.28
21/03/2016 00:00 + 0.21
22/03/2016 00:00 + 0.22
23/03/2016 00:00 + 0.19
24/03/2016 00:00 + 0.18
25/03/2016 00:00 + 0.17
26/03/2016 00:00 + 0.18
27/03/2016 00:00 + 0.22
28/03/2016 00:00 + 0.17
29/03/2016 00:00 + 0.19
30/03/2016 00:00 + 0.20
31/03/2016 00:00 + 0.23
01/04/2016 00:00 + 0.18
02/04/2016 00:00 + 0.17
03/04/2016 00:00 + 0.20
04/04/2016 00:00 + 0.57
05/04/2016 00:00 + 0.39
06/04/2016 00:00 + 0.25
07/04/2016 00:00 + 0.21
08/04/2016 00:00 + 0.20
09/04/2016 00:00 + 0.20
10/04/2016 00:00 + 0.23
11/04/2016 00:00 + 0.22
12/04/2016 00:00 + 0.23
13/04/2016 00:00 + 0.28
14/04/2016 00:00 + 0.45
15/04/2016 00:00 + 0.95
16/04/2016 00:00 + 0.90
17/04/2016 00:00 + 0.48
18/04/2016 00:00 + 0.36
19/04/2016 00:00 + 0.49
20/04/2016 00:00 + 0.32
21/04/2016 00:00 + 0.28
22/04/2016 00:00 + 0.25
23/04/2016 00:00 + 0.23
24/04/2016 00:00 + 0.21
25/04/2016 00:00 + 0.20
26/04/2016 00:00 + 0.19
27/04/2016 00:00 + 0.19
28/04/2016 00:00 + 0.18
29/04/2016 00:00 + 0.18
30/04/2016 00:00 + 0.17
01/05/2016 00:00 + 0.17
02/05/2016 00:00 + 0.16
03/05/2016 00:00 + 0.16
04/05/2016 00:00 + 0.16
05/05/2016 00:00 + 0.26
06/05/2016 00:00 + 0.62
07/05/2016 00:00 + 0.86
08/05/2016 00:00 + 1.14
09/05/2016 00:00 + 0.94
10/05/2016 00:00 + 1.21
11/05/2016 00:00 + 0.76
12/05/2016 00:00 + 1.13
13/05/2016 00:00 + 0.64
14/05/2016 00:00 + 0.45
15/05/2016 00:00 + 0.37
16/05/2016 00:00 + 0.32
17/05/2016 00:00 + 0.28
18/05/2016 00:00 + 0.26
19/05/2016 00:00 + 0.23
20/05/2016 00:00 + 0.21
21/05/2016 00:00 + 0.19
22/05/2016 00:00 + 0.18
23/05/2016 00:00 + 0.16
24/05/2016 00:00 + 0.17
25/05/2016 00:00 + 0.17
26/05/2016 00:00 + 0.16
27/05/2016 00:00 + 0.14
28/05/2016 00:00 + 0.21
29/05/2016 00:00 + 0.17
30/05/2016 00:00 + 0.15
31/05/2016 00:00 + 0.14
01/06/2016 00:00 + 0.13
02/06/2016 00:00 + 0.14
03/06/2016 00:00 + 0.13
04/06/2016 00:00 + 0.12
05/06/2016 00:00 + 0.12
06/06/2016 00:00 + 0.13
07/06/2016 00:00 + 0.12
08/06/2016 00:00 + 0.13
09/06/2016 00:00 + 0.13
10/06/2016 00:00 + 0.11
11/06/2016 00:00 + 0.10
12/06/2016 00:00 + 0.10
13/06/2016 00:00 + 0.09
14/06/2016 00:00 + 0.12
15/06/2016 00:00 + 0.13
16/06/2016 00:00 + 0.13
17/06/2016 00:00 + 0.11
18/06/2016 00:00 + 0.11
19/06/2016 00:00 + 0.10
20/06/2016 00:00 + 0.08
21/06/2016 00:00 + 0.08
22/06/2016 00:00 + 0.09
23/06/2016 00:00 + 0.09
24/06/2016 00:00 + 0.13
25/06/2016 00:00 + 0.25
26/06/2016 00:00 + 0.39
27/06/2016 00:00 + 0.52
28/06/2016 00:00 + 0.56
29/06/2016 00:00 + 0.62
30/06/2016 00:00 + 0.65
01/07/2016 00:00 + 0.65
02/07/2016 00:00 + 0.68
03/07/2016 00:00 + 0.78
04/07/2016 00:00 + 0.75
05/07/2016 00:00 + 0.64
06/07/2016 00:00 + 0.60
07/07/2016 00:00 + 0.60
08/07/2016 00:00 + 0.58
09/07/2016 00:00 + 0.55
10/07/2016 00:00 + 0.44
11/07/2016 00:00 + 0.31
12/07/2016 00:00 + 0.23
13/07/2016 00:00 + 0.48
14/07/2016 00:00 + 0.68
15/07/2016 00:00 + 0.75
16/07/2016 00:00 + 0.70
17/07/2016 00:00 + 0.75
18/07/2016 00:00 + 0.75
19/07/2016 00:00 + 0.70
20/07/2016 00:00 + 0.71
21/07/2016 00:00 + 0.74
22/07/2016 00:00 + 0.76
23/07/2016 00:00 + 0.74
24/07/2016 00:00 + 0.75
16/05/2017 00:00 + 0.08
17/05/2017 00:00 + 0.08
18/05/2017 00:00 + 0.08
19/05/2017 00:00 + 0.08
20/05/2017 00:00 + 0.08
21/05/2017 00:00 + 0.08
22/05/2017 00:00 + 0.08
23/05/2017 00:00 + 0.08
24/05/2017 00:00 + 0.08
25/05/2017 00:00 + 0.08
26/05/2017 00:00 + 0.08
27/05/2017 00:00 + 0.08
28/05/2017 00:00 + 0.08
29/05/2017 00:00 + 0.08
30/05/2017 00:00 + 0.08
31/05/2017 00:00 + 0.08
01/06/2017 00:00 + 0.08
02/06/2017 00:00 + 0.08
03/06/2017 00:00 + 0.08
04/06/2017 00:00 + 0.08
05/06/2017 00:00 + 0.08
06/06/2017 00:00 + 0.08
07/06/2017 00:00 + 0.10
08/06/2017 00:00 + 0.20
09/06/2017 00:00 + 0.24
10/06/2017 00:00 + 0.40
11/06/2017 00:00 + 0.54
12/06/2017 00:00 + 0.51
13/06/2017 00:00 + 0.34
14/06/2017 00:00 + 0.26
15/06/2017 00:00 + 0.30
16/06/2017 00:00 + 0.27
17/06/2017 00:00 + 0.22
18/06/2017 00:00 + 0.13
19/06/2017 00:00 + 0.20
20/06/2017 00:00 + 0.24
21/06/2017 00:00 + 0.31
22/06/2017 00:00 + 0.48
23/06/2017 00:00 + 0.78
24/06/2017 00:00 + 0.89
25/06/2017 00:00 + 0.90
26/06/2017 00:00 + 0.90
27/06/2017 00:00 + 0.86
28/06/2017 00:00 + 0.89
29/06/2017 00:00 + 0.92
30/06/2017 00:00 + 0.91
01/07/2017 00:00 + 0.91
02/07/2017 00:00 + 0.80
03/07/2017 00:00 + 0.77
04/07/2017 00:00 + 0.80
05/07/2017 00:00 + 0.79
06/07/2017 00:00 + 0.80
07/07/2017 00:00 + 0.80
08/07/2017 00:00 + 0.68
09/07/2017 00:00 + 0.57
10/07/2017 00:00 + 0.43
11/07/2017 00:00 + 0.37
12/07/2017 00:00 + 0.39
13/07/2017 00:00 + 0.34
14/07/2017 00:00 + 0.35
15/07/2017 00:00 + 0.29
16/07/2017 00:00 + 0.25
17/07/2017 00:00 + 0.19
18/07/2017 00:00 + 0.10
19/07/2017 00:00 + 0.08
20/07/2017 00:00 + 0.08
21/07/2017 00:00 + 0.08
22/07/2017 00:00 + 0.10
23/07/2017 00:00 + 0.15
24/07/2017 00:00 + 0.11
25/07/2017 00:00 + 0.08
26/07/2017 00:00 + 0.08
27/07/2017 00:00 + 0.08
28/07/2017 00:00 + 0.08
29/07/2017 00:00 + 0.08
30/07/2017 00:00 + 0.08
31/07/2017 00:00 + 0.08
01/08/2017 00:00 + 0.08
02/08/2017 00:00 + 0.08
03/08/2017 00:00 + 0.08
04/08/2017 00:00 + 0.07
05/08/2017 00:00 + 0.08
06/08/2017 00:00 + 0.08
07/08/2017 00:00 + 0.08
08/08/2017 00:00 + 0.08
09/08/2017 00:00 + 0.08
16/07/2018 00:00 + 0.56
17/07/2018 00:00 + 0.60
18/07/2018 00:00 + 0.59
19/07/2018 00:00 + 0.57
20/07/2018 00:00 + 0.58
21/07/2018 00:00 + 0.58
22/07/2018 00:00 + 0.60
23/07/2018 00:00 + 0.59
24/07/2018 00:00 + 0.59
25/07/2018 00:00 + 0.58
26/07/2018 00:00 + 0.59
27/07/2018 00:00 + 0.59
28/07/2018 00:00 + 0.57
29/07/2018 00:00 + 0.54
30/07/2018 00:00 + 0.54
31/07/2018 00:00 + 0.59
01/08/2018 00:00 + 0.62
02/08/2018 00:00 + 0.66
03/08/2018 00:00 + 0.66
04/08/2018 00:00 + 0.68
05/08/2018 00:00 + 0.69
06/08/2018 00:00 + 0.69
07/08/2018 00:00 + 0.64
08/08/2018 00:00 + 0.60
09/08/2018 00:00 + 0.52
10/08/2018 00:00 + 0.46
11/08/2018 00:00 + 0.47
12/08/2018 00:00 + 0.51
13/08/2018 00:00 + 0.52
14/08/2018 00:00 + 0.52
15/08/2018 00:00 + 0.53
16/08/2018 00:00 + 0.50
17/08/2018 00:00 + 0.48
18/08/2018 00:00 + 0.48
19/08/2018 00:00 + 0.47
20/08/2018 00:00 + 0.46
21/08/2018 00:00 + 0.49
22/08/2018 00:00 + 0.50
23/08/2018 00:00 + 0.49
24/08/2018 00:00 + 0.52
25/08/2018 00:00 + 0.54
26/08/2018 00:00 + 0.52
27/08/2018 00:00 + 0.53
28/08/2018 00:00 + 0.50
29/08/2018 00:00 + 0.47
30/08/2018 00:00 + 0.48
31/08/2018 00:00 + 0.51
01/09/2018 00:00 + 0.54
02/09/2018 00:00 + 0.55
03/09/2018 00:00 + 0.57
04/09/2018 00:00 + 0.55
05/09/2018 00:00 + 0.51
06/09/2018 00:00 + 0.50
07/09/2018 00:00 + 0.48
08/09/2018 00:00 + 0.47
09/09/2018 00:00 + 0.41
10/09/2018 00:00 + 0.41
11/09/2018 00:00 + 0.44
12/09/2018 00:00 + 0.43
13/09/2018 00:00 + 0.45
14/09/2018 00:00 + 0.47
15/09/2018 00:00 + 0.46
16/09/2018 00:00 + 0.47
17/09/2018 00:00 + 0.49
18/09/2018 00:00 + 0.48
19/09/2018 00:00 + 0.45
20/09/2018 00:00 + 0.45
21/09/2018 00:00 + 0.47
22/09/2018 00:00 + 0.50
23/09/2018 00:00 + 0.51
24/09/2018 00:00 + 0.55
25/09/2018 00:00 + 0.56
26/09/2018 00:00 + 0.51
27/09/2018 00:00 + 0.49
28/09/2018 00:00 + 0.54
29/09/2018 00:00 + 0.55
30/09/2018 00:00 + 0.52
01/10/2018 00:00 + 0.53
02/10/2018 00:00 + 0.50
03/10/2018 00:00 + 0.44
04/10/2018 00:00 + 0.42
05/10/2018 00:00 + 0.44
06/10/2018 00:00 + 0.43
07/10/2018 00:00 + 0.44
08/10/2018 00:00 + 0.46
09/10/2018 00:00 + 0.49
10/10/2018 00:00 + 0.52
11/10/2018 00:00 + 0.51
12/10/2018 00:00 + 0.46
13/10/2018 00:00 + 0.54
14/10/2018 00:00 + 0.53
15/10/2018 00:00 + 0.56
16/10/2018 00:00 + 0.53
17/10/2018 00:00 + 0.52
30/08/2019 00:00 + 0.47
31/08/2019 00:00 + 0.47
01/09/2019 00:00 + 0.47
02/09/2019 00:00 + 0.46
03/09/2019 00:00 + 0.40
04/09/2019 00:00 + 0.42
05/09/2019 00:00 + 0.42
06/09/2019 00:00 + 0.43
07/09/2019 00:00 + 0.42
08/09/2019 00:00 + 0.40
09/09/2019 00:00 + 0.38
10/09/2019 00:00 + 0.36
11/09/2019 00:00 + 0.34
12/09/2019 00:00 + 0.34
13/09/2019 00:00 + 0.40
14/09/2019 00:00 + 0.44
15/09/2019 00:00 + 0.46
16/09/2019 00:00 + 0.48
17/09/2019 00:00 + 0.50
18/09/2019 00:00 + 0.49
19/09/2019 00:00 + 0.49
20/09/2019 00:00 + 0.51
21/09/2019 00:00 + 0.54
22/09/2019 00:00 + 0.46
23/09/2019 00:00 + 0.39
24/09/2019 00:00 + 0.40
25/09/2019 00:00 + 0.43
26/09/2019 00:00 + 0.45
27/09/2019 00:00 + 0.45
28/09/2019 00:00 + 0.47
29/09/2019 00:00 + 0.48
30/09/2019 00:00 + 0.51
01/10/2019 00:00 + 0.54
02/10/2019 00:00 + 0.54
03/10/2019 00:00 + 0.52
04/10/2019 00:00 + 0.54
05/10/2019 00:00 + 0.57
06/10/2019 00:00 + 0.55
07/10/2019 00:00 + 0.57
08/10/2019 00:00 + 0.60
09/10/2019 00:00 + 0.60
10/10/2019 00:00 + 0.61
11/10/2019 00:00 + 0.60
12/10/2019 00:00 + 0.64
13/10/2019 00:00 + 0.67
14/10/2019 00:00 + 0.65
15/10/2019 00:00 + 0.54
16/10/2019 00:00 + 0.56
17/10/2019 00:00 + 0.62
18/10/2019 00:00 + 0.67
19/10/2019 00:00 + 0.76
20/10/2019 00:00 + 0.68
21/10/2019 00:00 + 0.60
22/10/2019 00:00 + 0.58
23/10/2019 00:00 + 0.58
24/10/2019 00:00 + 0.48
25/10/2019 00:00 + 0.48
26/10/2019 00:00 + 0.50
27/10/2019 00:00 + 0.53
28/10/2019 00:00 + 0.59
29/10/2019 00:00 + 0.61
30/10/2019 00:00 + 0.57
31/10/2019 00:00 + 0.56
01/11/2019 00:00 + 0.59
02/11/2019 00:00 + 0.66
03/11/2019 00:00 + 0.62
04/11/2019 00:00 + 0.60
05/11/2019 00:00 + 0.51
06/11/2019 00:00 + 0.46
07/11/2019 00:00 + 0.47
08/11/2019 00:00 + 0.38
09/11/2019 00:00 + 0.33
10/11/2019 00:00 + 0.36
11/11/2019 00:00 + 0.43
12/11/2019 00:00 + 0.42
13/11/2019 00:00 + 0.48
14/11/2019 00:00 + 0.48
15/11/2019 00:00 + 0.42
16/11/2019 00:00 + 0.32
17/11/2019 00:00 + 0.39
18/11/2019 00:00 + 0.43
19/11/2019 00:00 + 0.40
20/11/2019 00:00 + 0.51
21/11/2019 00:00 + 0.53
22/11/2019 00:00 + 0.65
23/11/2019 00:00 + 0.58
24/11/2019 00:00 + 0.47
25/11/2019 00:00 + 0.53
26/11/2019 00:00 + 0.61
27/11/2019 00:00 + 0.61
28/11/2019 00:00 + 0.56
29/11/2019 00:00 + 0.55
30/11/2019 00:00 + 0.56
01/12/2019 00:00 + 0.57
02/12/2019 00:00 + 0.50
03/12/2019 00:00 + 0.42
04/12/2019 00:00 + 0.40
05/12/2019 00:00 + 0.34
06/12/2019 00:00 + 0.30
07/12/2019 00:00 + 0.30
08/12/2019 00:00 + 0.35
09/12/2019 00:00 + 0.36
10/12/2019 00:00 + 0.33
11/12/2019 00:00 + 0.35
12/12/2019 00:00 + 0.39
13/12/2019 00:00 + 0.47
14/12/2019 00:00 + 0.52
15/12/2019 00:00 + 0.61
16/12/2019 00:00 + 0.73
17/12/2019 00:00 + 0.56
18/12/2019 00:00 + 0.54
19/12/2019 00:00 + 0.68
20/12/2019 00:00 + 0.77
21/12/2019 00:00 + 0.81
22/12/2019 00:00 + 0.71
23/12/2019 00:00 + 0.59
24/12/2019 00:00 + 0.58
25/12/2019 00:00 + 0.58
26/12/2019 00:00 + 0.52
27/12/2019 00:00 + 0.46
28/12/2019 00:00 + 0.43
29/12/2019 00:00 + 0.42
30/12/2019 00:00 + 0.36
31/12/2019 00:00 + 0.37
01/01/2020 00:00 + 0.37
02/01/2020 00:00 + 0.40
03/01/2020 00:00 + 0.42
04/01/2020 00:00 + 0.41
05/01/2020 00:00 + 0.39
06/01/2020 00:00 + 0.36
07/01/2020 00:00 + 0.33
08/01/2020 00:00 + 0.37
09/01/2020 00:00 + 0.48
10/01/2020 00:00 + 0.46
11/01/2020 00:00 + 0.39
12/01/2020 00:00 + 0.37
13/01/2020 00:00 + 0.43
14/01/2020 00:00 + 0.58
15/01/2020 00:00 + 0.66
16/01/2020 00:00 + 0.65
17/01/2020 00:00 + 0.53
18/01/2020 00:00 + 0.59
19/01/2020 00:00 + 0.58
20/01/2020 00:00 + 0.51
21/01/2020 00:00 + 0.50
22/01/2020 00:00 + 0.53
23/01/2020 00:00 + 0.56
24/01/2020 00:00 + 0.53
25/01/2020 00:00 + 0.54
26/01/2020 00:00 + 0.45
03/02/2020 00:00 + 0.52
14/02/2020 00:00 + 0.48
15/02/2020 00:00 + 0.45
18/02/2020 00:00 + 0.38
19/02/2020 00:00 + 0.37
20/02/2020 00:00 + 0.42
22/02/2020 00:00 + 0.39
24/02/2020 00:00 + 0.42
27/02/2020 00:00 + 0.46
07/03/2020 00:00 + 0.42
08/03/2020 00:00 + 0.39
09/03/2020 00:00 + 0.42
11/03/2020 00:00 + 0.53
13/03/2020 00:00 + 0.54
14/03/2020 00:00 + 0.56
15/03/2020 00:00 + 0.57
16/03/2020 00:00 + 0.47
17/03/2020 00:00 + 0.45
18/03/2020 00:00 + 0.50
19/03/2020 00:00 + 0.58
20/03/2020 00:00 + 0.61
21/03/2020 00:00 + 0.55
22/03/2020 00:00 + 0.48
27/03/2020 00:00 + 0.57
28/03/2020 00:00 + 0.49
29/03/2020 00:00 + 0.49
30/03/2020 00:00 + 0.54
31/03/2020 00:00 + 0.52
01/04/2020 00:00 + 0.44
02/04/2020 00:00 + 0.41
03/04/2020 00:00 + 0.47
04/04/2020 00:00 + 0.54
05/04/2020 00:00 + 0.59
06/04/2020 00:00 + 0.50
07/04/2020 00:00 + 0.52
08/04/2020 00:00 + 0.53
09/04/2020 00:00 + 0.56
10/04/2020 00:00 + 0.55
11/04/2020 00:00 + 0.55
12/04/2020 00:00 + 0.57
13/04/2020 00:00 + 0.61
14/04/2020 00:00 + 0.58
15/04/2020 00:00 + 0.58
16/04/2020 00:00 + 0.55
17/04/2020 00:00 + 0.54
18/04/2020 00:00 + 0.51
20/04/2020 00:00 + 0.53
21/04/2020 00:00 + 0.50
22/04/2020 00:00 + 0.45
23/04/2020 00:00 + 0.48
24/04/2020 00:00 + 0.52
25/04/2020 00:00 + 0.52
26/04/2020 00:00 + 0.48
27/04/2020 00:00 + 0.46
28/04/2020 00:00 + 0.43
29/04/2020 00:00 + 0.43
30/04/2020 00:00 + 0.47
01/05/2020 00:00 + 0.49
02/05/2020 00:00 + 0.52
03/05/2020 00:00 + 0.62
04/05/2020 00:00 + 0.66
05/05/2020 00:00 + 0.55
06/05/2020 00:00 + 0.52
07/05/2020 00:00 + 0.57
08/05/2020 00:00 + 0.56
09/05/2020 00:00 + 0.53
10/05/2020 00:00 + 0.51
11/05/2020 00:00 + 0.52
12/05/2020 00:00 + 0.50
13/05/2020 00:00 + 0.52
14/05/2020 00:00 + 0.50
15/05/2020 00:00 + 0.44
16/05/2020 00:00 + 0.43
17/05/2020 00:00 + 0.40
18/05/2020 00:00 + 0.42
19/05/2020 00:00 + 0.46
21/05/2020 00:00 + 0.44
22/05/2020 00:00 + 0.42
23/05/2020 00:00 + 0.44
24/05/2020 00:00 + 0.47
25/05/2020 00:00 + 0.50
26/05/2020 00:00 + 0.57
27/05/2020 00:00 + 0.60
28/05/2020 00:00 + 0.60
29/05/2020 00:00 + 0.63
30/05/2020 00:00 + 0.62
31/05/2020 00:00 + 0.57
01/06/2020 00:00 + 0.54
02/06/2020 00:00 + 0.52
03/06/2020 00:00 + 0.51
04/06/2020 00:00 + 0.52
05/06/2020 00:00 + 0.44
06/06/2020 00:00 + 0.44
07/06/2020 00:00 + 0.39
08/06/2020 00:00 + 0.32
09/06/2020 00:00 + 0.33
10/06/2020 00:00 + 0.34
11/06/2020 00:00 + 0.36
12/06/2020 00:00 + 0.38
13/06/2020 00:00 + 0.32
14/06/2020 00:00 + 0.29
15/06/2020 00:00 + 0.28
16/06/2020 00:00 + 0.33
17/06/2020 00:00 + 0.40
18/06/2020 00:00 + 0.43
19/06/2020 00:00 + 0.40
20/06/2020 00:00 + 0.40
21/06/2020 00:00 + 0.44
22/06/2020 00:00 + 0.54
23/06/2020 00:00 + 0.61
24/06/2020 00:00 + 0.55
25/06/2020 00:00 + 0.52
26/06/2020 00:00 + 0.53
27/06/2020 00:00 + 0.59
28/06/2020 00:00 + 0.63
29/06/2020 00:00 + 0.69
30/06/2020 00:00 + 0.70
01/07/2020 00:00 + 0.63
02/07/2020 00:00 + 0.59
03/07/2020 00:00 + 0.53
04/07/2020 00:00 + 0.54
05/07/2020 00:00 + 0.61
06/07/2020 00:00 + 0.67
07/07/2020 00:00 + 0.69
08/07/2020 00:00 + 0.70
09/07/2020 00:00 + 0.65
10/07/2020 00:00 + 0.64
11/07/2020 00:00 + 0.64
12/07/2020 00:00 + 0.66
13/07/2020 00:00 + 0.64
14/07/2020 00:00 + 0.66
15/07/2020 00:00 + 0.67
16/07/2020 00:00 + 0.66
17/07/2020 00:00 + 0.69
18/07/2020 00:00 + 0.69
19/07/2020 00:00 + 0.63
20/07/2020 00:00 + 0.61
21/07/2020 00:00 + 0.60
22/07/2020 00:00 + 0.57
23/07/2020 00:00 + 0.60
24/07/2020 00:00 + 0.62
25/07/2020 00:00 + 0.59
26/07/2020 00:00 + 0.59
27/07/2020 00:00 + 0.56
28/07/2020 00:00 + 0.55
29/07/2020 00:00 + 0.60
30/07/2020 00:00 + 0.60
31/07/2020 00:00 + 0.52
01/08/2020 00:00 + 0.46
02/08/2020 00:00 + 0.42
03/08/2020 00:00 + 0.41
04/08/2020 00:00 + 0.44
05/08/2020 00:00 + 0.50
06/08/2020 00:00 + 0.56
07/08/2020 00:00 + 0.56
08/08/2020 00:00 + 0.55
09/08/2020 00:00 + 0.55
10/08/2020 00:00 + 0.57
11/08/2020 00:00 + 0.56
12/08/2020 00:00 + 0.49
13/08/2020 00:00 + 0.44
14/08/2020 00:00 + 0.46
15/08/2020 00:00 + 0.43
16/08/2020 00:00 + 0.41
17/08/2020 00:00 + 0.45
18/08/2020 00:00 + 0.50
19/08/2020 00:00 + 0.59
20/08/2020 00:00 + 0.63
21/08/2020 00:00 + 0.52
22/08/2020 00:00 + 0.46
23/08/2020 00:00 + 0.48
24/08/2020 00:00 + 0.55
25/08/2020 00:00 + 0.54
26/08/2020 00:00 + 0.51
27/08/2020 00:00 + 0.51
28/08/2020 00:00 + 0.53
29/08/2020 00:00 + 0.46
30/08/2020 00:00 + 0.40
31/08/2020 00:00 + 0.36
01/09/2020 00:00 + 0.38
02/09/2020 00:00 + 0.42
03/09/2020 00:00 + 0.37
04/09/2020 00:00 + 0.38
05/09/2020 00:00 + 0.46
06/09/2020 00:00 + 0.49
07/09/2020 00:00 + 0.49
08/09/2020 00:00 + 0.47
09/09/2020 00:00 + 0.44
10/09/2020 00:00 + 0.45
11/09/2020 00:00 + 0.46
12/09/2020 00:00 + 0.45
13/09/2020 00:00 + 0.45
14/09/2020 00:00 + 0.43
15/09/2020 00:00 + 0.42
16/09/2020 00:00 + 0.43
17/09/2020 00:00 + 0.47
18/09/2020 00:00 + 0.48
19/09/2020 00:00 + 0.39
20/09/2020 00:00 + 0.40
21/09/2020 00:00 + 0.43
22/09/2020 00:00 + 0.48
23/09/2020 00:00 + 0.54
24/09/2020 00:00 + 0.52
25/09/2020 00:00 + 0.44
26/09/2020 00:00 + 0.43
27/09/2020 00:00 + 0.51
28/09/2020 00:00 + 0.53
29/09/2020 00:00 + 0.51
30/09/2020 00:00 + 0.51
01/10/2020 00:00 + 0.55
02/10/2020 00:00 + 0.65
03/10/2020 00:00 + 0.59
04/10/2020 00:00 + 0.56
05/10/2020 00:00 + 0.51
06/10/2020 00:00 + 0.52
07/10/2020 00:00 + 0.59
08/10/2020 00:00 + 0.60
09/10/2020 00:00 + 0.59
10/10/2020 00:00 + 0.62
11/10/2020 00:00 + 0.62
12/10/2020 00:00 + 0.59
13/10/2020 00:00 + 0.61
14/10/2020 00:00 + 0.63
15/10/2020 00:00 + 0.60
16/10/2020 00:00 + 0.52
17/10/2020 00:00 + 0.53
18/10/2020 00:00 + 0.55
19/10/2020 00:00 + 0.64
20/10/2020 00:00 + 0.78
21/10/2020 00:00 + 0.70
22/10/2020 00:00 + 0.58
23/10/2020 00:00 + 0.44
24/10/2020 00:00 + 0.39
25/10/2020 00:00 + 0.52
26/10/2020 00:00 + 0.45
27/10/2020 00:00 + 0.41
28/10/2020 00:00 + 0.46
29/10/2020 00:00 + 0.44
30/10/2020 00:00 + 0.39
31/10/2020 00:00 + 0.38
01/11/2020 00:00 + 0.46
02/11/2020 00:00 + 0.50
03/11/2020 00:00 + 0.41
04/11/2020 00:00 + 0.43
05/11/2020 00:00 + 0.51
06/11/2020 00:00 + 0.53
07/11/2020 00:00 + 0.46
08/11/2020 00:00 + 0.48
09/11/2020 00:00 + 0.40
10/11/2020 00:00 + 0.33
+ + +
+
+
+ +
 
+ + + \ No newline at end of file diff --git a/tests/test_portugal.py b/tests/test_portugal.py new file mode 100644 index 0000000..ae8f8d9 --- /dev/null +++ b/tests/test_portugal.py @@ -0,0 +1,46 @@ +import os +import unittest +from unittest.mock import MagicMock, patch + +import pandas as pd +from pandas.testing import assert_frame_equal + +from rivretrieve import PortugalFetcher, constants + + +class TestPortugalFetcher(unittest.TestCase): + def setUp(self): + self.fetcher = PortugalFetcher() + self.test_data_dir = os.path.join(os.path.dirname(__file__), "test_data") + + def _load_mock_html(self, filename): + with open(os.path.join(self.test_data_dir, filename), "r") as f: + return f.read() + + @patch("rivretrieve.utils.requests_retry_session") + def test_get_data_stage(self, mock_session): + mock_response = MagicMock() + mock_html = self._load_mock_html("portugal_19B01H_stage.html") + mock_response.text = mock_html + mock_response.raise_for_status = MagicMock() + mock_session.return_value.get.return_value = mock_response + + gauge_id = "19B/01H" + variable = constants.STAGE_DAILY_MEAN + start_date = "2020-11-06" + end_date = "2020-11-10" + + result_df = self.fetcher.get_data(gauge_id, variable, start_date, end_date) + + expected_dates = pd.to_datetime(["2020-11-06", "2020-11-07", "2020-11-08", "2020-11-09", "2020-11-10"]) + expected_values = [0.53, 0.46, 0.48, 0.40, 0.33] + expected_df = pd.DataFrame( + {constants.TIME_INDEX: expected_dates, constants.STAGE_DAILY_MEAN: expected_values} + ).set_index(constants.TIME_INDEX) + + assert_frame_equal(result_df, expected_df) + mock_session.return_value.get.assert_called_once() + + +if __name__ == "__main__": + unittest.main() From ca5aeec2f68a24ddb6823d2716370f03f17338b6 Mon Sep 17 00:00:00 2001 From: Frederik Kratzert Date: Mon, 20 Oct 2025 09:22:20 +0000 Subject: [PATCH 3/7] Shorten portugal test data file --- tests/test_data/portugal_19B01H_stage.html | 23787 +------------------ tests/test_portugal.py | 8 +- 2 files changed, 133 insertions(+), 23662 deletions(-) diff --git a/tests/test_data/portugal_19B01H_stage.html b/tests/test_data/portugal_19B01H_stage.html index f017d21..956fe15 100644 --- a/tests/test_data/portugal_19B01H_stage.html +++ b/tests/test_data/portugal_19B01H_stage.html @@ -1,23676 +1,147 @@ - - - - + + + + + -SNIRH > Dados de Base - - - - - + SNIRH > Dados de Base + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + +
18/02/2002 00:00 + 0.37
19/02/2002 00:00 + 0.38
20/02/2002 00:00 + 0.35
+ + + + + + +
+
+ + + + +   + + + \ No newline at end of file diff --git a/tests/test_portugal.py b/tests/test_portugal.py index ae8f8d9..e635758 100644 --- a/tests/test_portugal.py +++ b/tests/test_portugal.py @@ -27,13 +27,13 @@ def test_get_data_stage(self, mock_session): gauge_id = "19B/01H" variable = constants.STAGE_DAILY_MEAN - start_date = "2020-11-06" - end_date = "2020-11-10" + start_date = "2002-02-16" + end_date = "2002-02-19" result_df = self.fetcher.get_data(gauge_id, variable, start_date, end_date) - expected_dates = pd.to_datetime(["2020-11-06", "2020-11-07", "2020-11-08", "2020-11-09", "2020-11-10"]) - expected_values = [0.53, 0.46, 0.48, 0.40, 0.33] + expected_dates = pd.to_datetime(["2002-02-16", "2002-02-17", "2002-02-18", "2002-02-19"]) + expected_values = [0.36, 0.35, 0.37, 0.38] expected_df = pd.DataFrame( {constants.TIME_INDEX: expected_dates, constants.STAGE_DAILY_MEAN: expected_values} ).set_index(constants.TIME_INDEX) From b7a0346cc19aeada9458539bbef72820d34da586 Mon Sep 17 00:00:00 2001 From: Frederik Kratzert Date: Mon, 20 Oct 2025 11:22:07 +0000 Subject: [PATCH 4/7] Add metadata download for Poland --- rivretrieve/base.py | 2 +- rivretrieve/poland.py | 45 +++++++++++++++++++++++++++++ tests/test_data/poland_metadata.csv | 3 ++ tests/test_poland.py | 26 +++++++++++++++++ 4 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 tests/test_data/poland_metadata.csv diff --git a/rivretrieve/base.py b/rivretrieve/base.py index 199a8ad..5c8ec52 100644 --- a/rivretrieve/base.py +++ b/rivretrieve/base.py @@ -51,7 +51,7 @@ def get_metadata(self) -> pd.DataFrame: """ # Default implementation returns an empty DataFrame. # Subclasses should override this method if metadata is available. - return pd.DataFrame().set_index("gauge_id") + raise NotImplementedError @staticmethod @abc.abstractmethod diff --git a/rivretrieve/poland.py b/rivretrieve/poland.py index 2a6fc7d..32e72b1 100644 --- a/rivretrieve/poland.py +++ b/rivretrieve/poland.py @@ -8,6 +8,7 @@ from datetime import datetime from pathlib import Path from typing import List, Optional +import io import pandas as pd import requests @@ -23,10 +24,54 @@ class PolandFetcher(base.RiverDataFetcher): BASE_URL = "https://danepubliczne.imgw.pl/data/dane_pomiarowo_obserwacyjne/dane_hydrologiczne/" CACHE_FILE = Path(os.path.dirname(__file__)) / "data" / "poland.zarr" + METADATA_URL = "https://danepubliczne.imgw.pl/data/dane_pomiarowo_obserwacyjne/dane_hydrologiczne/lista_stacji_hydro.csv" + METADATA_CSV = Path(os.path.dirname(__file__)) / "cached_site_data" / "poland_sites.csv" + + @staticmethod + def get_metadata(): + """Downloads the metadata CSV file, reads it into a pandas DataFrame, and saves it to CSV.""" + logger.info(f"Downloading metadata from {PolandFetcher.METADATA_URL}") + try: + r = utils.requests_retry_session().get(PolandFetcher.METADATA_URL) + r.raise_for_status() + + # The file is encoded in cp1250 + df = pd.read_csv(io.StringIO(r.content.decode("cp1250")), header=None, dtype=str) + + logger.info("Successfully downloaded and read metadata.") + + # Assign column names based on manual inspection of data on the https:// server + col_names = [ + constants.GAUGE_ID, + constants.STATION_NAME, + constants.RIVER, + "Kod Hydro" # Seems to be an alternativ station id. + ] + df.columns = col_names + + # Strip potential whitespace from gauge IDs + df[constants.GAUGE_ID] = df[constants.GAUGE_ID].str.strip() + + return df.set_index(constants.GAUGE_ID) + + except requests.exceptions.RequestException as e: + logger.error(f"Error downloading metadata: {e}") + raise + except Exception as e: + logger.error(f"Error processing or saving metadata: {e}") + raise @staticmethod def get_cached_metadata() -> pd.DataFrame: """Retrieves a DataFrame of available Polish gauge IDs and metadata.""" + if not PolandFetcher.METADATA_CSV.exists(): + logger.info("Metadata cache not found, downloading...") + PolandFetcher.download_and_cache_metadata() + + if not PolandFetcher.METADATA_CSV.exists(): + logger.error("Metadata cache not found after download attempt.") + return pd.DataFrame() + return utils.load_cached_metadata_csv("poland") @staticmethod diff --git a/tests/test_data/poland_metadata.csv b/tests/test_data/poland_metadata.csv new file mode 100644 index 0000000..1f817af --- /dev/null +++ b/tests/test_data/poland_metadata.csv @@ -0,0 +1,3 @@ +" 152140010","BIELINEK","Odra (1)","00101" +" 153140020","WIDUCHOWA","Odra (1)","00110" +" 153140030","GRYFINO","Odra (1)","00111" \ No newline at end of file diff --git a/tests/test_poland.py b/tests/test_poland.py index 1dd2061..b92970c 100644 --- a/tests/test_poland.py +++ b/tests/test_poland.py @@ -137,5 +137,31 @@ def mock_get_side_effect(url, *args, **kwargs): self.assertEqual(parsed_df[constants.TIME_INDEX].max(), pd.to_datetime("2022-02-28")) + @patch("rivretrieve.utils.requests_retry_session") + def test_get_metadata(self, mock_requests_session): + mock_session = MagicMock() + mock_requests_session.return_value = mock_session + + with open(self.test_data_dir / "poland_metadata.csv", "rb") as f: + mock_content = f.read() + + mock_response = MagicMock() + mock_response.content = mock_content + mock_response.raise_for_status = MagicMock() + mock_session.get.return_value = mock_response + + metadata_df = self.fetcher.get_metadata() + + expected_data = { + constants.GAUGE_ID: ["152140010", "153140020", "153140030"], + constants.STATION_NAME: ["BIELINEK", "WIDUCHOWA", "GRYFINO"], + constants.RIVER: ["Odra (1)", "Odra (1)", "Odra (1)"], + "Kod Hydro": ["00101", "00110", "00111"], + } + expected_df = pd.DataFrame(expected_data).set_index(constants.GAUGE_ID) + + assert_frame_equal(metadata_df, expected_df) + + if __name__ == "__main__": unittest.main() From 9b62df3990ab4a97b716a1f87b00283c8281da69 Mon Sep 17 00:00:00 2001 From: Frederik Kratzert Date: Mon, 20 Oct 2025 11:24:15 +0000 Subject: [PATCH 5/7] Update docstrings --- rivretrieve/poland.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/rivretrieve/poland.py b/rivretrieve/poland.py index 32e72b1..49579ee 100644 --- a/rivretrieve/poland.py +++ b/rivretrieve/poland.py @@ -29,7 +29,7 @@ class PolandFetcher(base.RiverDataFetcher): @staticmethod def get_metadata(): - """Downloads the metadata CSV file, reads it into a pandas DataFrame, and saves it to CSV.""" + """Downloads the metadata CSV file and converts it into a pandas DataFrame.""" logger.info(f"Downloading metadata from {PolandFetcher.METADATA_URL}") try: r = utils.requests_retry_session().get(PolandFetcher.METADATA_URL) @@ -63,15 +63,7 @@ def get_metadata(): @staticmethod def get_cached_metadata() -> pd.DataFrame: - """Retrieves a DataFrame of available Polish gauge IDs and metadata.""" - if not PolandFetcher.METADATA_CSV.exists(): - logger.info("Metadata cache not found, downloading...") - PolandFetcher.download_and_cache_metadata() - - if not PolandFetcher.METADATA_CSV.exists(): - logger.error("Metadata cache not found after download attempt.") - return pd.DataFrame() - + """Loads cache metadata.""" return utils.load_cached_metadata_csv("poland") @staticmethod From b8336152055c7965c28c0c068fd39fdd8c1ee2b5 Mon Sep 17 00:00:00 2001 From: Frederik Kratzert Date: Mon, 20 Oct 2025 11:27:31 +0000 Subject: [PATCH 6/7] Code formatting --- rivretrieve/poland.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rivretrieve/poland.py b/rivretrieve/poland.py index 49579ee..03f50c4 100644 --- a/rivretrieve/poland.py +++ b/rivretrieve/poland.py @@ -1,5 +1,6 @@ """Fetcher for Polish river gauge data from IMGW.""" +import io import logging import os import re @@ -8,7 +9,6 @@ from datetime import datetime from pathlib import Path from typing import List, Optional -import io import pandas as pd import requests @@ -48,10 +48,10 @@ def get_metadata(): "Kod Hydro" # Seems to be an alternativ station id. ] df.columns = col_names - + # Strip potential whitespace from gauge IDs df[constants.GAUGE_ID] = df[constants.GAUGE_ID].str.strip() - + return df.set_index(constants.GAUGE_ID) except requests.exceptions.RequestException as e: From 8cabe1b3b7bdc3df48d7e98f2ae9f2cc3a8aaf1a Mon Sep 17 00:00:00 2001 From: Frederik Kratzert Date: Mon, 20 Oct 2025 11:28:54 +0000 Subject: [PATCH 7/7] More code formatting --- rivretrieve/poland.py | 6 ++++-- tests/test_poland.py | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/rivretrieve/poland.py b/rivretrieve/poland.py index 03f50c4..b33894a 100644 --- a/rivretrieve/poland.py +++ b/rivretrieve/poland.py @@ -24,7 +24,9 @@ class PolandFetcher(base.RiverDataFetcher): BASE_URL = "https://danepubliczne.imgw.pl/data/dane_pomiarowo_obserwacyjne/dane_hydrologiczne/" CACHE_FILE = Path(os.path.dirname(__file__)) / "data" / "poland.zarr" - METADATA_URL = "https://danepubliczne.imgw.pl/data/dane_pomiarowo_obserwacyjne/dane_hydrologiczne/lista_stacji_hydro.csv" + METADATA_URL = ( + "https://danepubliczne.imgw.pl/data/dane_pomiarowo_obserwacyjne/dane_hydrologiczne/lista_stacji_hydro.csv" + ) METADATA_CSV = Path(os.path.dirname(__file__)) / "cached_site_data" / "poland_sites.csv" @staticmethod @@ -45,7 +47,7 @@ def get_metadata(): constants.GAUGE_ID, constants.STATION_NAME, constants.RIVER, - "Kod Hydro" # Seems to be an alternativ station id. + "Kod Hydro", # Seems to be an alternativ station id. ] df.columns = col_names diff --git a/tests/test_poland.py b/tests/test_poland.py index b92970c..6ad5983 100644 --- a/tests/test_poland.py +++ b/tests/test_poland.py @@ -136,7 +136,6 @@ def mock_get_side_effect(url, *args, **kwargs): self.assertEqual(parsed_df[constants.TIME_INDEX].min(), pd.to_datetime("2022-01-01")) self.assertEqual(parsed_df[constants.TIME_INDEX].max(), pd.to_datetime("2022-02-28")) - @patch("rivretrieve.utils.requests_retry_session") def test_get_metadata(self, mock_requests_session): mock_session = MagicMock()