From 048eed3af5fb4fa0ba2021d5b66a7a3a983af118 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 1 Feb 2024 14:38:54 +0100 Subject: [PATCH 01/13] new rst pages --- .vscode/settings.json | 4 +- source/a_tutorials.rst | 34 +++ source/a_user_interfaces.rst | 5 + source/b_apps.rst | 5 + source/b_catalogue.rst | 5 + source/b_management.rst | 5 + source/b_viewer.rst | 5 + source/c_endpoints.rst | 5 + source/c_introduction.rst | 5 + source/d_authentication_user_management.rst | 5 + source/d_faq.rst | 5 + source/d_self_service_portal.rst | 5 + source/e_release_notes.rst | 241 ++++++++++++++++++++ source/index.rst | 78 +++---- 14 files changed, 354 insertions(+), 53 deletions(-) create mode 100644 source/a_tutorials.rst create mode 100644 source/a_user_interfaces.rst create mode 100644 source/b_apps.rst create mode 100644 source/b_catalogue.rst create mode 100644 source/b_management.rst create mode 100644 source/b_viewer.rst create mode 100644 source/c_endpoints.rst create mode 100644 source/c_introduction.rst create mode 100644 source/d_authentication_user_management.rst create mode 100644 source/d_faq.rst create mode 100644 source/d_self_service_portal.rst create mode 100644 source/e_release_notes.rst diff --git a/.vscode/settings.json b/.vscode/settings.json index ab3eb0a..56c2d44 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,5 @@ { - "restructuredtext.confPath": "${workspaceFolder}\\source" + "restructuredtext.confPath": "${workspaceFolder}\\source", + "iis.configDir": "", + "esbonio.sphinx.confDir": "${workspaceFolder}\\source" } \ No newline at end of file diff --git a/source/a_tutorials.rst b/source/a_tutorials.rst new file mode 100644 index 0000000..cc3d3ed --- /dev/null +++ b/source/a_tutorials.rst @@ -0,0 +1,34 @@ +============================== +API tutorials +============================== + +We created interactive manuals for data scientists to use the Lizard API. +At the moment we have the following: + +0. Virtual Environment +---------------------- + +| `Virtual Environment Requirements `_ + + +1. Interactive Time Series API manual +------------------------------------- + +| `Notebook for /api/v4/timeseries `_ + + +2. Interactive Rasters API manual and download script +----------------------------------------------------- + +| `Notebook for /api/v4/rasters `_ + +| `Download script for /api/v4/rasters `_ + + +3. Learn to retrieve scenarios from the Lizard API + +| `Notebook for 3Di results / Scenarios in Lizard `_ + + +.. note:: + API v4 is the stable API version. API v3 is deprecated since june 2023. diff --git a/source/a_user_interfaces.rst b/source/a_user_interfaces.rst new file mode 100644 index 0000000..9fda68b --- /dev/null +++ b/source/a_user_interfaces.rst @@ -0,0 +1,5 @@ +=============== +User interfaces +=============== + +This page contains an explanation of the multiple user interfaces in Lizard! \ No newline at end of file diff --git a/source/b_apps.rst b/source/b_apps.rst new file mode 100644 index 0000000..a72f7f3 --- /dev/null +++ b/source/b_apps.rst @@ -0,0 +1,5 @@ +==== +Apps +==== + +This page contains an explanation of availibity of apps in Lizard! \ No newline at end of file diff --git a/source/b_catalogue.rst b/source/b_catalogue.rst new file mode 100644 index 0000000..03d51b8 --- /dev/null +++ b/source/b_catalogue.rst @@ -0,0 +1,5 @@ +========= +Catalogue +========= + +This page contains an explanation of the Lizard! \ No newline at end of file diff --git a/source/b_management.rst b/source/b_management.rst new file mode 100644 index 0000000..39b6782 --- /dev/null +++ b/source/b_management.rst @@ -0,0 +1,5 @@ +========== +Management +========== + +This page contains an explanation of the management page in Lizard! \ No newline at end of file diff --git a/source/b_viewer.rst b/source/b_viewer.rst new file mode 100644 index 0000000..22bf6b0 --- /dev/null +++ b/source/b_viewer.rst @@ -0,0 +1,5 @@ +====== +Viewer +====== + +This page contains an explanation of the Lizard Viewer! \ No newline at end of file diff --git a/source/c_endpoints.rst b/source/c_endpoints.rst new file mode 100644 index 0000000..5600e7c --- /dev/null +++ b/source/c_endpoints.rst @@ -0,0 +1,5 @@ +========= +Endpoints +========= + +This page contains an explanation of the endpoints in Lizard API! \ No newline at end of file diff --git a/source/c_introduction.rst b/source/c_introduction.rst new file mode 100644 index 0000000..0cb03b5 --- /dev/null +++ b/source/c_introduction.rst @@ -0,0 +1,5 @@ +============ +Introduction +============ + +This page contains an introduction to the Lizard API! \ No newline at end of file diff --git a/source/d_authentication_user_management.rst b/source/d_authentication_user_management.rst new file mode 100644 index 0000000..70f51ef --- /dev/null +++ b/source/d_authentication_user_management.rst @@ -0,0 +1,5 @@ +================================== +Authentication and User Management +================================== + +This page contains an explanation of Authentication and User Management in Lizard! \ No newline at end of file diff --git a/source/d_faq.rst b/source/d_faq.rst new file mode 100644 index 0000000..ed1e41b --- /dev/null +++ b/source/d_faq.rst @@ -0,0 +1,5 @@ +========================== +Frequently Asked Questions +========================== + +This page contains the Frequently Asked Questions regarding Lizard! \ No newline at end of file diff --git a/source/d_self_service_portal.rst b/source/d_self_service_portal.rst new file mode 100644 index 0000000..558e9d8 --- /dev/null +++ b/source/d_self_service_portal.rst @@ -0,0 +1,5 @@ +=================== +Self Service Portal +=================== + +This page contains an explanation of the self service portal of Lizard! \ No newline at end of file diff --git a/source/e_release_notes.rst b/source/e_release_notes.rst new file mode 100644 index 0000000..93ecedb --- /dev/null +++ b/source/e_release_notes.rst @@ -0,0 +1,241 @@ +.. raw:: html + + + +.. role:: blue + +============= +Release Notes +============= + + +January 12th 2024 +================= +Lizard backend updates: + +* Cloud-based import and export tasks (downloads come from Amazon S3 now) + +* Add pixel_size option to raster export in API + +* Set aggregation_type for scenario raster results, so that the Viewer shows statistics for polygon selections + +Lizard Viewer: + +* Enable raster export again and use pixel_size option + +* Show web notification when a raster export has finished + + +October 10th 2023 +================= +New viewer released: + +* Documentation for the new viewer: :doc:`b_viewer` + + +May 2nd 2023 +============ +New features in API v4: + +* Added spatial information to scenarios (based on raster results) + +* Extended raster '/data' sub-endpoint with option to retrieve data based on a polygon geometry and output format JSON + +Bug fixes: + +* Fixed resampling issue for requests on '/zonal' raster sub-endpoint with small polygons compared to raster pixelsize, no longer returning nulls + + +February 28th 2023 +================== +New features: + +* Raster alarms on Line and Polygon intersections + +* Vectortiles for assets, per assetset (combination of organisation and asset type) + +Other improvements: + +* Adjustments of the notification email for finished 3Di postprocessing + +* API v4 improvements: + + * Added upper_bounds (in combination with origin specifies spatial bounds in original projection) for rasters and raster sources + + * Extended API v4 with Favourites and Search endpoints + + * Add object information (of related asset) to locations listview in API v4 + + +July 26th 2022 +============== +This Lizard release contains a number of small but important bug fixes: + +* Lock raster source when deleting data, so that simultaneous imports do not fail + +* Reset metadata of raster source and layer when all data is deleted + +* Validation of alarm thresholds forcing unique input for values and warning levels + +* Improve error handling for raster zonal endpoint in case of too large request + + + +June 14th 2022 +============== + +* API v4 changes: + + * Enable POST on /scenarios endpoint + + * Enable PATCH and POST on /scenarios/{uuid}/results endpoint + +* Create Scenarios and attach raster results in Lizard Management + +* Add support for `info_format=application/geo+json` in GetFeatureInfo requests on Lizard WMS service + +* Allow nesting templated GeoBlocks in new GeoBlocks Rasters + +* Bugfix for timeseries percentiles endpoint: Using start and end parameters no longer results in a 404 error + + + +May 11th 2022 +============= + +* API v4 changes: + + * Introduction of Projects datamodel, to group Scenarios + + * Update of Scenarios metadata model: + + * Added fields `description` and `extra_metadata` + + * Field names changed (`simulation_start`, `simulation_end`, `simulation_identifier` and `model_identifier`) + + * Duplicate field `username` removed (information already available in `supplier` field) + +* Scenario Catalogue and Scenario Management updated based on added/changed features in API + +* Fix GetCapabilities request for WMS of templated GeoBlocks rasters + + + +March 11th 2022 +=============== + +* API v4 additions: + + * Labeltypes endpoint, including Labels and Label Parameters as subendpoint + + * Eventseries endpoint, including Events subendpoint + +* Specified error message when exporting more than 1 billion pixels in one raster export + + + +January 18th 2022 +=================== + +* Improvements in API v4: + + + + * Drop by-organisation subendpoint for most assets and enable pagination on the main endpoint, which means less restrictions in retrieving asset data + + * Make boundary filtering parameters (`boundary__type`, `boundary__name`, `boundary__id`) consistent with other related field filters, i.e. with double underscores (backwards compatible for single underscores) + + * Add filtering on `last_modified`, `created` and `access_modifier` fields in endpoints + + * Add filtering on `start` and `end` fields for timeseries + + * Add filtering on `timeseries__start` and `timeseries__end` for locations + + + +* Update of PostGIS, improving the performance of spatial filteirng in the API +* Add `application/json` option for WMS GetLegendGraphic requests, according to Geoserver specifications +* Limit task that relates locations to assets to only apply to unrelated locations, to improve performance +* Add button in Geoblocks management to open an item in the Lizard Viewer +* Bugfix for number input fields in Lizard Management (on-the-fly validation of decimal number input) +* Various other bugfixes in Lizard Management + + + + +August 2021 Release +===================== +We’re happy to announce the release of Lizard Homepage. + +Important changes +------------------- + +* Lizard Homepage +* Datasets will be called Layer collections +* Lizard Contracts endpoint +* Steadier 3Di-result-processing + +The story behind  the new homepage ++++++++++++++++++++++++++++++++++++++++ + +The past year, many new functionalities have been developed. The Lizard data warehouse and analytics platform has become a solution for many consultants working with environmental data and for setting up digital services. We see that next to the Viewer, the Catalogue, Management and API are increasingly more important for users. The Homepage ensures easy access to functionalities for all users. + + +.. image:: /images/a_homepage.jpg + + + +Action required? ++++++++++++++++++++ + +The introduction of the homepage requires no action in itself. What we do recommend to do is to check if you or your colleagues have created quick links to Lizard. This is only needed for links to the Lizard Viewer, for example a link from your intranet or bookmark bar to a map or graph in Lizard.  If your link is broken and results in a 404 error, you can make the following adjustment: + + + +1) Search for links going to {yourorganisation}.lizard.net/ + +2) Change this link to {yourorganisation}.lizard.net/viewer/. + + + +Example 1: Link to viewer + +https://demo.lizard.net/en/map/ +will be +https://demo.lizard.net/viewer/en/map/ + + + + +Example 2: Link to a favourite + +https://demo.lizard.net/favourites/55db162c-581a-491f-8579-b52e7e68d2bd +will be +https://demo.lizard.net/viewer/favourites/55db162c-581a-491f-8579-b52e7e68d2bd + +.. note:: + NB: Within Lizard all settings and references will be adjusted by us, for example links in dashboards.  + Links to the API will not change.  + +.. note:: + The terms Portal and Viewer were both used for {yourorganisation}.lizard.net/. The Portal will remain the base url (which now leads to the Homepage). The Viewer is the new url {yourorganisation}.lizard.net/viewer/ + + + + + +June 2021 Release +===================== +We’re happy to announce the newest release of Lizard Management. + +* New time series management interface. +* New user management interface. + + +.. raw:: html + +
+ +
+ +If you have questions about this release or if you’re interested in features please contact us via info@lizard.net diff --git a/source/index.rst b/source/index.rst index 00e03a5..c046ebc 100644 --- a/source/index.rst +++ b/source/index.rst @@ -7,70 +7,44 @@ Welcome to the Lizard documentation! .. toctree:: :maxdepth: 1 - :caption: Introduction - :name: Introduction + :caption: Getting Started + :name: Getting Started with Lizard - a_lizard - a_homepage - a_releasenotes + a_user_interfaces + a_tutorials .. toctree:: - :maxdepth: 2 - :caption: Authorisation and Authentication - :name: Authentication, Authorisation and User Management + :maxdepth: 1 + :caption: User Manuals + :name: User Manuals - b_usermanagement + b_catalogue + b_viewer + b_management + b_apps .. toctree:: - :maxdepth: 2 - :caption: Data Management - :name: Data Management + :maxdepth: 1 + :caption: API + :name: Lizard API - c_general - c_rasters - c_wms - c_layercollections - c_timeseries - c_scenarios - c_labels + c_introduction + c_endpoints .. toctree:: - :maxdepth: 2 - :caption: Data Exchange - :name: Data Exchange + :maxdepth: 1 + :caption: Support + :name: Support - d_datatypes - d_general - c_apifunctional - d_apitechnical - d_apitutorials - d_qgisplugin + d_authentication_user_management + d_faq + d_self_service_portal .. toctree:: - :maxdepth: 2 - :caption: Visualisation - :name: Visualisation - - e_viewer - e_dashboard - e_catalog - e_lizardwms - -.. toctree:: - :maxdepth: 2 - :caption: Advanced Analysis - :name: Advanced Analysis - - f_geoblocks - f_alarms - - - -.. toctree:: - :maxdepth: 2 - :caption: Service and Support - :name: Service and Support + :maxdepth: 1 + :caption: Release Notes + :name: Release Notes - g_servicesupport + e_release_notes \ No newline at end of file From 4b92cb6ad5ea871a92a7a5cab19c005dc7141f10 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 1 Feb 2024 14:41:09 +0100 Subject: [PATCH 02/13] Move to old files map --- source/{ => old_files}/a_homepage.rst | 0 source/{ => old_files}/a_lizard.rst | 0 source/{ => old_files}/a_releasenotes.rst | 0 source/{ => old_files}/b_usermanagement.rst | 0 source/{ => old_files}/c_apifunctional.rst | 0 source/{ => old_files}/c_general.rst | 0 source/{ => old_files}/c_labels.rst | 0 source/{ => old_files}/c_layercollections.rst | 0 source/{ => old_files}/c_rasters.rst | 0 source/{ => old_files}/c_scenarios.rst | 0 source/{ => old_files}/c_timeseries.rst | 0 source/{ => old_files}/c_wms.rst | 0 source/{ => old_files}/d_apitechnical.rst | 0 source/{ => old_files}/d_apitutorials.rst | 0 source/{ => old_files}/d_datatypes.rst | 0 source/{ => old_files}/d_general.rst | 0 source/{ => old_files}/d_qgisplugin.rst | 0 source/{ => old_files}/e_catalog.rst | 0 source/{ => old_files}/e_dashboard.rst | 0 source/{ => old_files}/e_lizardwms.rst | 0 source/{ => old_files}/e_viewer.rst | 0 source/{ => old_files}/f_alarms.rst | 0 source/{ => old_files}/f_geoblocks.rst | 0 source/{ => old_files}/g_servicesupport.rst | 0 24 files changed, 0 insertions(+), 0 deletions(-) rename source/{ => old_files}/a_homepage.rst (100%) rename source/{ => old_files}/a_lizard.rst (100%) rename source/{ => old_files}/a_releasenotes.rst (100%) rename source/{ => old_files}/b_usermanagement.rst (100%) rename source/{ => old_files}/c_apifunctional.rst (100%) rename source/{ => old_files}/c_general.rst (100%) rename source/{ => old_files}/c_labels.rst (100%) rename source/{ => old_files}/c_layercollections.rst (100%) rename source/{ => old_files}/c_rasters.rst (100%) rename source/{ => old_files}/c_scenarios.rst (100%) rename source/{ => old_files}/c_timeseries.rst (100%) rename source/{ => old_files}/c_wms.rst (100%) rename source/{ => old_files}/d_apitechnical.rst (100%) rename source/{ => old_files}/d_apitutorials.rst (100%) rename source/{ => old_files}/d_datatypes.rst (100%) rename source/{ => old_files}/d_general.rst (100%) rename source/{ => old_files}/d_qgisplugin.rst (100%) rename source/{ => old_files}/e_catalog.rst (100%) rename source/{ => old_files}/e_dashboard.rst (100%) rename source/{ => old_files}/e_lizardwms.rst (100%) rename source/{ => old_files}/e_viewer.rst (100%) rename source/{ => old_files}/f_alarms.rst (100%) rename source/{ => old_files}/f_geoblocks.rst (100%) rename source/{ => old_files}/g_servicesupport.rst (100%) diff --git a/source/a_homepage.rst b/source/old_files/a_homepage.rst similarity index 100% rename from source/a_homepage.rst rename to source/old_files/a_homepage.rst diff --git a/source/a_lizard.rst b/source/old_files/a_lizard.rst similarity index 100% rename from source/a_lizard.rst rename to source/old_files/a_lizard.rst diff --git a/source/a_releasenotes.rst b/source/old_files/a_releasenotes.rst similarity index 100% rename from source/a_releasenotes.rst rename to source/old_files/a_releasenotes.rst diff --git a/source/b_usermanagement.rst b/source/old_files/b_usermanagement.rst similarity index 100% rename from source/b_usermanagement.rst rename to source/old_files/b_usermanagement.rst diff --git a/source/c_apifunctional.rst b/source/old_files/c_apifunctional.rst similarity index 100% rename from source/c_apifunctional.rst rename to source/old_files/c_apifunctional.rst diff --git a/source/c_general.rst b/source/old_files/c_general.rst similarity index 100% rename from source/c_general.rst rename to source/old_files/c_general.rst diff --git a/source/c_labels.rst b/source/old_files/c_labels.rst similarity index 100% rename from source/c_labels.rst rename to source/old_files/c_labels.rst diff --git a/source/c_layercollections.rst b/source/old_files/c_layercollections.rst similarity index 100% rename from source/c_layercollections.rst rename to source/old_files/c_layercollections.rst diff --git a/source/c_rasters.rst b/source/old_files/c_rasters.rst similarity index 100% rename from source/c_rasters.rst rename to source/old_files/c_rasters.rst diff --git a/source/c_scenarios.rst b/source/old_files/c_scenarios.rst similarity index 100% rename from source/c_scenarios.rst rename to source/old_files/c_scenarios.rst diff --git a/source/c_timeseries.rst b/source/old_files/c_timeseries.rst similarity index 100% rename from source/c_timeseries.rst rename to source/old_files/c_timeseries.rst diff --git a/source/c_wms.rst b/source/old_files/c_wms.rst similarity index 100% rename from source/c_wms.rst rename to source/old_files/c_wms.rst diff --git a/source/d_apitechnical.rst b/source/old_files/d_apitechnical.rst similarity index 100% rename from source/d_apitechnical.rst rename to source/old_files/d_apitechnical.rst diff --git a/source/d_apitutorials.rst b/source/old_files/d_apitutorials.rst similarity index 100% rename from source/d_apitutorials.rst rename to source/old_files/d_apitutorials.rst diff --git a/source/d_datatypes.rst b/source/old_files/d_datatypes.rst similarity index 100% rename from source/d_datatypes.rst rename to source/old_files/d_datatypes.rst diff --git a/source/d_general.rst b/source/old_files/d_general.rst similarity index 100% rename from source/d_general.rst rename to source/old_files/d_general.rst diff --git a/source/d_qgisplugin.rst b/source/old_files/d_qgisplugin.rst similarity index 100% rename from source/d_qgisplugin.rst rename to source/old_files/d_qgisplugin.rst diff --git a/source/e_catalog.rst b/source/old_files/e_catalog.rst similarity index 100% rename from source/e_catalog.rst rename to source/old_files/e_catalog.rst diff --git a/source/e_dashboard.rst b/source/old_files/e_dashboard.rst similarity index 100% rename from source/e_dashboard.rst rename to source/old_files/e_dashboard.rst diff --git a/source/e_lizardwms.rst b/source/old_files/e_lizardwms.rst similarity index 100% rename from source/e_lizardwms.rst rename to source/old_files/e_lizardwms.rst diff --git a/source/e_viewer.rst b/source/old_files/e_viewer.rst similarity index 100% rename from source/e_viewer.rst rename to source/old_files/e_viewer.rst diff --git a/source/f_alarms.rst b/source/old_files/f_alarms.rst similarity index 100% rename from source/f_alarms.rst rename to source/old_files/f_alarms.rst diff --git a/source/f_geoblocks.rst b/source/old_files/f_geoblocks.rst similarity index 100% rename from source/f_geoblocks.rst rename to source/old_files/f_geoblocks.rst diff --git a/source/g_servicesupport.rst b/source/old_files/g_servicesupport.rst similarity index 100% rename from source/g_servicesupport.rst rename to source/old_files/g_servicesupport.rst From 1e677da34255866af7d692c3ea15bbed5dfebe26 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 1 Feb 2024 14:52:47 +0100 Subject: [PATCH 03/13] Update viewer info from old page --- source/b_viewer.rst | 488 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 487 insertions(+), 1 deletion(-) diff --git a/source/b_viewer.rst b/source/b_viewer.rst index 22bf6b0..5f74043 100644 --- a/source/b_viewer.rst +++ b/source/b_viewer.rst @@ -2,4 +2,490 @@ Viewer ====== -This page contains an explanation of the Lizard Viewer! \ No newline at end of file +The Lizard Viewer is a graphical user interface (GUI) in which measuring locations, parameters, time series, rasters and other layers are visible. +Below you will find an overview of a general Lizard Viewer instance. +Every aspect of the viewer will be discussed and in the end we will supply a series of short tutorials designed to kick-start your Lizard experience. +These are short and simple explanations of commonly used features that might require a short explanation. +If you are struggling with any of the features, feel free to contact the `service-desk `_ for guidance. + +Elements Overview +=================== + +The Lizard Viewer can be divided into 4 sections, with each their own elements. +We will handle items within a section from left to right, top to bottom: + +1. The Top-bar: + + * 1.1: Lizard Menu + * 1.2: Search Bar + * 1.3: Map / Graph + * 1.4: Settings and Login + +2. The Viewport + + * 2.1: Select Menu + + * 2.1.A: Cursor + * 2.1.B: Point + * 2.1.C: Line + * 2.1.D: Polygon + * 2.1.E: North-South + * 2.1.F: Hotkeys + + * 2.2: Time Panel + + * 2.2.A: Datetime + * 2.2.B: Time Frame Selection + * 2.2.C: Expand / Collapse + * 2.2.D: Time-bar + * 2.2.E: End / Start Date + * 2.2.F: Zoom Functions + +3. The Left Panel + + * 3.1: Minimize + * 3.2: Layers button + * 3.3: Add new x + * 3.4: Layers, assets and selections overview + + * 3.4.A: Assets and selections + * 3.4.B: Layers + + * 3.5: Base layer + +4. The Right Panel + + * 4.1: Minimize + * 4.2: Layer details + + * 4.2.A: Legend + * 4.2.B: Controls + * 4.2.C: Export raster + * 4.2.D: Catalog + + * 4.3: Asset and selection details + + * 4.3.A: General information + * 4.3.B: Time series data selection + * 4.3.C: Time series data display + * 4.3.D: Time series export function + * 4.3.E: Controls + +.. image:: /images/e_overview_01.jpg + +1. Top-Bar +-------------------- + +.. image:: /images/e_topbar_01.jpg + +**1.1 Lizard Menu** +^^^^^^^^^^^^^^^^^^^^^^^^^^ +The Lizard gives acts as a shortcut to the homepage. At the homepage you can find the catalogue, the viewer, the management page and the API. +At the homepage there are also apps available, for example dashboards or FloodSmart. +At the bottom there are some useful links, like the documentation and support links. + +**1.2 Search Bar** +^^^^^^^^^^^^^^^^^^^^^^^^^^ +At the search bar you can lookup items or locations, depending on the setting used. +The right side of the search-bar displays the currently selected option. +Clicking results in a drop-down menu with the available search options; currently assets or addresses. +A location search will move the viewport to the desired location. +The search of an asset will add the asset to the selection panel (left), select the asset and move the screen accordingly. + +**1.3 Mode change** +^^^^^^^^^^^^^^^^^^^^^^^^^^ +The mode change buttons allow you to switch between map and graph mode. +It should be noted that it is not possible to display graphs if no assets or selections of temporal rasters are provided. + +**1.4 User menu** +^^^^^^^^^^^^^^^^^^^^^^^^^^ +Offers a drop-down menu in regards to links, support tools, settings and the login. + +.. image:: /images/e_usermenu_01.jpg + +There is a link to the homepage available under ``home``, and a link to the documentation at ``help``. + +To get familiar with the entire viewer one can use the ``Start a tour`` button. +This button will start a 'tour', during which the functionality of the viewer is introduced and explained briefly. +The tour has a lot of functionality, allowing you to move forward and backward through the items. +Furthermore, once confident you can skip the rest of the tour or if you would close the tour screen it can be resumed by clicking on the pulsing blue dot. +If the tour is skipped at any point it can be restarted by using the ``Start a tour`` button once more. + +Clicking ``Export`` will take you to the exports overview. +In this overview you can see the status of your exports and download or delete any available exports. + +Next up is ``favourites``, which will open the favourites overview screen. +Similar to a bookmark, favourites allows you to save the current view, in both map and graph mode, to be saved. +This includes the view-box, the layers and assets and time frame. +This 'favourite' can then be loaded from the menu to quickly re-access the saved view. +By using the option ``make time relative`` the user is able to determine if a favourite should remain static, or adjust based on the time past. + +We then find two language options: ``EN`` for English and ``NL`` for Dutch. +Clicking on between the EN and NL buttons will swap the language settings for the entire Lizard Viewer. + +Finally we find the ``Reset Application`` and ``Login`` / ``Logout`` buttons. +``Reset Application`` as the name suggests resets the Lizard Viewer. +This can be useful when you want to have a clean slate to work in. + + +2. Viewport +-------------------- + +The viewport is the section of the screen used to view the map and your results. +There are two ways to interact with the viewport: + +1. With the selection tool +2. With the time-bar + +.. image:: /images/e_viewport_01.jpg + +**2.1 Select Menu** +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The select menu determines the way you interact with the layers with the cursor and is found at the top of the viewport. +There is a variety of options to choose from. +At all times you are able to move the view through dragging. + +.. tip:: + If you hold CTRL while dragging you turn the angle of the viewport. + +.. image:: /images/e_selectmenu_01.jpg + +2.1.A: Cursor + +The Cursor when selected allows you to select individual assets by clicking on them. +If you want to select multiple assets, CTRL has to be pressed while clicking. + +2.1.B: Points + +Allows you to create one or multiple points that display the value of a raster, or the time series for temporal rasters. +As a default only one point can be created. This way clutter is avoided. +If you are interested in using multiple points you could use CTRL-clicking to add multiple point assets. + +2.1.C: Line + +Able to create a straight line. +If you click once you start the line placement. +The second click will complete the line. +If instead of selecting a different point, you re-click the start, the line placement will be cancelled. +Could be used to examine the slope of a hill or mountain. +With CTRL-clicking one can create multiple lines. + +2.1.D: Polygon + +The polygon method allows the user to create figures with 3 or more corners. +By re-clicking on the previously defined corner you cancel it. +It allows you to inspect the statistics of a certain area. +Like what percentage of the selected area consists of a certain land-use type. + +2.1.E: North-South + +If you used CTRL+dragging to move the angle of the screen you can use this button to return the view to top-down North. + +2.1.F: Hotkeys + +There are multiple hotkeys within the drop-down menu. +Every shortcut can be accessed by clicking on it, or using the key that is displayed on the right side. + +.. image:: /images/e_shortcuts_01.jpg + + +* Zoom-in [+]: Zooms in for the viewport +* Zoom-out [-]: Zooms out for the viewport +* Toggle baselayer labels [L]: Toggles the labels within the baselayer, like names of locations. +* Full Map [F]: Toggles the right and left panel to provide a full view of the map. +* Show Time Period [T]: Toggles the time-bar in the bottom. + + +**2.2 Time Panel** +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The time panel is related to all things time. +It is located at the bottom of the viewport. + +.. image:: /images/e_timepanel_01.jpg + +The time panel has a few mentionable items: + +2.2.A: Datetime Display + +The datetime display shows you the time frame that is currently viewed on screen. + +2.2.B: Time Period Selection + +The time period selection tool in the upper-left corner of the panel allows you to select the time period you would like to view in the time-bar. +There are a few standard settings, like one day ``1D``, a week ``7D``, a month ``1M``, a year ``1Y`` or five years ``5Y``. +These will all show you the time frame between now and the time period. +Thus 1D will for the 27th of September 2023 12:05 will the time from 26/09/2023 12:05 till 27/09/2023 12:05. + +The ``MAX`` and ``NOW`` button function slightly differently. +When one clicks ``NOW`` the time-bar centres on the present time, with one day in advance and one day prior forming the time-bar edges. +The ``MAX`` button zooms to the time span of the entire data set available. + +.. note:: + ``MAX`` results in a view of the entire time frame during which data can be found for the **selected** layers. + +2.2.C: Expand / Collapse + +The ``Expand / Collapse`` button can be found in the top-right corner. +It allows the user to minimize the time panel in two steps: + +1. The first time you use click the button: + + * The zoom functionality will be removed from the bar together with the time period selection + * The time period selection buttons are removed + +.. image:: /images/e_minimize_01.jpg + +2. The second button fully minimizes the panel: + + * The time-bar itself is removed + * The start and end dates of the interval have been removed + * The datetime date display becomes the current view date and remains visible + +.. image:: /images/e_minimize_02.jpg + +2.2.D: Time-bar:: +The time-bar displays the time interval of interest. +If a layer has been selected, the data from this time period will be displayed in the right panel. + +.. tip:: + Support ``SHIFT-click`` dragging functionality to zoom into a selection of the time-bar. + +.. tip:: + It is also possible to zoom in or out of the temporal time frame with the ``Scroll`` button on the mouse. + + +2.2.E: End / Start Date + +At the edges, just below the time-bar, you will find the interval between which the data is displayed in the right panel. +For animations, this will be the start and end date. +You are able to adjust these dates in a multitude of ways. +One is to scroll in the time-bar itself. +Dependent on the level of initial zoom the addition or removal of the dates can range from single minutes to multiple years, the build up is gradual. + +Another way to update the dates on one side is clicking on the datetime and using the calendar to select a date (and possibly a time). + + +2.2.F: Zoom Functions + +All the way at the bottom within the middle of the time panel you will find the zoom-buttons. +Logically, the magnifying glass with a ``+`` icon is the zoom-in, with the ``-`` representing the zoom-out functionality. + + +3. Left Panel +-------------------- + +.. image:: /images/e_leftpanel_01.jpg + +**3.1 Minimize** +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Allows you to move the side panel of the screen so you have complete better of the map itself. + +.. image:: /images/e_minimize_03.jpg + +**3.2 Layers Button** +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The layers button displays the number of layers that are currently available within the left panel. +By clicking this button all layers are selected, if all layers are selected it functions as a de-select all button. + +**3.3 Add new x** +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Opens a window that allows you to select a new: + +- Layer +- Asset +- Asset set +- WMS layer +- Scenario + +.. image:: /images/e_addmenu_01.jpg + +In the menu that opens after clicking the ``+``-icon you are able to select what kind of data category you would like to add to your selection. + +.. image:: /images/e_addraster_01.jpg + +An example of how your screen could look if you wanted to add a layer of the type 'raster'. + +3.3.A: Home + +If one would like to switch to a different category the home button in the top left corner can be pressed. +This will bring you back to the category selection screen. + +3.3.B: Search bar + +You can search within any category with the search bar at the topside of the pop-up window. +This can be combined with category selections to create a more selective overview. + +3.3.C: Filters + +Within each of the categories there is a variety of filters to apply. +Examples are: + +* Organisation +* Observation type +* Layer collection +* Asset type + +3.3.D: Results + +This is the panel where the results of your search query are returned. + + +**3.4 Layers, assets and selections overview** +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Allows you to change which layers and/or assets are visible, and their order. + +.. image:: /images/e_assetsrasters_01.jpg + +3.4.A: Assets and selections + +the top part of the panel is reserved for assets and selections. +Often a graph of the data found on a line, point or region can be displayed in a graph. +Layers only have legends, separating the two. +Because of this additional attribute as a default only one asset or selection will be active. +Clicking another asset will de-select the previously selected asset. + +.. tip:: + You can select multiple assets with CTRL-clicking. + +3.4.B: Layers + +Below the gray line layers can be found. +Layers comprise of all categories except individual assets or selections. +Selecting a layer without the use of CTRL will not result in de-selection of previously selected layers. +Selections will interact with the selected layers, allowing you to view time series of temporal rasters, or values found within a region. + +**3.5 Baselayer** +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The lowest part of the left panel is related to the base map. +By clicking on the layer icon, you are able to alter the base layer. +The different layers that are available are: + +- Topography +- Satellite +- Neutral +- Dark + + +4. Right Panel +-------------------- + +**4.1 Minimize** +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Just like the left panel, the right panel is equipped with a minimize button to give you more access to the map layer. +By combining the minimize of the time-bar and both panels you are left with a full map view. + +.. image:: /images/e_minimize_04.jpg + +.. note:: + The `Full Map` shortcut only minimizes both panels, not the time-bar. + +**4.2 Layer details** +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Every selected layer is shown in the right panel with additional details visible below. + +.. image:: /images/e_rightraster_01.jpg + +4.2.A: Legend + +Displays the raster values. This might be a value scale for scalar data, but it could also possibly be classes for things like land-use. + +4.2.B: Controls + +- Opacity: How translucent is the layer. Can be set anywhere from 0 to 100 percent. +- Zoom to extent: Allows the user to zoom to the full extent of the layer. +- Rescale color range: Depending on extent of the view the color scale can be adjusted. An example for when this would be very useful would be when zooming in of a height map, adjusting the scale will give you a much better view. +- Animate: Animates temporal rasters for you to view the change through time. + +4.2.C: Export raster + +Opens the raster export view pane. +There is quite a lot to this view, an overview is available below. + +.. image:: /images/e_export_01.jpg + +In the export view you will find information about: + +- Layer name +- Organisation name +- Projection +- Pixel size +- No data value (optional) + +While the layer and organisation are always set in stone (depending on which layer you decide to export), the other settings are changeable. +The projection determines the unit for the pixel size, with some having degrees as a unit and others having meters. +You have the options to either export the full raster, or to make a selection with the ``draw rectangle`` tool in the bottom right corner. +If you select a region, but are unhappy, you are able to click the red bin icon to remove the selection. +There is a limited amount of pixels you are able to export, this is to limit the size of the returned file and the time it takes to download the file. +The cap is at 10.000.000.000 pixels. + +.. image:: /images/e_exporterror_01.jpg + +4.2.D: Catalog + +The ``Open in Lizard Catalog`` brings you to the lizard catalog, allowing you to see aspects of the raster layer unavailable in the viewer. +It also allows the user to quickly access the API of the respective layer. + + +**4.3 Assets and selection details** +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Every asset or selection shows its details in the right panel, they stack on top of the layer details. + +.. note:: + The order of the assets and layers in the left panel determines the order within the right panel. + +.. image:: /images/e_rightasset_01.jpg + +4.3.A: General information + +Immediately under the asset general information is available, some examples: + +- Assets: name, code, type, capacity, station type +- Selections: label, coordinates, length or area. + +Next to the general information there is also information in relation to the raster layers selected. +If a height raster would be selected (or any other continuous value raster) a point would return the value of the pixel, a line provides a graph of the value across the line and a polygon returns a distribution curve. +For a raster with categories like soil types a point returns the category found underneath the point, a line returns nothing and a polygon returns a pie-chart with percentages every category has within the polygon. + +.. tip:: + Hover over classes within a pie-chart to see more information + +The information depends on the asset or selection type. + +4.3.B: Time series data selection + +Right below the time series label a drop-down menu is available. +Within the drop-down field you will find all the data available for the asset. + +4.3.C: Time series data display + +A graph displaying the selected data type for the time interval displayed on the time-bar. +There are many ways to interact with the time frame of the graph: + +1. Click-dragging in the graph itself, this will zoom in to the time range selected. +2. Interacting with the time-bar through any of the methods discussed in section 2.2 + +4.3.D: Time series export function + +The ``Export time series`` button exports all information in the time series for the selected time period (within the time-bar). +The export can be found in the user drop-down menu in the top-right corner. +The time series is given in an Excel file. + +4.3.E: Controls + +In the controls section we have options that have been discussed prior like: + +- Opacity: How translucent is the layer. Can be set anywhere from 0 to 100 percent. +- Zoom to extent: Allows the user to zoom to the extent of the selection or asset. + + +Next up we will discuss the dashboards available within Lizard! From 31bd071b9ca8fad6243e33973742cf6ba941d2e9 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 15 Feb 2024 14:34:54 +0100 Subject: [PATCH 04/13] Updates --- source/a_user_interfaces.rst | 38 +++++- source/b_apps.rst | 55 +++++++- source/b_catalogue.rst | 252 ++++++++++++++++++++++++++++++++++- source/b_lizardplugin.rst | 78 +++++++++++ source/b_management.rst | 195 ++++++++++++++++++++++++++- source/index.rst | 1 + 6 files changed, 615 insertions(+), 4 deletions(-) create mode 100644 source/b_lizardplugin.rst diff --git a/source/a_user_interfaces.rst b/source/a_user_interfaces.rst index 9fda68b..108665f 100644 --- a/source/a_user_interfaces.rst +++ b/source/a_user_interfaces.rst @@ -2,4 +2,40 @@ User interfaces =============== -This page contains an explanation of the multiple user interfaces in Lizard! \ No newline at end of file +Welcome to the user interfaces page! +Here you can find all the general information in regards to the multiple user interfaces found in Lizard. + +Homepage +=============== + +The homepage ensures easy access to functionalities for all users. +You can access the Lizard homepage via the following url “www.{your_organisation}.lizard.net”. +This base url will also be referred to as 'Portal'. +Lizard works best in Chrome. No additional software is needed. + +for example: +https://demo.lizard.net/ + + +.. image:: /images/a_homepage.jpg + +From the Homepage, you can link to the Lizard functionality you are interested in. + +* `**Catalogue** `_: Search for your data. +* `**Viewer** `_: Explore your data. +* `**Management** `_: Manage your data, users, alarms and GeoBlocks. +* `**API** `_: Query your data. + +From the homepage you have easy access to the support team and the documentation. + + +Catalogue +============= + + +Viewer +========== + + +Management +========== \ No newline at end of file diff --git a/source/b_apps.rst b/source/b_apps.rst index a72f7f3..c3c1316 100644 --- a/source/b_apps.rst +++ b/source/b_apps.rst @@ -2,4 +2,57 @@ Apps ==== -This page contains an explanation of availibity of apps in Lizard! \ No newline at end of file +This page contains an explanation of availibity of apps in Lizard! + + + + +Dashboards +========== + +Manage, control and keep track with Lizard Dashboards. +Lizard Dashboards can offer key insights that help decision makers make data driven decisions. +Alarms can be configured to detect anomalies and inform stakeholders via SMS or e-mail to take action. + +You find an overview of your dashboards on the My Dashboards page that can be reached via {yourportal}.lizard.net/dashboards. +You can give the dashboards a description that will be visualized on the My Dashboards page. +You can also tag your Dashboards using #. + +.. image:: /images/e_dashboard_01.png + +Make sure to login via the |loginbutton| in the upper right corner. + +.. |loginbutton| image:: /images/e_dashboard_02.png + +No Lizard Dashboards yet? Contact us via info@lizard.net to learn more about the possibilities of Lizard Dashboards for your organisation. +For now you can use the Demo Dashboard to explore the possibilities yourselve. + +The Demo Dashboard can be reached via: +https://demo.lizard.net/dashboards/ + +Click on Lizard Demo Dashboard to continue to the dashboard. + +.. image:: /images/e_dashboard_03.png + +You're able to visualize the logo of your organisation in the upper left corner of the Dashboard to give it a more personal look and feel. +Furthermore you're able to change the colors & size of the dashboard tiles. +Important tiles can be more prominent than others. + +Via the |settings| button you can change the settings of your dashboard. +You can change the date-time settings or switch background layers + +.. |settings| image:: /images/e_dashboard_05.png + +.. image:: /images/e_dashboard_04.png + +There are several data types that can be visualized in a tile: + +* Static or temporal rasters +* GeoBlocks results +* Time series +* Vectors +* HTML reports +* Embedded websites + +You can click on a tile to open the tile in full-screen mode. +In full screen mode you can also access the legends of the information shown in the map tiles. \ No newline at end of file diff --git a/source/b_catalogue.rst b/source/b_catalogue.rst index 03d51b8..e84454b 100644 --- a/source/b_catalogue.rst +++ b/source/b_catalogue.rst @@ -2,4 +2,254 @@ Catalogue ========= -This page contains an explanation of the Lizard! \ No newline at end of file +General +======== + +The Lizard Catalogue offers insight in the data that are available for your organisation. + +You can reach the Catalogue via the following url: +https://demo.lizard.net/catalogue/ or {yourorganisation}.lizard.net/catalogue/ + +.. image:: /images/e_catalog_00.png + +For now, the Catalogue covers these three datatypes: + +* **Raster** Raster layers in Lizard (not included are rasters from 3Di scenarios) +* **WMS layer** Wms layers in Lizard +* **Time series** Time series and monitoring networks + +There is an extensive search option to make the data easily accesible. +Every data layer will show available metadata. +From the Catalogue you have the option of opening the data layers via the API or via the Lizard Viewer. + +Filter +-------- + +On the left side of the Catalogue app you can find several ways of filtering the data layers you have access to. +There are three different ways to filter, Organisation, Layer Collection or Observation type. +Per filter there is a list of all possible options. + +.. image:: /images/e_catalog_03.png + +You can also use the search bar per filter to directly enter what you want to filter on. + +.. image:: /images/e_catalog_04.png + +Export, Basket and login +------------------------- + +In the top right you see the following buttons: + +.. image:: /images/e_catalog_07.png + +**Export** +Available and running exports will appear here + +**Basket** +Using the Basket makes it easy to make different combinations of data layers to show in Lizard. +To the left of the data layers are selection boxes. +Click these boxes to make a selection from one or several data layers. +After making the selection click the 'Add to basket' button in the lower right corner of the data layers overview. +At the top right corner of the Catalogue you will see that the Basket button now shows the number of selected data layers. +Opening the basket gives an overview of all selected layers, and a button to 'Open all data in Lizard'. +This will open a new window for Lizard, with all the selected data layers opened. + +**Login** +If you are logged in, you will have access to data that is common, or private and shared with your organisation. +Also, you have to be logged in to be able to export. + +Rasters +========= + +When you open the Catalogue and choose 'Raster' in the top left, you will see an overview of all the layers you have access to. +It will show a list of 10 items, with the option to click through to other pages. +At the top of the screen there is a search bar. +Using search terms that are in the Name or the Description of the data layer you can more easily find specific data layers that you might be interested in. + +The following information is visible in this overview. + +* **Type** The type of data. A normal raster, or a temporal raster. +* **Name** Name of the data layer. +* **Organisation** To which organisation the data layer belongs. +* **Description** A short description of the data contained within the data layer. +* **Latest update** When the data layer was last updated. +* **Access modifier** Divided into Public, Common and Private. + +.. note:: + Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. + +.. note:: + Not included are rasters from 3Di scenarios + +Details +-------- + +Once you have selected a data layer, you will find detailed information about the layer in the panel on the right. +Here it will show a map of the area and a visualisation of the data. +Below the map there is a table with detailed meta information about the data layer. +If you want to visualise the layer in your Viewer or if you want to use it for data science purposes you can either choose to open it in the Viewer or the API. + +.. image:: /images/e_catalog_05.png + +Lizard WMS Service for rasters +-------------------------------- + +When you filtered on “Layer Collection” a Lizard WMS GetCapabilities link appears in the list of meta data of the raster. +You can use this link to visualise the raster in external applications such as QGIS or ESRI applications. + +For more infomation, please consult the WMS Services. + +Exporting +---------- + +Select the raster you would like to export. +Click on the Export button in the action menu. + +.. image:: /images/e_catalog_06a.png + +The Export Selection window will pop up. +Follow the steps: +- Choose a preferred projection of the output GeoTIFF. +- Choose the pixel size (resolution) of the output GeoTIFF. +- Choose a preferred tile size. + +You can export 3 tiles at a time. +Click on Download selected cells. +A task will be started in the background. +Once your GeoTIFF's are ready you will receive a notification in the Export dropdown menu in the green bar. + +.. image:: /images/e_catalog_06b.png + + +WMS layers +============= + +When you open the Catalogue and choose 'WMS layer' in the top left, you will see an overview of all the wms layers you have access to. +It will show a list of 10 items, with the option to click through to other pages. +At the top of the screen there is a search bar. +Using search terms that are in the Name or the Description of the data layer you can more easily find specific data layers that you might be interested in. + +The following information is visible in this overview. + + +* **Name** Name of the wms layer. +* **Organisation** To which organisation the data layer belongs. +* **Description** A short description of the data contained within the data layer. +* **Access modifier** Divided into Public, Common and Private. + +.. note:: + Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. + +Details +-------- + +Once you have selected a wms layer, you will find detailed information about the layer in the panel on the right. +Here it will show a map of the area and a visualisation of the data. +Below the map there is a table with detailed meta information about the data layer. +If you want to use the layer in your Viewer or if you want to use it for data science purposes you can either choose to open it in the Viewer or the API. + +.. image:: /images/e_catalog_08.png + +Action menu +------------ + +.. image:: /images/e_catalog_09.png + +You can download the wms directly, open it in the Viewer or in the API or analyse the wms layer in another application linking to Lizard. +You can use this link to visualise the raster in external applications such as QGIS or ESRI applications. + +For more infomation, please consult the :doc:`WMS Services`. + +Time series and monitoring networks +==================================== + +When you open the Catalogue and choose 'Time series' in the top left, you will see an overview of all the layers you have access to. +It will show a list of 10 items, with the option to click through to other pages. +At the top of the screen there is a search bar. +Using search terms that are in the Name or the Description of the data layer you can more easily find specific data layers that you might be interested in. + +The following information is visible in this overview. + +* **Monitoring network** Name of the data layer. +* **Organisation** To which organisation the data layer belongs. +* **Access modifier** Divided into Public, Common and Private. + +.. note:: + Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. + +In monitoring networks, you can group timeseries. This can be done for example by grouping them by observation type or by source. + +.. note:: + New monitoring networks can be added via https://demo.lizard.net/api/v4/monitoringnetworks/ or {yourorganisation}.lizard.net/api/v4/monitoringnetworks/ or with the help of a consultant. In the near future, time series can be managed via the management screens. + +Details +-------- + +Once you have selected a monitoring network, you will find detailed information about the dataset in the panel on the right. +Here it will show a map of the area and a visualisation of the data. +Below the map there is a table with detailed meta information about the data layer. + +.. image:: /images/e_catalog_10.png + +Action menu +------------ + +In the action menu, you can export the timeries you are interested in or open it in the Viewer or in the API. +You can filter on the observation type, which time series have data in a certain period and/or on location. + +First choose "Select time series". + +.. image:: /images/e_catalog_11.png + +Below you see a screenshot of all locations with time series for monitoring network KNMI weerstations without filtering. + +.. image:: /images/e_catalog_12.png + +Below you see a screenshot of all locations with time series with observation type 'windsnelheid' and that have data between 14 and 16 March 2021. +Then location Bilt is manually selected (by clicking on a dot or use the search bar) and ready to export or view in the API or in the Viewer. + +.. image:: /images/e_catalog_13.png + +Scenarios +============== + +When you open the Catalogue and choose 'Scenario' in the top left, you will see an overview of all the scenarios you have access to. +It will show a list of 10 items, with the option to click through to other pages. +At the top of the screen there is a search bar. +Using search terms that are in the Name or the Description of the data layer you can more easily find specific data layers that you might be interested in. + +.. image:: /images/e_catalog_14.png + + + +The following information is visible in this overview. + +* **Name** Name of the data layer. +* **Model name** Name of the model the scenario is based on. +* **Organisation** To which organisation the data layer belongs. +* **Last update** When the data layer was last updated. +* **Access modifier** Divided into Public, Common and Private. + +.. note:: + Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. + + +Details +-------- + +Once you have selected a data layer, you will find detailed information about the layer in the panel on the right. + +.. image:: /images/e_catalog_15.png + + +Action menu +------------ + +In the action menu, you can open the scenario in the Viewer or in the API. + +Results +------------ + +In the results menu, you can download the results. + +.. image:: /images/e_catalog_16.png \ No newline at end of file diff --git a/source/b_lizardplugin.rst b/source/b_lizardplugin.rst new file mode 100644 index 0000000..6d6edd6 --- /dev/null +++ b/source/b_lizardplugin.rst @@ -0,0 +1,78 @@ +============================== +QGIS Plugin +============================== + +The Lizard QGIS plugin enables users to download their scenario results directly from the Lizard API +to their GIS environment and show WMS of raster results. +Here we describe how to install and use the plugin. + + +Installation +============ + +* Add the Lizard plugin repository + * Note: if you are using the `3Di Modeller Interface `_, you can skip this step. + * In the main menu click *Plugins* > *Manage and Install plugins* > *Settings* + * In the section *Plugin repositories*, click *Add* + * As details, fill in '3Di' as *Name*, and 'https://plugins.lizard.net/plugins.xml' as *URL* + +* Install the Lizard plugin + * Click on the tab *All* + * In the search bar at the top, search for Lizard + * Select Lizard in the panel in the middle + * In the bottom-right of the dialog, click *Install plugin*. + +Initial setup +============= + +When starting the plugin for the first time you are prompted to provide some settings that are required. +In the following screen you need to provide: + +* The base URL of the Lizard portal you want to use. This will typically be *your_organisation*.lizard.net. + +* A Personal API Key. If you already have an API Key, you can fill it in by clicking "Set...". If you do not have a Personal API Key yet, follow these steps. + + * Click "Obtain..." You will be redirected to the management page where you can create a new Personal API Key. + + * Create a new Personal API Key by pressing the + NEW ITEM button in the upper right corner. + + * Fill in a name for the new Personal API Key. Click on ‘Submit’ to the right. + + * You now have your own Personal API Key. Copy it. + + * Return to QGIS / the 3Di Modeller Interface. + + * Click Set… and paste your Personal API Key. Then click Save. + +.. image:: /images/d_qgisplugin01.png + + +Scenario archive browser +======================== + +The Lizard plugin currently contains the Scenario archive browser (to be extended with more functionality). + +* Select a scenario from the list, which can be filtered by scenario name. + +After selecting a scenario, you have two options: + +* Retrieve downloadable results (raw results and non-temporal rasters) + + * Select the results of interest + + * [Optional] Set nodata value and projection that the downloaded rasters should get. + + * Start the download + + * Follow the progress at the top of the QGIS main window. + +* Add raster results to your project as WMS layers + + * Use the `Temporal Controller` to animate temporal raster results (e.g. water depth) + +.. note: + + Downloading temporal rasters is not supported at the moment. To visualize them in QGIS or the 3Di Modeller Interface, add them as WMS and use the `Temporal Controller` to navigate through its time steps. + +.. image:: /images/d_qgisplugin02.png + diff --git a/source/b_management.rst b/source/b_management.rst index 39b6782..c97abec 100644 --- a/source/b_management.rst +++ b/source/b_management.rst @@ -2,4 +2,197 @@ Management ========== -This page contains an explanation of the management page in Lizard! \ No newline at end of file +Signing in +========== + +Users that already have a Lizard account can click the "Log in" +button on the top right of the screen. + +First-time users require an invitation to create a Lizard account. Users with +a "manager" role are able to send invitations to new users. +If you do not know whom to contact, please contact our support office +(servicedesk@nelen-schuurmans.nl). + +After clicking "Log in" or after following the invitation link, you will arrive +at the login screen. + +.. note:: + Please ensure that "https://auth.lizard.net/" domain is indeed displayed + in your browser's address bar and that your browser displays the lock + symbol indicating that the connection is secure. + +On the login page you have four different options to sign in: + +1. through a company account, +2. through a social account, +3. with username and password, +4. by creating a new account (Sign up). + +First-time users may choose any of these options. If your company is listed as +one of the possible companies to sign in with, that is the preferred choice. + +Existing users should use the same method as they used when signing in for +the first time. If your Lizard username/password existed before Januari 2021, +use method 3. + +.. tip:: + Do you want to add your company to the list to centralise the user accounts + of your organisation? Please contact our support office + (servicedesk@nelen-schuurmans.nl) for the options. + + +Organisations +============= + +All data in Lizard is linked to an organisation. +Organisations are the backbone of our authorisation model. +When an organisation uploads data, they are able to determine the level of authorisation required for access. +There are three types of authorisation options that can be applied to your data: + +* **Public**: everyone is able to access your data +* **Common**: everyone with login credentials to Lizard is able to access your data +* **Private**: everyone with login credentials to Lizard AND user rights to your organisation is able to access your data + + + +Whitelisting +------------ + +The users of a certain portal may not be interested in a lot of the public/common datasets that are made available by others. +Every Lizard portal has its own whitelist. +Whitelisting allows the organisations to determine which data should be visible. +This can remove some of the clutter. +The whitelist affects both the Lizard Viewer aswell as the Catalogue. + +The effect is that for the same user the available data can differ between [your_organisation].lizard.net and demo.lizard.net (for which all organisations are whitelisted). +The whitelisting mechanism is overruled if a user has specific authorisation for an organisation. + +.. tip:: + Do you want to see or change the whitelist settings of a portal? Please contact our support office + (servicedesk@nelen-schuurmans.nl). + + +Roles +----- + +We have 4 roles and 3 different types of privileges. + +* A **user**, who can only *read* data +* A **supplier**, who can *read* data and change (*'write'*) his or her own data +* An **administator**, who can *read* data and change (*'write'*) all organisation's data. +* A **manager**, who can *manage* other roles in the organisation. A manager can not read or write data by default. This role should be appointed separately. + + +User management +=============== + +Users can be managed in the User Management interface. +This interface can be reached via the {your_organisation}.lizard.net/management/users/ (or `demo.lizard.net/management/users `_). + +.. note:: + You require a “manager” role to access the User Management interface. + Haven’t got a “manager” role but you would like to add the User Management interface? + Please contact the application manager within your organisation or our support office (servicedesk@nelen-schuurmans.nl) + +.. image:: /images/b_usermanagement_03.png + +In the example above, you see the current rights for 7 users under the organisation Nelen & Schuurmans. + + +The management screen offers the opportunity to manage various aspects of your organization. +This includes managing your data: rasters, scenarios, time series, and more. +For complete use of this page, refer to the `lizard documentation `_. +The most important thing in this case is "User Management". +Only managers have access to the "Users" screen. +In this screen, you can: + +1. Invite new users. +2. Manage invitations. +3. Adjust existing rights. + + +Inviting New Users +---------------------------- + +If a new user needs access to Lizard from the organization, this can be granted by the Manager. +This is done as follows: + +1. Log in to the organization's portal ({organization}.lizard.net). +2. Go to the user section in the management screen ({organization}.lizard.net/management/users). +3. Click on `+ NEW USER` at the top right of the screen (Image 1, in red). +4. Type the user's email in the 'email' field (Image 2). +5. Select the roles the user will have. For the rights associated with the roles, refer to `Roles and rights`_. +6. Click `SAVE`. +7. Success! The invitation has been sent and will be in the new user's mailbox within 5 minutes. + +.. tip:: Clicking on a role when inviting someone will also display the rights of each role on the left side of your screen. + +.. tip:: If the email does not appear in the inbox after 5 minutes, first check your spam folder. If the invitation is not there either, you can always contact the `servicedesk `_. + +.. figure:: /images/h_gebruiker_uitnodigen_1.png + :scale: 50% + :alt: Overview of the Lizard management page with multiple users. + + Image 1: An overview of the user section in the management screen of Lizard. + Here you can view existing rights and invite new users (red) or manage pending invitations (yellow). + +.. figure:: /images/h_gebruiker_uitnodigen_2.png + :scale: 50% + :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. + + Image 2: The invitation screen for new users. You select the roles by clicking on them. + + + +Managing Invitations +--------------------- + +In the `Pending Invitations` screen, you can see which invitations you have sent that have not yet been accepted or expired. +Invitations expire by default within 15 days, but you can cancel them earlier by clicking on the 3 dots next to an email (Image 3). +If an email has not reached a user, you can also verify the email here. + +.. figure:: /images/h_pending_uitnodiging_1.png + :scale: 50% + :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. + + Image 3: An overview of pending invitations. + + +Adjusting Existing Rights +--------------------------- + +In the user rights overview screen, you can manage the rights of existing users. +Here you see the following information of users who have rights for your organization: + +1. Username +2. Email +3. Roles + +.. figure:: /images/h_rechten_beheren_1.png + :scale: 50% + :alt: Overview of the Lizard management page with multiple users. + + Image 4: An overview of pending invitations. + +By clicking on the username of the respective user, you will be taken to this user's specific page. +Here, you can click on the roles you want to remove or add. +If a role is clearly colored, the user has these rights. + +.. figure:: /images/h_rechten_beheren_2.png + :scale: 50% + :alt: Roles of an individual user. + + Image 5: In this case, the user has 'User' and 'Manager' rights. + + +Tips +============= + +.. tip:: Ensure that rights are discussed and granted at the beginning of a project. + This prevents delays later due to someone waiting for their rights. + +.. tip:: Don't forget to remove users' rights after a project is completed. + This way, you actively maintain the user database and keep your data under control. + However, be sure to check if any scripts are running on an API KEY of any of these users. + +.. tip:: If you want to deactivate accounts, contact the `servicedesk `_. \ No newline at end of file diff --git a/source/index.rst b/source/index.rst index c046ebc..a74fea7 100644 --- a/source/index.rst +++ b/source/index.rst @@ -22,6 +22,7 @@ Welcome to the Lizard documentation! b_viewer b_management b_apps + b_lizardplugin .. toctree:: :maxdepth: 1 From 661671e5c4b8339d756d38299574446bc94f9f71 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 15 Feb 2024 15:18:32 +0100 Subject: [PATCH 05/13] Add old in the most related new doc, remove old files. --- .../f_geoblocks.rst => a_geoblocks.rst} | 0 source/a_tutorials.rst | 6 +- source/a_user_interfaces.rst | 14 +- source/b_management.rst | 519 ++++++--- source/c_endpoints.rst | 994 +++++++++++++++++- source/c_introduction.rst | 359 ++++++- source/d_authentication_user_management.rst | 196 +++- source/d_faq.rst | 11 +- source/images/h_gebruiker_uitnodigen_1.png | Bin 0 -> 66408 bytes source/images/h_gebruiker_uitnodigen_2.png | Bin 0 -> 76366 bytes source/images/h_pending_uitnodiging_1.png | Bin 0 -> 21332 bytes source/images/h_rechten_beheren_1.png | Bin 0 -> 77347 bytes source/images/h_rechten_beheren_2.png | Bin 0 -> 8368 bytes source/index.rst | 1 + source/old_files/a_homepage.rst | 28 - source/old_files/a_lizard.rst | 17 - source/old_files/a_releasenotes.rst | 241 ----- source/old_files/b_usermanagement.rst | 140 --- source/old_files/c_apifunctional.rst | 73 -- source/old_files/c_general.rst | 14 - source/old_files/c_labels.rst | 8 - source/old_files/c_layercollections.rst | 6 - source/old_files/c_rasters.rst | 54 - source/old_files/c_scenarios.rst | 75 -- source/old_files/c_timeseries.rst | 160 --- source/old_files/c_wms.rst | 66 -- source/old_files/d_apitechnical.rst | 258 ----- source/old_files/d_apitutorials.rst | 34 - source/old_files/d_datatypes.rst | 739 ------------- source/old_files/d_general.rst | 288 ----- source/old_files/d_qgisplugin.rst | 78 -- source/old_files/e_catalog.rst | 255 ----- source/old_files/e_dashboard.rst | 50 - source/old_files/e_lizardwms.rst | 104 -- source/old_files/e_viewer.rst | 491 --------- source/old_files/f_alarms.rst | 88 -- source/old_files/g_servicesupport.rst | 59 -- 37 files changed, 1963 insertions(+), 3463 deletions(-) rename source/{old_files/f_geoblocks.rst => a_geoblocks.rst} (100%) create mode 100644 source/images/h_gebruiker_uitnodigen_1.png create mode 100644 source/images/h_gebruiker_uitnodigen_2.png create mode 100644 source/images/h_pending_uitnodiging_1.png create mode 100644 source/images/h_rechten_beheren_1.png create mode 100644 source/images/h_rechten_beheren_2.png delete mode 100644 source/old_files/a_homepage.rst delete mode 100644 source/old_files/a_lizard.rst delete mode 100644 source/old_files/a_releasenotes.rst delete mode 100644 source/old_files/b_usermanagement.rst delete mode 100644 source/old_files/c_apifunctional.rst delete mode 100644 source/old_files/c_general.rst delete mode 100644 source/old_files/c_labels.rst delete mode 100644 source/old_files/c_layercollections.rst delete mode 100644 source/old_files/c_rasters.rst delete mode 100644 source/old_files/c_scenarios.rst delete mode 100644 source/old_files/c_timeseries.rst delete mode 100644 source/old_files/c_wms.rst delete mode 100644 source/old_files/d_apitechnical.rst delete mode 100644 source/old_files/d_apitutorials.rst delete mode 100644 source/old_files/d_datatypes.rst delete mode 100644 source/old_files/d_general.rst delete mode 100644 source/old_files/d_qgisplugin.rst delete mode 100644 source/old_files/e_catalog.rst delete mode 100644 source/old_files/e_dashboard.rst delete mode 100644 source/old_files/e_lizardwms.rst delete mode 100644 source/old_files/e_viewer.rst delete mode 100644 source/old_files/f_alarms.rst delete mode 100644 source/old_files/g_servicesupport.rst diff --git a/source/old_files/f_geoblocks.rst b/source/a_geoblocks.rst similarity index 100% rename from source/old_files/f_geoblocks.rst rename to source/a_geoblocks.rst diff --git a/source/a_tutorials.rst b/source/a_tutorials.rst index cc3d3ed..7e8baf0 100644 --- a/source/a_tutorials.rst +++ b/source/a_tutorials.rst @@ -1,11 +1,11 @@ -============================== +============= API tutorials -============================== +============= We created interactive manuals for data scientists to use the Lizard API. At the moment we have the following: -0. Virtual Environment +1. Virtual Environment ---------------------- | `Virtual Environment Requirements `_ diff --git a/source/a_user_interfaces.rst b/source/a_user_interfaces.rst index 108665f..c69c9c8 100644 --- a/source/a_user_interfaces.rst +++ b/source/a_user_interfaces.rst @@ -2,8 +2,18 @@ User interfaces =============== -Welcome to the user interfaces page! -Here you can find all the general information in regards to the multiple user interfaces found in Lizard. +Introduction +============ + +Lizard is a data and analytics platform, optimised for the physical environment. +We enable you to unlock the potential of your data and allow you to integrate and combine data from different sources and domains. +Explore your data with plug-and-play applications. +Or connect your favourite data science tools with our API. + +The documentation has detailed descriptions of individual components of every aspect of Lizard. +Feel free to move through every section in sequence by using the next functionality at the bottom of every page, or dive straight to the item of interest with the use of the left pane. + +Tutorials in regards to the Lizard API usage can be found in the `API Tutorials section ` Homepage =============== diff --git a/source/b_management.rst b/source/b_management.rst index c97abec..0cec409 100644 --- a/source/b_management.rst +++ b/source/b_management.rst @@ -2,197 +2,460 @@ Management ========== -Signing in -========== +In the management interface there is a variety of options. -Users that already have a Lizard account can click the "Log in" -button on the top right of the screen. +`Usermanagement `_ will be discussed later. -First-time users require an invitation to create a Lizard account. Users with -a "manager" role are able to send invitations to new users. -If you do not know whom to contact, please contact our support office -(servicedesk@nelen-schuurmans.nl). +Rasters +============= -After clicking "Log in" or after following the invitation link, you will arrive -at the login screen. +The data management interface for rasters can be used to upload, edit or remove rasters. +Raster Sources are the data containers, Raster Layers are the configuration of how the data is visualised. -.. note:: - Please ensure that "https://auth.lizard.net/" domain is indeed displayed - in your browser's address bar and that your browser displays the lock - symbol indicating that the connection is secure. +.. image:: /images/c_manage_rasters_01.png +.. image:: /images/c_manage_rasters_02.png +.. image:: /images/c_manage_rasters_03.png -On the login page you have four different options to sign in: +Creating and editing Raster Sources and Layers +---------------------------------------------- -1. through a company account, -2. through a social account, -3. with username and password, -4. by creating a new account (Sign up). +The first step in uploading your raster datasets is to create a Raster Source. -First-time users may choose any of these options. If your company is listed as -one of the possible companies to sign in with, that is the preferred choice. +The Data Management interface is available at: “www.{your_organisation}.lizard.net/management/”. -Existing users should use the same method as they used when signing in for -the first time. If your Lizard username/password existed before Januari 2021, -use method 3. +After landing on this page, click on ‘Data’ -> ‘Rasters’ -> 'Raster Sources'. +Click on “New Item” |NewItem| to open the form or choose an existing raster to edit. -.. tip:: - Do you want to add your company to the list to centralise the user accounts - of your organisation? Please contact our support office - (servicedesk@nelen-schuurmans.nl) for the options. +.. |NewItem| image:: /images/c_manage_newitem.png +After filling in the form you can choose to directly upload your data by selecting your GeoTIFF's in the 'DATA' section. +In case of a temporal raster source you need to specify which file belongs to which timestep. +This is recognised automatically if the filename is composed according to the specified format. +When you save a new Source you will have the option to go straight to the Raster Layer form to publish your data. -Organisations -============= +.. image:: /images/c_datatypes_01.png + +Interested in the possibilities for your organisation? Please contact us via info@lizard.net. + +GeoBlocks management +-------------------- + +The GeoBlocks management page provides you a powerful tool to build your GeoBlocks Rasters. +It helps you configure complex GeoBlocks models and enables you to validate your work along the way. + +The Visual editor shows your model as a flow diagram, consisting of block objects representing the input Raster Sources and GeoBlocks operations. +The right sidebar shows the available blocks. Click on the blocks for a description and the expected inputs. Drag a block into the canvas to include it in your model. +Connect blocks to use one as input for the other. + +When the model is valid it can also be shown in the Text editor. This shows the JSON graph as it would be sent to the API when you save the item. +Here you can also make edits and validate the result. + +Example 1 shows a simple model which subtracts one Raster Source from another (difference in surface elevation between two versions of a dataset). + +.. image:: /images/c_manage_geoblocks_01.png + +Example 2 shows a more complex model with multiple Raster Sources and a series of operations. + +.. image:: /images/c_manage_geoblocks_02.png + +For more information about the possibilities of GeoBlocks see: :ref:`GeoBlocksAnchor` + + +WMS Layers +=========== -All data in Lizard is linked to an organisation. -Organisations are the backbone of our authorisation model. -When an organisation uploads data, they are able to determine the level of authorisation required for access. -There are three types of authorisation options that can be applied to your data: +WMS stands for Web Mapping Service. +It is a standard method of sharing georeferenced maps. +The WMS layers management allows the user to configure layers in Lizard even if they are hosted on another platform. +In the management screen you can add new WMS layers or edit existing layers. -* **Public**: everyone is able to access your data -* **Common**: everyone with login credentials to Lizard is able to access your data -* **Private**: everyone with login credentials to Lizard AND user rights to your organisation is able to access your data +.. image:: /images/c_manage_wms_01.png +New WMS Layer +------------- +.. image:: /images/c_manage_newitem.png -Whitelisting +After clicking the 'NEW ITEM' icon, you can configure a new WMS layer. + +.. image:: /images/c_manage_wms_02.png + +The configuration has some mandatory items while others are optional, an extensive list with descriptions follows: + +1. GENERAL ------------ -The users of a certain portal may not be interested in a lot of the public/common datasets that are made available by others. -Every Lizard portal has its own whitelist. -Whitelisting allows the organisations to determine which data should be visible. -This can remove some of the clutter. -The whitelist affects both the Lizard Viewer aswell as the Catalogue. +* Name (required): Choose a name that is findable and not too difficult +* Description (optional): Give a description of the information that is displayed by the WMS layer. +* Tags / Datasets (optional): You can connect the layer to an existing dataset. + +2. DATA +------------ + +* WMS URL (required): Specify which base URL is used to retrieve the image data. It usually ends on '/wms' +* Slug (required): can be seen as layer name used in the external platform +* Download URL (optional): Specify which URL is used to download the data. This will enable the download button in the Lizard Catalogue. +* Legend URL (optional): Specify which URL is used to show the legend of this layer. +* Get Feature URL (optional) : Optional URL to retrieve feature info data. +* Tiled (enabled by default) : Specifies whether the layer is tiled (for better performance) +* Min and max zoom (required): Closest and furthest point of view in this WMS layer. 0 is visible at world scale, 31 is zoomed in at a house. You can check the zoom level in the url in the Viewer (after the coordinates). +* Spatial bounds (optional): Specify the extent of this layer on the map. This information can also be automatically obtained by clicking "Get from source". +* Options (JSON): Extra options of this layer, specfied in JSON. + +3. RIGHTS +------------ + +* Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. +* Shared with (optional): Specify if this object should be accessible by other organisations, and if so, which ones. +* Organisation (required, pre-filled): The organisation this object belongs to. +* Supplier (optional): The supplier of this object. If you are not an administrator, this field is always pre-filled with your username. + +If you are satisfied, click "SAVE" -The effect is that for the same user the available data can differ between [your_organisation].lizard.net and demo.lizard.net (for which all organisations are whitelisted). -The whitelisting mechanism is overruled if a user has specific authorisation for an organisation. + +Edit WMS Layer +--------------- + +By clicking on the name of a WMS layer, the configuration of the corresponding layer is opened. +In the configuration page you can edit any of the settings previously given to the WMS layer. +To quickly find a WMS layer: use the search bar. +If the layer you are looking for seems unavailable you might have to switch organisations, feel free to contact the servicedesk for any problems (servicedesk@nelen-schuurmans.nl). + +.. image:: /images/c_manage_wms_03.png .. tip:: - Do you want to see or change the whitelist settings of a portal? Please contact our support office - (servicedesk@nelen-schuurmans.nl). + Advanced: Is your WMS layer not visible in the Viewer? Check via the network tab (press F12) how Lizard requests the WMS and if that WMS url makes sense. -Roles ------ +==================== +Layer collections +==================== -We have 4 roles and 3 different types of privileges. +.. warning:: + This section will be extended in the near future. -* A **user**, who can only *read* data -* A **supplier**, who can *read* data and change (*'write'*) his or her own data -* An **administator**, who can *read* data and change (*'write'*) all organisation's data. -* A **manager**, who can *manage* other roles in the organisation. A manager can not read or write data by default. This role should be appointed separately. -User management -=============== +Time series +============== -Users can be managed in the User Management interface. -This interface can be reached via the {your_organisation}.lizard.net/management/users/ (or `demo.lizard.net/management/users `_). -.. note:: - You require a “manager” role to access the User Management interface. - Haven’t got a “manager” role but you would like to add the User Management interface? - Please contact the application manager within your organisation or our support office (servicedesk@nelen-schuurmans.nl) +The data management interface for timeseries can be used to upload, edit or remove timeseries, monitoring networks and locations. + +.. image:: /images/c_manage_timeseries_menu.png + + +---------- +Locations +---------- + +.. image:: /images/c_manage_locations_01.png + + +Search or sort your locations here. +Check out possible actions by clicking the three dots icon. +Create a new object with the New Item button on the top right corner. + + +.. image:: /images/c_manage_newitem.png + +.. image:: /images/c_manage_locations_02.png + +1. GENERAL +------------ + +* Location name (required): Choose a name that is findable and not too difficult +* Code (required): Choose a code that represents the object within your organisation. + + +2. DATA +------------ + +.. warning:: + Locations must be connected to an existing asset to be visualised in the Viewer. The asset will have a symbol and zoom level depending on the type. Also, the metadata differs per type. For now, only measuringstations can be added via the API. If you have any questions about this, please contact the service desk. -.. image:: /images/b_usermanagement_03.png +* Asset type (optional): Specify a type of asset. +* Asset location: after specifying the asset type, you can search by code or name. +* Extra metadata (JSON) (optional): Free JSON field to add information to this object. -In the example above, you see the current rights for 7 users under the organisation Nelen & Schuurmans. +3. RIGHTS +------------ +* Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. -The management screen offers the opportunity to manage various aspects of your organization. -This includes managing your data: rasters, scenarios, time series, and more. -For complete use of this page, refer to the `lizard documentation `_. -The most important thing in this case is "User Management". -Only managers have access to the "Users" screen. -In this screen, you can: -1. Invite new users. -2. Manage invitations. -3. Adjust existing rights. +If you are satisfied, click "SAVE" +------------ +Timeseries +------------ -Inviting New Users ----------------------------- +.. image:: /images/c_manage_timeseries_01.png -If a new user needs access to Lizard from the organization, this can be granted by the Manager. -This is done as follows: +Search or sort your time series here. +Check out possible actions by clicking the three dots icon next to a time series. You can add timeseries to a monitoring network (MN), edit, or delete hem. +Create a new object with the New Item button on the top right corner. -1. Log in to the organization's portal ({organization}.lizard.net). -2. Go to the user section in the management screen ({organization}.lizard.net/management/users). -3. Click on `+ NEW USER` at the top right of the screen (Image 1, in red). -4. Type the user's email in the 'email' field (Image 2). -5. Select the roles the user will have. For the rights associated with the roles, refer to `Roles and rights`_. -6. Click `SAVE`. -7. Success! The invitation has been sent and will be in the new user's mailbox within 5 minutes. +.. image:: /images/c_manage_newitem.png -.. tip:: Clicking on a role when inviting someone will also display the rights of each role on the left side of your screen. +.. image:: /images/c_manage_timeseries_02.png -.. tip:: If the email does not appear in the inbox after 5 minutes, first check your spam folder. If the invitation is not there either, you can always contact the `servicedesk `_. +1. GENERAL +------------ -.. figure:: /images/h_gebruiker_uitnodigen_1.png - :scale: 50% - :alt: Overview of the Lizard management page with multiple users. +* Name (required): Choose a name that is findable and not too difficult +* Code (required): Choose a code that represents the object within your organisation. - Image 1: An overview of the user section in the management screen of Lizard. - Here you can view existing rights and invite new users (red) or manage pending invitations (yellow). -.. figure:: /images/h_gebruiker_uitnodigen_2.png - :scale: 50% - :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. +2. DATA +------------ - Image 2: The invitation screen for new users. You select the roles by clicking on them. +* Observation type (required): Choose the way the data is measured, and the units. New observation types can be added via the `api `_ or requested via the servicedesk. +* Location (required): Choose to which location you want to add this timeseries. New locations can be added via the api or via data management --> timeseries --> locations. +* Value type (required): Specify what kind of data you will be supplying. See `Level of measurement `_. +* Datasource (optional): Specify a data source if it is available. Otherwise, you can leave it empty or create a new one via the API. +* Interval (optional): Specify a time range between each time series step. +.. note:: + if you leave the interval at 0, it will mean it is irregular ('nonequidistant') data. This is also necessary if you have timesteps smaller than seconds. + +* CSV Files (optional): You can add new data via a csv file or via the API. If you want to supply a csv file, see the instructions below: +.. note:: + The first line of the file should describe the column names, for example: + + | time, value + | 2020-03-20T01:00:00Z, 3.14 + | 2020-03-20T01:05:00Z, 2.72 + + The next lines are the timestemp and value for that timestep. Make sure you do not list the same timestep twice. + All uploads in Lizard are expected to be in UTC time. + + | time: ISO 8601 date and time representation. This is a required field. + | value: A number, string, or boolean, depending on the value_type of the corresponding time series. + + +* Extra metadata (JSON) (optional): Free JSON field to add information to this object. + + +3. RIGHTS +------------ + +* Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. +* Username of supplier (optional): The supplier of this object. If you are not an administrator, this field is always pre-filled with your username. +* Supplier code (optional): The FTP or Supplier code is used as reference to your own system. + +.. note:: + Timeseries are not linked to an organisation directly. They are linked to organisations via the locations. -Managing Invitations +If you are satisfied, click "SAVE" + + + +--------------------- +Monitoring networks --------------------- -In the `Pending Invitations` screen, you can see which invitations you have sent that have not yet been accepted or expired. -Invitations expire by default within 15 days, but you can cancel them earlier by clicking on the 3 dots next to an email (Image 3). -If an email has not reached a user, you can also verify the email here. +Monitoring networks are used to group and give insights on time series. +Check out possible actions by clicking the three dots icon next to existing networks. -.. figure:: /images/h_pending_uitnodiging_1.png - :scale: 50% - :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. +Create a new object with the New Item button on the top right corner. - Image 3: An overview of pending invitations. +.. image:: /images/c_manage_newitem.png +.. image:: /images/c_manage_monitoringnetworks_01.png -Adjusting Existing Rights ---------------------------- +1. GENERAL +------------ + +* Name (required): Choose a name that is findable and not too difficult +* Description (optional) + + +2. DATA +------------ + +.. warning:: + The button "MANAGE" will only work if there are already timseries connected to the monitoring network. If there are, you can remove the the connection here. New connections can be added via the timeseries management app. + +3. RIGHTS +------------ + +* Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. +* Organisation (required, pre-filled): The organisation this object belongs to. + +If you are satisfied, click "SAVE" + + + +Scenarios +============== + +The data management interface for scenarios can be used to manage scenarios. + + +.. image:: /images/c_manage_scenarios_01.png + + +Search for a scenario +------------------------ -In the user rights overview screen, you can manage the rights of existing users. -Here you see the following information of users who have rights for your organization: +You can search for a scenario by either typing (part of) the scenario name, the UUID, username of the supplier or model name. -1. Username -2. Email -3. Roles +.. image:: /images/c_manage_scenarios_search.png -.. figure:: /images/h_rechten_beheren_1.png - :scale: 50% - :alt: Overview of the Lizard management page with multiple users. +You can also specify that you only want to show your own scenarios by ticking the box in the top right corner. - Image 4: An overview of pending invitations. -By clicking on the username of the respective user, you will be taken to this user's specific page. -Here, you can click on the roles you want to remove or add. -If a role is clearly colored, the user has these rights. +Used storage and deletion of scenarios +----------------------------------------- -.. figure:: /images/h_rechten_beheren_2.png - :scale: 50% - :alt: Roles of an individual user. +.. image:: /images/c_manage_scenarios_storage.png - Image 5: In this case, the user has 'User' and 'Manager' rights. +In the left side, you can see the used storage for your organisation. This may have influence on your subscription. + +.. image:: /images/c_manage_scenarios_delete1.png + +If you want to remove a complete scenario, you simply check the box of the relevant scenario(s) and choose 'delete'. +If you choose 'delete raw', it will only remove the raw data and not the timeseries and rasters. You can also remove a specific raster of a scenario by double-clicking on a scenario and clicking on the 'trash' icon next to the layer. + +.. image:: /images/c_manage_scenarios_delete2.png + +.. warning:: + If you delete a scenario, it is really gone! We might be able to retrieve the rasters if you contact support within 14 days. + +Add a scenario +-------------------- + +Scenarios can be automatically exported to Lizard, for example via 3Di. +You can also add a new scenario with the New Item button on the top right corner. + +.. image:: /images/c_manage_newitem.png + +Edit a scenario +---------------- + +Right now you can only edit the accessability of a scenario. +Scenarios are private by default (only visible for logged in users of the same organisation). +You can choose to make them visible for all logged in users or even public so no login is necessary. + +.. image:: /images/c_manage_scenarios_public.png + + +.. tip:: + Make scenarios public if you want to use them in other GIS applications via a `wms link `_. + + +You can add a scenario to an existing project via the threedot icon. + +.. image:: /images/c_manage_scenarios_project.png + +Group scenarios in a project +----------------------------- +Projects are used to group and give insights on scenarios. -Tips +.. image:: /images/c_manage_projects_01.png + +Create a new project with the New Item button on the top right corner. + +.. image:: /images/c_manage_newitem.png + + +Labels +============ + +.. warning:: + This section is to be extended. + +.. image:: /images/c_manage_labeltypes.png + + + +Alarms +====== + +Lizard provides an alarm feature that sends notifications via sms or email when newly processed values of timeseries or temporal rasters exceed a threshold. +It is used to notify people of events that may require action, for instance an upcoming rain event or flood. + +The alarm management screens are found at https://demo.lizard.net/management/#/alarms. + +.. image:: /images/f_alarms_01.jpg + +The configuration has a variety of options to generate relevant notifications with messages that include the specifics of the event. + +Notifications ============= -.. tip:: Ensure that rights are discussed and granted at the beginning of a project. - This prevents delays later due to someone waiting for their rights. +Behind the Notifications tile you find the overviews of existing raster and timeseries alarms for your organisation and their status (active/inactive). +The 'NEW ITEM' button leads you to the form to register a new alarm. +We go through some of the options that the system provides, to explain them in detail. + +Selecting a raster +------------------ + +Raster alarms are set on temporal rasters. These can be part of a scenario, a single source raster or a Geoblock. +An alarm is set for one point location intersecting this temporal raster. + +You can type in the field to search in the names of available rasters. Next, select the type of intersection (Point, Line or Polygon). +Draw the geometry on the map or insert a geometry in the JSON field below the map. + +For Line and Polygon intersections a spatial aggregation is needed to derive a timeseries that can be compared to the alarm thresholds. +The options are: + +* Sum +* Mean +* Min +* Max +* Median +* Count + +Selecting a timeseries +---------------------- + +Timeseries often do not have a clear name or code by themselves. +That is why we start with looking up the asset it relates to. +Once the asset is selected it should be easy to select the timeseries from the list of related objects. + +Relative start and end +---------------------- + +The user doesn't always want to receive alarms for the whole period of newly processed data. +For instance, for operational flood models which might have records of prior theshold exceedances, you may only be interested in receiving alarms for forecasted threaths. + +To only analyse the relevant part of your data you can set relative start and end. +They are set relative to The figure below gives a schematic overview of how this method works. + +.. image:: /images/f_alarms_02.jpg + +If these fields are left empty the trigger check is done on the complete data frame of newly processed data. + +Snoozing option +--------------- + +It can be considered undesirable for alarms to be triggered during brief spikes. +The snoozing option allows the user to determine the timeperiod a threshold should be exceeded before the alarm is triggered and a notification is sent. +This option is available for both the raising of the alarm and its withdrawal. Default is 1 (trigger at first occurrence). + +Contacts and Groups +=================== + +The recipients of alarm notifications are configured in the Contacts screen, with their phone number and/or email address. +Each contact can be part of multiple Groups, which in turn can be used in multiple alarms. +So no need to do a whole lot of data duplications of contact info. + +Templates +========= + +The notification messages are configured with Templates. +There is a difference in setting up Email and SMS Templates: + +* Email: Supports both plain text and HTML and are not limited in length +* SMS: Plain text with maximum length of 160 characters (after substitution of variables) -.. tip:: Don't forget to remove users' rights after a project is completed. - This way, you actively maintain the user database and keep your data under control. - However, be sure to check if any scripts are running on an API KEY of any of these users. +You can use a number of variables to enrich the content of the notifications and make them applicable to different alarms. +The variables contain options for including the name of the receiver and details about the alarm at hand. -.. tip:: If you want to deactivate accounts, contact the `servicedesk `_. \ No newline at end of file +The option "No further impact" determines that a message is used specifically to notify when an alarm is fully withdrawn. +This type of message can be set in addition to a standard message to let receivers know that the situation has settled down. +This often requires a different text and therefore a different Template. diff --git a/source/c_endpoints.rst b/source/c_endpoints.rst index 5600e7c..65f6faa 100644 --- a/source/c_endpoints.rst +++ b/source/c_endpoints.rst @@ -2,4 +2,996 @@ Endpoints ========= -This page contains an explanation of the endpoints in Lizard API! \ No newline at end of file +This page goes into the technical documentation of our API. + +The Lizard REST API is used to interact with Lizard data and objects. +The API enables to collect, export and manage data. +With the API, objects and data can be listed, created, (partially) updated and retrieved. +Objects and data have different endpoints, to allow specific interactions. + +The endpoints are browseable through the API root view: + +- API V3 https://demo.lizard.net/api/v3/ (deprecated) + +- API V4 https://demo.lizard.net/api/v4/ (stable) + +Resources are addressable via an URL and can be interacted with via HTTP verbs. The +most commonly used and supported verbs are: + +* GET : retrieve data +* PATCH/PUT : change data +* DELETE : delete data +* POST : add data + +We also have HEAD and OPTIONS. + +.. _APIAuthenticatiosnAnchor: + +Authentication +============== + +When you login via your browser, your browser receives a session cookie. +All subsequent requests to the API are authenticated with that session cookie. + +Authenticating to the REST API outside of a browser is done by attaching a +Personal API Key to *every* request. You can attach a Personal API Key to +a request by using HTTP Basic Authentication with password = {your api key}. +The username needs to be fixed to ``__key__`` (with double underscores on both +sides of the word "key"). + +Almost all applications or script languages support HTTP Basic Authentication. +See below for some examples. + +Generate a Personal API key at https://demo.lizard.net/management/. +It is considered best practise to generate one Personal API Key per application +or script, so that you can selectively revoke keys in case they are compromised. + +Examples +-------- + +Python requests +~~~~~~~~~~~~~~~ + +With Python, we recommend using the ``requests`` package. Supply your API Key +in the ``auth`` parameter, as follows: + +.. code-block:: python + + import requests + + url = "demo.lizard.net/api/v4/locations" + my_secret_key = "abcdefg.01234567890" # Example + + response = requests.get(url, auth=("__key__", my_secret_key)) + + +Postman +~~~~~~~ + +In Postman you can set up HTTP Basic Authentication as shown in the image below. +Be sure to choose "Basic Auth" as Type, and not "API Key". + +.. image:: /images/c_apitechnical_03.png + + +Applications: OAuth2 +-------------------- + +Applications (such as dashboards) that use the Lizard API should authenticate +using OAuth2. For this, you will need a registration. Contact our servicedesk to +request one. + + +Legacy: username / password +--------------------------- + +Lizard supports authenticating by attaching ``username`` and ``password`` to +every request, either directly in Username and Password headers, or using +HTTP Basic Authentication. This legacy authentication does generate a session. + +.. warning:: + This form of authentication has been deprecated on *June 1st, 2021*. Ensure + that your applications and scripts use new API Keys after that date. + +In the period until June 1st, 2021, correct username / password combinations +will be migrated automatically to a Personal API Key, in such a way that +you may keep using the same username / password combination. Password changes +will however not be reflected anymore in the migrated API Key. + + +Authorisation +============= + +For all endpoints, users have to be ``admin`` in the organisation that owns the +data to create or update resources. +See :doc:`b_usermanagement` for more information about roles and permissions. + +Supported data formats +====================== + +The data formats supported depend on the endpoint, although +JSON is generally available. See documentation on the individual endpoints +for specifics. + +The format of responses can be controlled by specifying an ``Accept`` header +in requests, e.g. Accept: application/json. When posting data, the +format of the payload must be specified via a ``Content-Type`` header, e.g. +Content-Type: text/csv. + +When interacting with the API via a browser, the ``format`` query parameter +may also be used for controlling the format of the response, for example: + +https://demo.lizard.net/api/v4/timeseries/?format=json + +Common variables +================ + +In this section, query parameters and response fields applicable to all +endpoints are described. + +Query parameters +---------------- + +The API supports the following common query parameters on :http:method:`GET` list requests: + +.. http:get:: //?page=(int:offset)&page_size=(int:size) + + :query page: offset number; default is 0. + :query page_size: limit number of entries returned; default is 10. + +Response fields +--------------- + +All list responses share the following fields. + + * **count:** number of results for this page + * **next:** url to next page, `null` if last page + * **previous:** url previous page, `null` if first page + * **results:** array with actual results + +These fields are not specifically mentioned in the response description of each endpoint. + +Timeseries +========== + +This section describes timeseries-related endpoints. + +.. _timeseries_endpoint: + +.. _timeseries_base_parameters: + + **Example request:** + + GET https://demo.lizard.net/api/v4/timeseries/1bcba36e-781d-4339-9632-00d5398c3b15/ + + **Example response:** + + .. image:: /images/c_apitechnical_01.jpg + +Locations +========== + +This section describes location-related endpoints. + +.. _locations_endpoint: + + **Example request:** + + GET https://demo.lizard.net/api/v4/locations/faa84a55-cb8d-460c-a8b8-18d2b59da28c/ + + **Example response:** + + .. image:: /images/c_apitechnical_02.jpg + +Changes in v4 compared to v3 +============================ + +Some major changes have been made in the setup of API v4 in comparison to v3. We have worked on consistency in parameterisation and response formats per endpoint. + +To help users convert their scripts and applications we list the most important changes here. For more details please inspect the documentation within the API. + +Timeseries +---------- + + * Timeseries events, aggregates and percentiles can be retrieved from separate sub-endpoints under the timeseries instance, instead being combined in the detail page of the timeseries instance. + * Timestamps are in ISO8601 format, instead of UNIX milliseconds. + +Rasters +------- + +- Raster aggregates have been split out in separate sub-endpoints under ``/api/v4/rasters/{uuid}/``: + + - counts + + - curve + + - line + + - point + + - rrc + + - zonal + +- Raster WMS is no longer available within the versioned Lizard API (``/api/v3/wms/`` isn't being replaced by ``/api/v4/wms/``). Instead use https://demo.lizard.net/wms/. + +- Timestamps are in ISO8601 format, instead of UNIX milliseconds. + +Scenarios +--------- + +- scenario-results has become a sub-endpoint under scenario instances, i.e. ``/api/v4/scenarios/{uuid}/results/`` + +Labels +------ + +- All label related endpoints have been grouped under the labeltypes endpoint. + +Events +------ + +- The events endpoint has been placed under eventseries. + +Miscellaneous +------------- + +- /regions has become /boundaries in v4 + +- The following endpoints will not return in v4: + + - annotations + + - domains + + - nodes + + - leveereferencepoints + + - leveerings + + - leveesections + + - leveezones + + - opticalfibers + + - timeseriestypes + + +Datatypes +========= + +Lizard can store & accelerate three types of data: vectors, rasters and time series. +These data types are a digital representation of the physical environment. +We also distinguish wms layers, scenarios and labels. + +Rasters +======= + +Introduction +------------ + +Rasters in Lizard represent continuous information about the physical environment across an area. +Rasters can be static or temporal. Examples of static data are digital elevation models and land cover maps. +Temporal raster datasets, or raster series, consist of a series of rasters for a certain time interval. +Examples of temporal raster datasets are radar measurements of precipitation, air quality or hydrodynamic model results such as flood depths. + +.. _why_rasterstores: + +Why Rasterstores +----------------- + +The rasterstore is a library designed for quick data retrieval. Rasters provide a simple structure for data analyis. + +Main functionalities: + +* Retrieve values for a specific location or area +* Analyse data for a particular period or moment in time +* Map visualisation in the lizard Viewer +* Exporting to a geotiff file +* Connecting with external applications via WMS +* Base block for on-the-fly map calculations and conversions +* API interactions: list, create, (partial) update, retrieve and delete + +Raster data +------------ + +A rasters is a grid of cells organized into rows and columns. Each cell contains a value that represents real-world phenomena, such as water depth. The values can be continuous (e.g. 28.5 degrees) or integer numbers. Integer numbers can represent classes (e.g. 1: Water, 2: Land). + +Rasterstore data can be static or temporal. Examples of static data are a digital elevation model and a land cover map. Temporal rasterstores consist of multiple timesteps. The data can be stored in time using an origin (e.g. 2019-01-01) and an interval (e.g. every day). Examples are weather predictions and timeseries of 3Di model results. + +Requirements +-------------- + +Your raster data has to be in the format of a single band, georeferenced TIFF (geotiff), with the following requirements: + +* **Geotiff should have valid projection** including transformation (EPSG code). All projections supported by proj4 are supported. +* **Geotiff should have a NODATA value**. +* **Geotiff should be single band**. RGB or multi-band is not supported. +* **Temporal raster datasets** with multiple timesteps **should be supplied with a single geotiff per timestamp** + +Raster metadata +---------------- + +Characteristics of rasters are stored in the attributes of a rasterstore. The attributes are used to indicate the function, purpose and meaning of data. The main attributes are listed below. + +* Organisation +* Name +* Description +* Aggregation type +* Observation type +* Colormap +* Supplier name +* Supplier code +* Temporal behaviour + +.. _vector_data_types: + +Vectors +======= + +Vectors in Lizard represent physical or abstract objects in time and space. +Lizard offers an extensive library of vector data models that can be used to represent objects (physical or abstract) in the physical environment. +Per data model, there are columns defined with certain data_types. +Some are obligatory, such as the id, some are optional. Below you find the available columns per data model. + +.. csv-table:: "administrative boundaries": "https://demo.lizard.net/api/v4/boundaries/" + :header: column_name, data_type + + id, integer + code, character varying + type, smallint + name, character varying + created, timestamp with time zone + geometry, USER-DEFINED + last_modified, timestamp with time zone + +.. csv-table:: "bridges": "https://demo.lizard.net/api/v4/bridges/" + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + name, character varying + type, character varying + width, double precision + length, double precision + height, double precision + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + last_modified, timestamp with time zone + +.. csv-table:: "buildings": "https://demo.lizard.net/api/v4/buildings/" + :header: column_name, data_type + + id, integer + created, timestamp with time zone + start, timestamp with time zone + end, timestamp with time zone + image_url, character varying + code, character varying + build_year, integer + geometry, USER-DEFINED + organisation_id, integer + last_modified, timestamp with time zone + +.. csv-table:: "culverts": "https://demo.lizard.net/api/v4/culverts/" + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + type, character varying + bed_level_upstream, double precision + bed_level_downstream, double precision + width, double precision + length, double precision + allowed_flow_direction, integer + height, double precision + material, integer + shape, integer + description, text + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + last_modified, timestamp with time zone + +.. csv-table:: "filters": "https://demo.lizard.net/api/v4/filters/" + :header: column_name, data_type + + id, integer + created, timestamp with time zone + filter_top_level, double precision + filter_bottom_level, double precision + aquifer_confiment, text + litology, text + code, character varying + groundwater_station_id, integer + top_level, double precision + high_groundwater_level, double precision + low_groundwater_level, double precision + last_modified, timestamp with time zone + +.. csv-table:: "fixeddrainagelevelareas":"https://demo.lizard.net/api/v4/fixeddrainagelevelareas/" + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + name, character varying + type, integer + water_level_summer, double precision + water_level_winter, double precision + water_level_fixed, double precision + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + last_modified, timestamp with time zone + +.. csv-table:: "groundwaterstations": "https://demo.lizard.net/api/v4/groundwaterstations/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + image_url, character varying + code, character varying + name, character varying + surface_level, double precision + top_level, double precision + bottom_level, double precision + station_type, integer + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + scale, integer + status, integer + last_modified, timestamp with time zone + +.. csv-table:: "leveecrosssections": "https://demo.lizard.net/api/v4/leveecrosssections/", + :header: column_name, data_type + + id, integer + created, timestamp with time zone + start, timestamp with time zone + end, timestamp with time zone + image_url, character varying + code, character varying + name, character varying + distance_to_reference, integer + geometry, USER-DEFINED + levee_id, integer + organisation_id, integer + last_modified, timestamp with time zone + +.. csv-table:: "levees": "https://demo.lizard.net/api/v4/levees/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + recurrence_time, integer + material, character varying + coating, character varying + crest_height, double precision + image_url, character varying + name, character varying + category, integer + levee_ring_id, integer + levee_type, integer + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + last_modified, timestamp with time zone + +.. csv-table:: "locations": "https://demo.lizard.net/api/v4/locations/", + :header: column_name, data_type + + id, integer + organisation_id, integer + code, character varying + name, character varying + object_type_id, integer + object_id, integer + created, timestamp with time zone + access_modifier, integer + last_modified, timestamp with time zone + last_modified_by, character varying + extra_metadata, text + ddsc_icon_url, character varying + ddsc_show_on_map, boolean + geometry, USER-DEFINED + uuid, uuid + node_id, integer + supplier_id, integer + +.. csv-table:: "manholes": "https://demo.lizard.net/api/v4/manholes/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + surface_level, double precision + drainage_area, integer + material, character varying + width, double precision + length, double precision + shape, character varying + bottom_level, double precision + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + water_consumption, double precision + last_modified, timestamp with time zone + +.. csv-table:: "measuringstations": "https://demo.lizard.net/api/v4/measuringstations/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + name, character varying + region, character varying + station_type, integer + category, character varying + frequency, character varying + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + last_modified, timestamp with time zone + +.. csv-table:: "monitoringwells": "https://demo.lizard.net/api/v4/monitoringwells/", + :header: column_name, data_type + + id, integer + created, timestamp with time zone + start, timestamp with time zone + end, timestamp with time zone + image_url, character varying + code, character varying + num_timeseries, integer + well_top_level, double precision + well_bottom_level, double precision + geometry, USER-DEFINED + levee_crosssection_id, integer + organisation_id, integer + last_modified, timestamp with time zone + +.. csv-table:: "orifices": "https://demo.lizard.net/api/v4/orifices/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + start_point_id, integer + end_point_id, integer + connection_serial, integer + crest_width, double precision + crest_level, double precision + shape, character varying + initial_opening_height, double precision + code, character varying + name, character varying + flow_type, integer + angle, double precision + contraction_coeff, double precision + lat_contr_coeff, double precision + negative_flow_limit, double precision + positive_flow_limit, double precision + allowed_flow_direction, integer + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + last_modified, timestamp with time zone + +.. csv-table:: "outlets": "https://demo.lizard.net/api/v4/outlets/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + manhole_id, integer + connection_serial, integer + open_water_level_average, double precision + open_water_level_summer, double precision + open_water_level_winter, double precision + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + last_modified, timestamp with time zone + +.. csv-table:: "overflows": "https://demo.lizard.net/api/v4/overflows/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + start_point_id, integer + end_point_id, integer + connection_serial, integer + crest_width, double precision + crest_level, double precision + open_water_level_average, double precision + open_water_level_summer, double precision + open_water_level_winter, double precision + angle, double precision + allowed_flow_direction, integer + image_url, character varying + code, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + sensor_level, double precision + surface_level, double precision + name, character varying + last_modified, timestamp with time zone + +.. csv-table:: "parcels": "https://demo.lizard.net/api/v4/parcels/", + :header: column_name, data_type + + id, integer + created, timestamp with time zone + start, timestamp with time zone + end, timestamp with time zone + image_url, character varying + code, character varying + name, character varying + external_id, character varying + geometry, USER-DEFINED + organisation_id, integer + num_timeseries, integer + last_modified, timestamp with time zone + +.. csv-table:: "pipes": "https://demo.lizard.net/api/v4/pipes/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + start_point_id, integer + end_point_id, integer + connection_serial, integer + invert_level_start_point, double precision + invert_level_end_point, double precision + length, double precision + type, character varying + material, character varying + width, double precision + height, double precision + shape, character varying + number_of_inhabitants, integer + dwa_definition, character varying + impervious_surfaces, text + allowed_flow_direction, integer + image_url, character varying + code, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + last_modified, timestamp with time zone + +.. csv-table:: "polders": "https://demo.lizard.net/api/v4/polders/", + :header: column_name, data_type + + id, integer + created, timestamp with time zone + image_url, character varying + code, character varying + name, character varying + organisation_id, integer + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + last_modified, timestamp with time zone + +.. csv-table:: "pressurepipes": "https://demo.lizard.net/api/v4/pressurepipes/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + length, double precision + material, character varying + diameter, double precision + shape, character varying + year_of_construction, integer + image_url, character varying + type, integer + name, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + last_modified, timestamp with time zone + +.. csv-table:: "pumpeddrainageareas": "https://demo.lizard.net/api/v4/pumpeddrainageareas/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + name, character varying + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + connected_impervious_surface, double precision + downstream_pumped_drainage_area_id, integer + extraneous_water, double precision + inhabitants, integer + minimum_overflow_crest_level, double precision + pollution_equivalent, double precision + population_equivalent, double precision + pump_station_id, integer + sanitary_load, double precision + sewer_system, integer + upstream_load, double precision + water_consumption, double precision + water_retention_capacity, double precision + area_type, integer + connected_impervious_surface_mixed, double precision + connected_impervious_surface_rainwater, double precision + num_timeseries, integer + pump_overcapacity, double precision + last_modified, timestamp with time zone + +.. csv-table:: "pumps": "https://demo.lizard.net/api/v4/pumps/", + :header: column_name, data_type + + id, integer + pump_station_id, integer + code, character varying + serial, integer + capacity, double precision + start_level, double precision + stop_level, double precision + name, character varying + type, character varying + reduction_factor_no_levels, double precision + reduction_factor, double precision + characteristics, character varying + allowed_flow_direction, integer + start_level_delivery_side, double precision + stop_level_delivery_side, double precision + created, timestamp with time zone + last_modified, timestamp with time zone + +.. csv-table:: "pumpstations": "https://demo.lizard.net/api/v4/pumpstations/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + type, character varying + start_point_id, integer + end_point_id, integer + connection_serial, integer + capacity, double precision + start_level, double precision + stop_level, double precision + name, character varying + allowed_flow_direction, integer + start_level_delivery_side, double precision + stop_level_delivery_side, double precision + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + last_modified, timestamp with time zone + +.. csv-table:: "roads": "https://demo.lizard.net/api/v4/roads/", + :header: column_name, data_type + + id, integer + created, timestamp with time zone + name, character varying + type, integer + use, integer + geometry, USER-DEFINED + code, character varying + end, timestamp with time zone + image_url, character varying + organisation_id, integer + start, timestamp with time zone + region_id, integer + last_modified, timestamp with time zone + +.. csv-table:: "sluices": "https://demo.lizard.net/api/v4/sluices/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + name, character varying + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + last_modified, timestamp with time zone + +.. csv-table:: "wastewatertreatmentplants": "https://demo.lizard.net/api/v4/wastewatertreatmentplants/", + :header: column_name, data_type + + id, integer + organisation_id, integer + created, timestamp with time zone + code, character varying + name, character varying + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + last_modified, timestamp with time zone + +.. csv-table:: "weirs": "https://demo.lizard.net/api/v4/weirs/", + :header: column_name, data_type + + id integer + organisation_id, integer + created, timestamp with time zone + code, character varying + crest_type, smallint + crest_width, double precision + crest_level, double precision + name, character varying + lat_dis_coeff, double precision + angle, double precision + allowed_flow_direction, integer + controlled, integer + comment, text + discharge_coeff, double precision + image_url, character varying + geometry, USER-DEFINED + end, timestamp with time zone + start, timestamp with time zone + num_timeseries, integer + type, smallint + last_modified, timestamp with time zone + +Time Series +=========== + +Time series in Lizard represent in situ measurements and hindcasts/forecasts of processes in the physical environment. + +A time series object is always related to a location object, which is in turn optionally linked to an asset. +By clicking an asset in the Lizard Viewer a list of related time series objects is fetched which can be visualised. + +The storage of time series data and the presentation in the API are focussed on high performance and retrieving relevant information out of it. +There are multiple options for making aggregations and deriving statistics. + +Value Types +----------- + +Lizard time series can have different value types. The following value types are supported: + +Numerical|Integer and float +Alphanumerical|Text +Images|PNG and JPG +Files|E.g. PDF + +Series of numerical values and images can be visualised in the Lizard Viewer. Text values and Files can only be retrieved or downloaded from the API. + +Aggregation options +------------------- + +Time series can consist of many data points, making it difficult to handle when interested in longer periods of time. +The Lizard API has several options to aggregate the bulk data to make it manageable for presentation in clients or for analysis purposes. + +In the API there are two parameters that can be used for aggregating time series. +First there is the window parameter to determine what is the interval of the retrieved (aggregated) data. +Options are: + +- raw +- 5min +- hour +- day +- week +- month +- year + +Field parameters +---------------- + +The timeseries events sub-endpoint returns the raw values. It is also possible to retrieve aggregated values, in the aggregates sub-endpoint. +With the fields parameter many statistics can be retrieved. Multiple fields can be requested in one call. + +Options are: + +- min +- min_timestamp +- max +- max_timestamp +- avg +- count +- first +- first_timestamp +- last +- last_timestamp +- nans +- sum + +For more options in requesting time series see the API endpoint: https://demo.lizard.net/api/v4/timeseries/{timeseries_uuid}/aggregates/ + +Labels +====== + +Labels consist of three elements that are available through our API: LabelTypes, Labels and LabelParameters. +Labels are always linked to an organisation. +Each element is explained below. + +LabelTypes +----------- + +LabelTypes can be found on the LabelType-endpoint ``_ and describe the type of Label. +LabelTypes contain the following fields: + +* name: name of the LabelType +* description: description of the LabelType +* uuid: unique ID for the LabelType +* organisation: organisation that owns the LabelType +* created: date when LabelType was created +* object_type: the type of Asset related to the LabelType +* last_modified: date when LabelType was last updated +* source: source of the LabelType e.g. a GeoBlock + +Labels +-------- + +The Labels related to a specific LabelType can be found on the Labels-endpoint ``_. +Labels contain the follow fields: + +* label_value: the index value of the Label +* object_type: the type of Asset related to the Label +* object_id: id of the Asset +* created: date when the label was created +* start: start of the validity of the Label (history of the Label) +* end: end of the validity of the Label (history of the Label) +* extra: this field can be used to show variables related to the definition of the Label (for instance a threshold value related to the Label) + +LabelParameters +----------------- + +The Label parameters is developed to store parameters that are used in the computation of the Label. +LabelParameters are linked to LabelTypes and Assets and can be found on the LabelParameters-endpoint ``_. +LabelParameters contain the following fields: + +* label_type: the related LabelType +* value: value of the parameters +* name: name of the parameter +* object_type: the type of Asset related to the LabelParameter +* object_id: the ID of the Asset related to the LabelParameter +* created: date when LabelParameter was created +* start: start of the validity of the LabelParameter (history of the LabelParameter) +* end: end of the validity of the LabelParameter (history of the LabelParameter) + +Label statistics +------------------ + +With the count filter on the Labels endpoint it is possible to query a histogram of all Labels of a certain LabelType or a histogram of Labels within a region (e.g. municipality). diff --git a/source/c_introduction.rst b/source/c_introduction.rst index 0cb03b5..c5fd425 100644 --- a/source/c_introduction.rst +++ b/source/c_introduction.rst @@ -2,4 +2,361 @@ Introduction ============ -This page contains an introduction to the Lizard API! \ No newline at end of file +API functional documentation +============================== + +You can access the Lizard API via “{your_organisation}.lizard.net/api/v4/”. + +.. image:: /images/c_apifunctional_01.jpg + +What is an API? +=============== + +API stands for Application Programming Interface. +The API, looking like the picture above, gives back timeseries, rasters, or other data or information. +This is depending on the request you do to the API. +This request comes from the URL you type in the browser. +You can also access the API via another program, and make automatic requests. + +Basic use API +============= + +Below we discuss a basic request to the API. +More examples and possibilities will be discussed further down + +The basic url is www.{your_organisation}.lizard.net/api/v4, for example: + www.demo.lizard.net/api/v4 + +If you type this in your browser, for example Google Chrome, you will get a list of parameters. +These parameters are so called *endpoints*. +If you paste this endpoint after your basic url, you will initiate a query. +An example is ``locations``. +If you click on the url www.demo.lizard.net/api/v4/locations , you will send a query to Lizard to search all locations that you have access to. +As a response, you will get indeed the locations back, as well as some metadata. + +.. image:: /images/c_apifunctional_02.jpg + +Above each page, you will see some additional parameters, with which you can specify your query more. +Most endpoints have examples of this. + +.. image:: /images/c_apifunctional_03.jpg + +If we are looking for a specific location, with a name that starts with 'Inlaat', we can use this query: + +https://demo.lizard.net/api/v4/locations/?name__startswith=Inlaat + +If you are an administrator or supplier of the data, you can also edit or delete the data via the API. + +Versions +======== + +We support two versions of our API: + +* API v3: deprecated (sunset date: 4 July 2023) +* API v4: stable + + +API V3 will be taken offline by 4 July 2023. Any use in scripts or applications should be reimplemented in API V4. +API V4 is the stable version. We can make changes to this version, but they should always be backwards compatible and therefore not break any existing use. + +Digitale Delta API +------------------ + +De Nederlandse watersector staat voor de opgave om in een snel veranderende omgeving haar informatievoorziening te transformeren en klaar te maken voor de toekomst. +De Digitale Delta is het open platform voor het aanbieden en vinden van relevante data voor het waterbeheer in Nederland. +Lizard spreekt Digitale Delta en is een van de dataleveranciers binnen de Digitale Delta. +De Digitale Delta API Root is te vinden op https://demo.lizard.net/dd/api/v2 + +De documentatie van de Digitale Delta API is te vinden op: +https://github.com/DigitaleDeltaOrg/dd-api-spec/blob/master/README.md + +Data uploads +================ + +We support multiple types of data uploads. +Data can be uploaded manually, via the data management interface, or you can set up real-time data connections using the API. +We can also provide support on either manual or automatic data uploads. + +.. note:: + Please note that Lizard assumes the data to be in UTC + + +Rasters +=========== + +Requirements +-------------- + +Your raster data has to be in the format of a single band, georeferenced TIFF (geotiff), with the following requirements: + +* **Geotiff should have valid projection** including transformation (EPSG code). All projections supported by proj4 are supported. +* **Geotiff should have a NODATA value**. +* **Geotiff should be single band**. RGB or multi-band is not supported. +* **Temporal raster datasets** with multiple timesteps **should be supplied with a single geotiff per timestamp** + + +Upload +------ + +You can supply your GeoTIFF’s in multiple ways: + +* Use the Data Management App +* Use the Lizard API +* Use the Lizard FTP + +Use of the Data Management App is fairly straightforward and is build upon our API. +If you want to upload larger raster datasets, please make use of our API. + + +Using the Data Management App +++++++++++++++++++++++++++++++ + +Once you have successfully created a raster store you will see the pop up below. + +.. image:: /images/c_dataexchange_03.png + +Choose upload data to browse your GeoTIFF’s. +When you want to add data to an existing raster store, click on the upload icon |uploadicon| in the list of existing Raster Stores. + +.. |uploadicon| image:: /images/c_dataexchange_04.png + +You can supply multiple rasters, Lizard will blend them together! Click “Save all Files” to start uploading your data. +Your GeoTIFF’s will be uploaded in a task. You can follow the status of the task by clicking “show asynchronous task”. + +.. image:: /images/c_dataexchange_05.png + +Using the Lizard API +++++++++++++++++++++ + +Below you find an example of how to upload a temporal geotiff in Python: + +.. code-block:: python + + import os + import shutil + import requests + import json + import time + from datetime import datetime, timedelta + + srcdir = r"" + tgtdir = r"" #Files are transfered here after being uploaded + base_url = 'https://demo.lizard.net/api/v4/rastersources/{}/data/' #Fill in rastersource__uuid + api_key = '' #Fill in personal API key of supplier account + + headers= { + "username": "__key__", + "password": "{}".format(api_key) + } + + file_id = 10000001 #Random counter + + for filename in os.listdir(srcdir): + print(filename) + f = open(os.path.join(srcdir, filename), 'rb') + files = {'file': f} + payload = {'file_id': file_id, + 'timestamp': '{}'.format( + datetime.strptime(filename.split('.')[0], + '%Y%m%dT%H%MZ' + ).strftime('%Y-%m-%dT%H:%M:00Z') + ) + } + #The upload request could be put in a try/except like the result check, to prevent disruptions + res = requests.post(url=base_url, + files=files, + data=payload, + headers=headers + ) + f.close() + #Check task result to know when to upload the next + task_url= res.json()['url'] + processed = False + while not processed: + time.sleep(4) #Can be adjusted based on average processing time per file + try: + task_res= requests.get(url=task_url, + headers=headers + ) + if task_res.json()['status'] == 'SUCCESS': + processed = True + except: + print('Error occurred') + shutil.move(os.path.join(srcdir, filename), + os.path.join(tgtdir, filename) + ) + file_id+= 1 + + +Time Series +============= + +Requirements +------------ + +Time series can be linked through their location to one of the vector data models listed :ref:`here `. + +Time series can be imported manually, by uploading a csv file in the timeseries management screen (see https://docs.lizard.net/c_timeseries.html) or via the API. + +Upload +------ + + +Using the Data Management App +++++++++++++++++++++++++++++++ + +The first line of the file should describe the column names, for example: + + +.. csv-table:: Example wcsv + :header: timestamp, value + + 2020-03-20T01:00:00Z, 3.14 + 2020-03-20T01:05:00Z, 2.72 + +The columns should contain: + +* **timestamp:** a timestamp in iso8601 format. +* **value:** value as either a float or integer number. + + +.. note:: + The upload will fail if there are duplicate timestamp + + + +Using the Lizard API +++++++++++++++++++++ + +Timeseries data can be supplied with a POST request to the timeseries data endpoint in the API (``/api/v4/timeseries/{uuid}/data/). +Interaction with the API can be done from e.g. Postman or Python. +User credentials should be included in the header and the data in the payload of the request. + +Value based timeseries ++++++++++++++++++++++++++++ + +This type of timeseries consists of integers, floats, float arrays or text. The body of the request is a JSON object with timestamps and values: + +.. code-block:: json + + { + "data": [{ + "datetime": "2019-07-01T01:30:00Z", + "value": 40.7 + }, + { + "datetime": "2019-07-01T02:00:00Z", + "value": 39.1 + } + ] + } + +File based timeseries +++++++++++++++++++++++ + +This type consists of images, movies or files. A single files is posted on a certain datetime, which is included in the header of the request. + +An example of an upload of an image using requests in Python: + +.. code-block:: none + + import requests + import datetime as dt + + now = dt.datetime.utcnow() + uuid = ‘385c08c5-a0cf-4097-a98f-b6f053ef32c6’ + url = 'https://demo.lizard.net/api/v4/timeseries/{}/events/'.format(uuid) + data = open('./x.png', 'rb').read() + res = requests.post(url=url, + data=data, + headers={ + 'Content-Type': 'image/png', + 'datetime': now.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), + 'username': 'jane.doe', + 'password': 'janespassword' + }) + +Assets +======= + +We support asset synchronisation. +This type of data feed has to be configured per customer. +Changes in location names, coördinates and new locations can be seen in Lizard as soon as the following day. + +Upload vectors as a shapefile +----------------------------- + +Assets can be uploaded to Lizard with shapefiles via the import form at /import. +These shapefiles contain information about assets or assets together with their nested assets (e.g. GroundwaterStations and their Filters). + +A shapefile can be uploaded as a zipped archive. +The zipfile should contain at least a .dbf, .shp, .sh and a .ini file. +In case of nested assets, these should be found in the same shapefile record (row) as their assets. +The following section provides an example of an .ini file for groundwater stations. + +Assets without nested assets +++++++++++++++++++++++++++++++++++++ + +An .ini file is used to map shapefile attributes to Lizard database tables, organisations and attributes. An .ini file consists of three sections: + + * **[general]:** indicates asset name to upload to and optionally organisation uuid. + * **[columns]:** maps lizard columns to shapefile columns + * **[default]:** optionally provide default values for columns + +This example .ini creates a new asset from each record of the shapefile, with: + + * A **code** taken from the ID_1 column of the shapefile; + * A **name** taken from the NAME column of the shapefile; + * A **surface_level** taken from the HEIGHT column of the shapefile; + * A **frequency** that defaults to daily; + * A **scale** that defaults to 1, which means this asset can be seen at world scale, when the asset-layer in Lizard-nxt is configured accordingly. + +Assets with nested assets +++++++++++++++++++++++++++++++++++++ + +In case of nested assets another section should be added to the .ini file: + + * **[nested]:** maps lizard columns to shapefile columns, it is possible to add multiple nested assets for one asset. + +A groundwater station with filters (its nested assets) would look like this: + +.. code-block:: none + + [general] + asset_name = GroundwaterStation + nested_asset = Filter + + [columns] + code = ID_1 + name = NAME + surface_level = HEIGHT + + [defaults] + frequency = daily + scale = 1 + + [nested] + first = 2_code + fields = [code, filter_bottom_level, filter_top_level, aquifer_confiment, litology] + +The **[nested]** categories describe: + + * **first:** indicates the first column in the shapefile that maps lizard columns to shapefile columns. This column and all columns to its right configure nested assets. The number of these columns should be a multiple (the number of maximum nested assets per asset) of the fields. + * **fields:** lizard-nxt fields. Each column in the shapefile (including the ‘first’) is mapped to these fields in order, without considering the shape column names. + +This example .ini creates (a) new nested asset(s) from each record of the shapefile, with: + +* A **link** to an asset that conforms to the asset as described in the `Assets without nested assets`_. +* A **code** taken from the 2_code column of the shapefile. And a new nested asset with a filter_bottom_level for each 5th column from that column onwards; +* A **filter_bottom_level** taken from the column directly next to the 2_code column of the shapefile. And a new nested asset with a filter_bottom_level for each 5th column from that column onwards; +* A **filter_top_level** taken from the column 2 columns next to the 2_code column of the shapefile. And a new nested asset with a filter_top_level for each 5th column from that column onwards; +* A **aquifer_confinement** taken from the column 3 columns next to the 2_code column of the shapefile. And a new nested asset with a aquifer_confinement for each 5th column from that column onwards; +* A **lithology** taken from the column 4 columns next to the 2_code column of the shapefile and each. And a new nested asset with a lithology for each 5th column from that column onwards + +You can copy paste this code in your own .ini file and zip it together with the shapefile. + + +Contact +======= + +If you have additional questions about the use of the API contact our servicedesk (servicedesk@nelen-schuurmans.nl) diff --git a/source/d_authentication_user_management.rst b/source/d_authentication_user_management.rst index 70f51ef..e2b9da3 100644 --- a/source/d_authentication_user_management.rst +++ b/source/d_authentication_user_management.rst @@ -2,4 +2,198 @@ Authentication and User Management ================================== -This page contains an explanation of Authentication and User Management in Lizard! \ No newline at end of file + +Signing in +========== + +Users that already have a Lizard account can click the "Log in" +button on the top right of the screen. + +First-time users require an invitation to create a Lizard account. Users with +a "manager" role are able to send invitations to new users. +If you do not know whom to contact, please contact our support office +(servicedesk@nelen-schuurmans.nl). + +After clicking "Log in" or after following the invitation link, you will arrive +at the login screen. + +.. note:: + Please ensure that "https://auth.lizard.net/" domain is indeed displayed + in your browser's address bar and that your browser displays the lock + symbol indicating that the connection is secure. + +On the login page you have four different options to sign in: + +1. through a company account, +2. through a social account, +3. with username and password, +4. by creating a new account (Sign up). + +First-time users may choose any of these options. If your company is listed as +one of the possible companies to sign in with, that is the preferred choice. + +Existing users should use the same method as they used when signing in for +the first time. If your Lizard username/password existed before Januari 2021, +use method 3. + +.. tip:: + Do you want to add your company to the list to centralise the user accounts + of your organisation? Please contact our support office + (servicedesk@nelen-schuurmans.nl) for the options. + + +Organisations +============= + +All data in Lizard is linked to an organisation. +Organisations are the backbone of our authorisation model. +When an organisation uploads data, they are able to determine the level of authorisation required for access. +There are three types of authorisation options that can be applied to your data: + +* **Public**: everyone is able to access your data +* **Common**: everyone with login credentials to Lizard is able to access your data +* **Private**: everyone with login credentials to Lizard AND user rights to your organisation is able to access your data + + + +Whitelisting +------------ + +The users of a certain portal may not be interested in a lot of the public/common datasets that are made available by others. +Every Lizard portal has its own whitelist. +Whitelisting allows the organisations to determine which data should be visible. +This can remove some of the clutter. +The whitelist affects both the Lizard Viewer aswell as the Catalogue. + +The effect is that for the same user the available data can differ between [your_organisation].lizard.net and demo.lizard.net (for which all organisations are whitelisted). +The whitelisting mechanism is overruled if a user has specific authorisation for an organisation. + +.. tip:: + Do you want to see or change the whitelist settings of a portal? Please contact our support office + (servicedesk@nelen-schuurmans.nl). + + +Roles +----- + +We have 4 roles and 3 different types of privileges. + +* A **user**, who can only *read* data +* A **supplier**, who can *read* data and change (*'write'*) his or her own data +* An **administator**, who can *read* data and change (*'write'*) all organisation's data. +* A **manager**, who can *manage* other roles in the organisation. A manager can not read or write data by default. This role should be appointed separately. + + +User management +=============== + +Users can be managed in the User Management interface. +This interface can be reached via the {your_organisation}.lizard.net/management/users/ (or `demo.lizard.net/management/users `_). + +.. note:: + You require a “manager” role to access the User Management interface. + Haven’t got a “manager” role but you would like to add the User Management interface? + Please contact the application manager within your organisation or our support office (servicedesk@nelen-schuurmans.nl) + +.. image:: /images/b_usermanagement_03.png + +In the example above, you see the current rights for 7 users under the organisation Nelen & Schuurmans. + + +The management screen offers the opportunity to manage various aspects of your organization. +This includes managing your data: rasters, scenarios, time series, and more. +For complete use of this page, refer to the `lizard documentation `_. +The most important thing in this case is "User Management". +Only managers have access to the "Users" screen. +In this screen, you can: + +1. Invite new users. +2. Manage invitations. +3. Adjust existing rights. + + +Inviting New Users +---------------------------- + +If a new user needs access to Lizard from the organization, this can be granted by the Manager. +This is done as follows: + +1. Log in to the organization's portal ({organization}.lizard.net). +2. Go to the user section in the management screen ({organization}.lizard.net/management/users). +3. Click on `+ NEW USER` at the top right of the screen (Image 1, in red). +4. Type the user's email in the 'email' field (Image 2). +5. Select the roles the user will have. For the rights associated with the roles, refer to `Roles`_. +6. Click `SAVE`. +7. Success! The invitation has been sent and will be in the new user's mailbox within 5 minutes. + +.. tip:: Clicking on a role when inviting someone will also display the rights of each role on the left side of your screen. + +.. tip:: If the email does not appear in the inbox after 5 minutes, first check your spam folder. If the invitation is not there either, you can always contact the `servicedesk `_. + +.. figure:: /images/h_gebruiker_uitnodigen_1.png + :scale: 50% + :alt: Overview of the Lizard management page with multiple users. + + Image 1: An overview of the user section in the management screen of Lizard. + Here you can view existing rights and invite new users (red) or manage pending invitations (yellow). + +.. figure:: /images/h_gebruiker_uitnodigen_2.png + :scale: 50% + :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. + + Image 2: The invitation screen for new users. You select the roles by clicking on them. + + + +Managing Invitations +--------------------- + +In the `Pending Invitations` screen, you can see which invitations you have sent that have not yet been accepted or expired. +Invitations expire by default within 15 days, but you can cancel them earlier by clicking on the 3 dots next to an email (Image 3). +If an email has not reached a user, you can also verify the email here. + +.. figure:: /images/h_pending_uitnodiging_1.png + :scale: 50% + :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. + + Image 3: An overview of pending invitations. + + +Adjusting Existing Rights +--------------------------- + +In the user rights overview screen, you can manage the rights of existing users. +Here you see the following information of users who have rights for your organization: + +1. Username +2. Email +3. Roles + +.. figure:: /images/h_rechten_beheren_1.png + :scale: 50% + :alt: Overview of the Lizard management page with multiple users. + + Image 4: An overview of pending invitations. + +By clicking on the username of the respective user, you will be taken to this user's specific page. +Here, you can click on the roles you want to remove or add. +If a role is clearly colored, the user has these rights. + +.. figure:: /images/h_rechten_beheren_2.png + :scale: 50% + :alt: Roles of an individual user. + + Image 5: In this case, the user has 'User' and 'Manager' rights. + + +Tips +============= + +.. tip:: Ensure that rights are discussed and granted at the beginning of a project. + This prevents delays later due to someone waiting for their rights. + +.. tip:: Don't forget to remove users' rights after a project is completed. + This way, you actively maintain the user database and keep your data under control. + However, be sure to check if any scripts are running on an API KEY of any of these users. + +.. tip:: If you want to deactivate accounts, contact the `servicedesk `_. \ No newline at end of file diff --git a/source/d_faq.rst b/source/d_faq.rst index ed1e41b..c964d24 100644 --- a/source/d_faq.rst +++ b/source/d_faq.rst @@ -1,5 +1,14 @@ ========================== Frequently Asked Questions ========================== + +This section will be extended in the near future. -This page contains the Frequently Asked Questions regarding Lizard! \ No newline at end of file +.. |date| date:: + + +.. Note:: + This document will be revised periodically to reflect changes in the products and solutions being supported and the processes, + procedures and technologies being used to deliver support services. + The latest version of this document was created on |date|. + \ No newline at end of file diff --git a/source/images/h_gebruiker_uitnodigen_1.png b/source/images/h_gebruiker_uitnodigen_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c50c444d32fbe745ef13c1b9a99cbdfc398159c2 GIT binary patch literal 66408 zcmeFZ1yodD_dkqMf&v24r63?JEsY`}AyPw^bmt(v`9D*SppmXDzt*a?ZW?oW1wi_1TxOS1%Qb2x$qiu&{_;C_UH2 z!omY!VPRX}!o&O})UECV=5WJ9Q}G#A`7r$k<^sp&soGO4tjg%y=jOPWYXVm#eGe=w zGSBOu8%S#=Z!D~<{1?xkYI~b(T@d&hA^g^ED_?-DXQ~9D;8Qh;eg}ykXAOeCe9vdf zrWoZJ1~n2?2Q_+=xD8DnS>=9BqUh(h2#T|{&v~So&=7hL*Msy3_mdK#5pFnLLl_QK z%zZ2}EGox`w{AX^r3_2FFMF|;VR&@2zGS$pNvG(U&W#1A^g?tf7;ZdV2EJXiU+OXJ zRIiqDKlHb@F1P&b`EM;^yx}hCZ;eHm_qX2XT}qL+f9oaX*ZjZyc0r^}7QY;Fu36Wb zLHyxu6=h31yW(@R2~G?BKW8%Zct1+%MZMCejZjH5gXrtUq?WpwXS|%M?j5b+O#`JP z-t0!{C57(zr5qRzkHB2&`5b52qRR}~kDz+ybHl%o`6`jK64F)Hk-i?6z9%FuZBBF2 zX;;1A-Ts!P*C*;@1!%rAb*(~WXP-vZnR>p@+{}M8>lCk|CE136&Tb7AkJZ-cAHdMi zlxH?nO3oI|o(ol14eNHvaaA{ItT;dRk2E}f`35ne4^6f+77_*-9tkjrcYQ?mz@lAy zofn*w@15+Q>_=L4pgUVV)>aftb?NF6?ct^cR22P8YT3?n(fy__)67@VZ;)Ynm-%lN z5?LZ6_cFUbvP?d>p3BlLpjYdP5T4;L>_|n+n)&s{if)64qxxL%AQ$pZiT%CR#r*0B zR83w|dD4i_KIUxl6nOF!!M%U^?dqxX_(j9S+QAq6a;xg({?1|kI|>q43AB_YPwuc8 zg#lq@C~B`vG&;P2*9015ezrawk8gBFUdmX0Ax`|G_D&;lR&N&TQCXNtbe|1# zL*$vHoTn*V4}oY(_E>$15LiYbTx_Rv_J)mX$-aqJgVbqu_k~GxOsgj}0#lzF+jIgW zgoZEV{df;N?!u(8iRnd=XVXV##a3H3f_t1pKUtb{$-4^m#RF^xRs99Gm zAzb`_zOVH|hLQK6ow4WVH77=y3k?ic^9GbHQeA}$JkE|>+IX&KfbyjEXkM7 z$v_OLG=>QPsyT2fBuM4*ELVQ-pg^ta`xJkvk<Bte7cP_2T#OOG{6 zeY;{esXqiI>hXT~=c4)3K7Ltnpeo!0mutRuFTig0(WVnN5Xm%dT7;ss;|SA}-ppg> zxO0F9DwHJ7?F+nMx5IUMVEdX`#S_mi|ywXJsaN}gXT=l z6{N|%{6KQ>+J!Hv?_~ui(X~6Pl=|xi*1i{~I*4yNUXR9e2At~WgF~l_7E^n+_FBmS zknN|k?#b!(`(9ZQGIVz@93WS3K38?z5 ze|*qso_gMkMwKm}4^Ea%J~m0?gJ;-rqX5fmbJ9|8UY2_T`~5Q|L@j-4%vk5z^y^eb zvc#d%ZF`4Sx!dM+h18w>MN3Q=~5|T+m&rCJPjgA zOP)L=D}P7}dEOdaz0$hfe)e#MuDmrM(MaF>h0_#WOaLsWy{jmH_Tf>SxS}7EvuFrc z9Mf@iMXH^LKS zICSHiE>?I7dTSBI$+IiPQ84k^s9q9cQtkr9u1R* z0u4&i(>s5++O{)mMMt^ppajf{XfY|4lf96de;>>oK%uTiR2`Z!pOyt2vc+eBr0fL7 ze%dhT%DbkQRfT}tu8Bi)p$Nz~uzMA|u@NxMk^Oe2P4#H=+xlX|oK@$EjI?`v|#!Z9`ksM>xU2Zvz*7h*;??9ME6E`h4UBvO&SfTidO7}V0(CBK``g@A!jwX zxOEKy39dEhLb0R(MXrL;n+zpptLzR4gIQH6*DnpyMpCM}Z(N`eX~I9h7RdNr`E8tS z3Hq=oe9sAE*BgP^&JB_i0BYFzOp}s^UoJP`s<=86_U)>J2THx(VvC zP5UQpQ{<9`Q>r9@Ly;nI=Ye>`K!b7NT7w2c{0H?;^}{3OW4A!L#>QlQqUYN-E5(-r zbrNYxT`o9ve6p z&6OqWO$FoKuiKY4n6?VOJo<{tEgAhbzfZ(ie2(;hm&=&2?(E1;HGDiCk;-?T7W1 zQpchx1%<}S1B5MYO0PlNicJNmdurE~8(5LMcALY=IjN_vE(XayG6aRx9Qq>ya7j@I z^lWJu_lT@=SOa4oJfYNIMc3dY`dPLWxq}V|hXrWow%qcdoyBX1sVwZ=J_gu zKXPTZneYF;vtK2a3PQS5?(A$62~|pTCSmm*gm4pF(6e%uvcRnb=+x zRYN=0cyU(0kaQ*Dl6CIBZ!HG;m8-LZo^NIuAd-)!kTP#AXw2(8Z7Zl1oZ3ZgUz}O( zwfbpN-Re66lqY2S9mKX23~Rv~_b{%h@D9nJl$_Atd*&7GUbh?S(oW=ZDd{U1RI)e$tdI3e~9;&c|g+Tf+*T;oIdAiBbMekO5+;3!rE86yv3uy&V zNR6~rx?#wt)#(wH>R7HSGs}EKmoM>>Po<^-1of;_YJdN2Q9BZPrG)VFJGV8WE-bzS zIEVqz&YyMEAXi%Q6w91EKbaXo{ahzFONa7Kez=qzFDhB&*|-Ya^MI_sTkB?!fGjt- z;q#=G&Tm4+sM6K5MgAt3X(_1`F_~RPq^O=7EwXu{3g2jT4%w(8%6p_dVuE;t8yxKE zU_v3k?#o3(3xSNur3dAp$Xm}r`4M#>)Q6np^h3IGidP?uC3>gNBFG1OCm!#ze4_@w zB3YW`37VBsNKMJ)Yvh4#egeJB_%2`pO?aD0uwo3;f1MHHyn;A-wfd`~ho!#yPQ#GKcS9swgLO7kmSAD}Nb^x`Aj#?H!1F0)@Tw0gUW8N(4d1VErm&zW3Unrkxw0qi6Zz>$0gPiBZuP-FOI42+#j!68H8sYgtET3+7ISJ zqn`k>7-9XLAyG9Ei>e&v7Sz~*qpVJ~Ue9W4l zqJ15ijqZgo-|^ANIIY4EUR2^tc!h~zL2%9V?87S~AHC(YoJtM=%jTATD|r1O1W3GC z1OiYTAQtulZ}zvnwxtgvwZ5}1^u1PPaWV4Ztkt8Fl%u8m5LG(DAC56)?|Z&G7ei*) z)p>xlcx(OG5`+1g3rU$o0`qp?YH0c7m5IT^_c=T19!t>zb`7;2-G<|av^kXgB2>kr zuQlG*t=}*yNqCW-gidY~guZg;+koM$aS%=q+i|y&opEr=bDawuX`ie(;R}RI{ z3yeZ%nWcWd&?lNdbHMt69b*SWR<+>{dfENb0= z?5(;fbOa7M%{26W0b`tmZ!#9y#>Eky(FQ>}9Va%4==m05A!>^qN)tdQKZk4Ga0}r1 z>Jz&KqP@2*^T~)_&q{*2Ozk1cCMxb~;S>#+ZWBCk9P!SaO|}_MaM+xi0f8h#wv-?0 zaoF2d)SWO%he+N&g0I1o84;3PY)h$ycz-HZc%NDK{Leymi~t#6rzH~zx7YzYV;QTM zr-sMXzk}jeoL^Yp;#8Egi02=7H5YHQq(jknxCL*yUhYchjSR=Hc?Nzyn?Y{Y((<71 zx-G6Q69Xg(oSw9Ls5B-Rku>9joAdV^VQ5*-7trG3kPNXlovV>3$6#4M{k`b{_ zI!+jH(;T=?d>y#P#B>SF>|#r)el7v`zkh#(wXo~9gBaOaq!Ru)u|s&+L2&5%;(Mzw z?CMbydbcAwk3nLla_gPcD;i&@)F&|KhC?o5Rpk;0#44n+>=PdX6tc&Z+A@RtX(E;x zCw75qO&R$h`0U1v;uJUlA?1vl_CTr~PY9;2*H&uW{%P$@6SC$}K}*$RR~49e_49Dn zy&|VQ?cGJ&a3)Q|oevdU()hX1gSw6jhBjNN1VJ zBXpC;BIaA?^?IQG0v-h|Ifwb|69|NQUI_PD2oMD^pSWC>*rl$QyVfvWi#g~;0h~9T zrtSe02X>O}0~l9-KhV7xcnMAJrhu4r4A+701Rc<)u)=jRVvV3NxRFr?X|oH|@ZE9kqdH!Ldb{ScpwRPhSIIUG`CAJn034a#wR^R zx^xa&?--`H#;$i_@G?sB>{qXQN$mt@bHziSg_Ki&*j1~MtwS~F=eg<9`mex0(v8#G z9>Q*TT*9~yW-Z8szgChFtr=zxUtJ7W2E1_nwDyiMpnp^B+YW8h9a2*Mz=wMMSQsCA zoB(ieWwF7SJ2>3~gJRNpJEn}$AjA2y=gUY_?yK)*^$;gOwj@oJ(ejpP+G;YdKFqRJ z%>QklJG&l%jC$FQMqY@R$0JBtBEEaPM0-Nk8+mwToX1M&UwIm4=HQd3Yrpj?LyU%q-@R{5i@1c``V6HYz1Kw|a5f6-+dFMMW<` zStTRG%gIq$cfnU}bHwLyh~l-`llVwQH@FEBA5^=%>?1u{Qv-)t_g7U4QNg`Yk~lN?q*sN5=2(F$(rZzjuem{=fNlJ6+x6`+u(- zbA0Vc0QfyW?WbH3@EbMOF&^C?M)$8@*<_I4?>7 z#^f$vV$-`u$8Yb(DVSmcCvJ3#lVDG{yIzfiUf`i}hWXR@hh=CC)-;TGbcs+yr!9DE zDmo0zD28(2d1qy`3oNU0xH|8t@;LA#3cYcw$d4%woj%!j&yNW*%Vro=x@;tvpu@J; z#JWu@nkB>pcbak|Yi?DW1PblQbWFitFX6#iexU4(siMJZuvTC%NnZ(YvsMSXJERs= z)tvjZ-0MR!k%@-~13tH%rwjS2crmz$1EW>o%~uyT-QxQBNPkYlnV~;36xRac_B?gm zEZ=!dwb7}AY}!e0&Fg5Cz&(bBYrjS`O3 z;k8X4-!|oysWtUDLjANMpQsAcS`kfusenTk*5dr4xhEt^ulKT=BiKTGc$QN0sH=Qe zBbBCgfuntmb#KaH#cZlIZta23yeC6PZMn*d;3UvK{rm^Rg~3Zr_%XhKRW}(*tZfkF zSJ@U}hpyYk1(w^*3lw#@RCf2gM4kA|ACz*RFIYCWU<(&-c%SX!VTITa0+zBfJg^vHdx&4^L^sDF8O zK5{nAZq#lYZi<=O6N-$Zz}}e{n(>Kt^leRVc zw_B4X1+4;n`E3l9po}Qt5oj-m+-^coeAU}A6Q(1Ae-s9>jUc<8-85I*NKUu`BhdD< zgHF{7j9{<(NF*4oN+8mTl<+9Ygg?=AUv{EB4IFFnX=6~G*TYVFc zeq%il=%N<0uw}=eXvpqk1d0R2n@3JN2TB5%nko%g#5GGe8uD9h6_m(~ochxq@&JBDYe<=LZR@HfmEgBVU+1#tN+GN+BGuAOU zeP|kzBsY1<(h2!ALU&1LIdQg$?yC*?UIiLbjTbBI806TlSS#1bk45>W^r4b!95P%h z1g21>st@&O4lYu?D@JQBF3eyTlBgsMjhmFq&YV6)T&Eq&vvKkvJsG#;U3335VtV0-doQ?W-vGGHCLRw33!OS(gIDvz7Gb_yS(T&Ndoc3oONuN$@X;eQY{=p(g+*?{J`DMY&23ZjeJ%Mel zbzyj1&daSb_@t0WT=no+@WjP&_lvQWR0=w)i(mG3d-Sy2-d|k?^(`98pOPrxJd+-V zZ?;n$s@Bjark?8ApBV4@-}k6vjEg&^?i~FWUqc0O+XrwOQJEa>F86lRs3{>+QmO$& zh|4=J2~oB`>)88|$9+74?(f1ZBZ>c=#?zCaN( zuhO~3Ubz;o?>0_+N0Rm;QO$5cl%&=g&G`6eC#>o|tqd=Ruy7@#q^qcOWy5+3Tb`^}F&knX!xI~7>MmH|t2Ti&qw(peSf2rA+qYtz|r zfXfwpqM;gjrm*d!*-ARP+&=!@n6DIB4OUn;&thxkL(O-p=L_f&q_#01I~~RK9RF|% zwLL%#9=x(XH9SNFAnt!wj8e>Nqj;}i(JC*(A?}F zR0h(QIx5LkDF)UHyYvV(`uE^8%CvEM8WRRm825UE3R8rHPbG3jF9ZvShA76`ke)iGcJHqk7>L<~ zeRX1K)jhfQ=bOqJWb=|Z$-ma&Y^_@H`fGX)du_IWA|P|`@`vwO772u))xW7&+%Z!z z@Qto4arw^_l?OrX%81(I>xGD%a>3|=i4b2ba*tgDj!4EoH z0w`8%Dedg}g;o@Z0Maq&!^*F99~|QeVYCf@)CLoc~(v~Mrg;DE72bkpoFV>!BW z2-Z(o8tBuVy87EhFSpIC%yax0r0)3i)>)FIkh)3A+s&jUONeM zI5yx-_y8}zYJho$eQPj{#*x5{%)ffjn^&0v61a>@dYEVPfaZp zx%BuM;7;qXq;F{9)E+bWS?wBytW?Sj!QNt&E)ryF5=x@&JmzFR91uTfF1b$r zKdHwx6zeWi@LJ#a&n?RPvybO{of(dK{-Ho8i5$!SY6K-;>oGHPu2qYtmzT2LGyw-M zZ&IFOG;@KfU-Sl8Z2?nWiN((^bh9~Az>1K$Cuc)UKv=RFxUY_1KfnaZ;H~HJxy^4O zeEr68a?Dtk%;&V4H_VR7;NSq~?~{@9SEoJAdznm^nynWy*|Mssr;KAqX{~Fwbg{7R zvjr=d)fWU?JU^H`piiaEnipSx)jb{>nPQi=V^L4MNq~j*E|wU>>4va1si#Mb--zZ5 z6kNNsi+9ERb}@W=-u>;?*5tTrL?|*Xi$$xm+7KU9VpeC{6g@9q#EzMbf;dKszO!W= z;mmuy%i?@8z6pN00LFA^TrWvjn4TrKzTgkCO}3A}i%bdopWX`xo7*2NsMek$u`y+- z;W?yJWyOosq%dJA#e!g)dg1~+$1c@zPo`$zD|O7HBRny(_=TvQ&^qv1gzu8eu~Zmp zb@DTV96(X3L~v&YRidfT)S?Y(FVv^3cSAOt@3A#qe?(kh$oG&ABdD%&6#>)tujRX| z>%Xl}3tQwhoBf{)yzjBGfr=kFIdPx;K;Vwa7aw9uXq7~+mmF+{TmAG}=tIN)xAT>? z9-WzBeZyyD8^r1VbJFm-mJ3XTnMnFmd@fOm{IW70Tg7PDU92jK0E!_z0?aP^AGnr6 zTR|$QG3K{*y=hVvbyPn3Zp^o(s~ulTe58D?Ax#SpUb&m6r$s&ccI*rACYW0Y=j;S1H<=F0pl!9-2CP z#g6*bQxp~4NnaB`aA8g3{HO0a7(1G_*~28Y0iSXM6F21L4{5Qms0q(Sa}WEb)$yLi zcc%}mlqljM0nLi;G8LVPB$FyM(}c2nwJuQtV{vZo(TRjIr^Au z1^W86EsmFi{S$@fE^6@D;>GE*z~UQp{N#V_&=`~Qg@y_`8@CUcA1BA96NW5XUz>lp8T8aN?HyN#skwu2NYJDS{i={Eb{7GB$5C# zSH21+0Jj$``}oms5xm6n$g*0faMcuS$eWjcbE!7lJDOqXwf?gBWg2UNz~ZKpWO@3k zQNN)J5;4~T#6}xuvwL(-f{m#ZkEE%f!U_D_f`LN+Y{)IgUl{mj_5If$z!{C~mBIDQ zkI#}eoD_EV-D~HH2c1lK^4_csJVJOao_Qa~i}e8OdGsHWYz-!#?Wv&>_z(RI-quQ$#e*0*#T z4)qe`6VN1<8(?#7(C1AHa5{;IiVi)CB%mz)5ji{2@k~RdfS2!j)yWxjDt}DfMKSpx zs)3YSy|1cr%#yvWHG~0&D}{&*V<2T!??iraRwL>yepBu!F~T{2S}o@SJvcltD4d!1 zRGp+AZ05fGHt&VYn2W2&hO-nac>d{^VbDl5Wk>>$=1DV;W81uD+aSxm%EJlH{2i+T z4-Gu3l2P_L`QQgxXJPwOGd^^yu73BAX@**(vJlK2nzf3+q09o{%(G%$DroIctz*AQ zaccpw>!6OQ->l zf(pu$LWCh?dadC^`N4#)#S2s*2OSqpkC%!)}XoRdOtrNKX!Nym^;-4ea&-SJwT2M1tdc2++Ub7wRFbdB+zc;XZ!93aNx{nIW55qkhCw*|q*tQ?bf^<%5 zgV84MLl=!aU1E3?QLLX{7S`7a32}#$ed_{l`2=Y~FHI750L4>`Gqc@|lnlb<-yd~& z2PR5#;cPgS#Y8@U8U0X3mJ=2~au0fzg<#c$sb8dp@FLD6t&H1tntlQ|5Wlfno=fSK zrzuw={v8x7AW>G!yst_ruwBkc&3UCM?shv?2a9)Ql+S9>o5vUxO(vNvJC;>p!u@fj zcpyHm+TSd-t;sI%3?fP1YP7o_ApRDroh33Z_4O}XObw!BlHtAjDD~ok#bHuO-8379 z`95UyeVf9#^@(Q?1H{+Jif_MtRh<<<2>8+eLm8}p^EnO|EO}+?7iZ(=whOcG%D}J; z*ypyYaW?eJMicaII2ngnxunO_rUQFy7-BPDIavdc>7doNnfGZRiGG1=kWDSY3cTf~ zYfL!b<2M%$visO1mu?7iUp3NkrCXiuDev1~A3=OU?$Q8NQPJhEKv3fGZatgY=#u5l zjB%MjG;wo*`Py676;N{k1=HHiX*owD&Y0(8rW5kjnf8%2 zTnFrjsfRmSRkJ(y?3OjF{G>U*#-nMJD~)>qRJQP|b<7|&s;_(s)5<8mvy;~iywg}b zY*FCHIN+n0uOWkt$n>y_6+zoLs&`7$EGK9TkH#w-LlTxsMLQ1>9EFq67-3<1Ke#ZW zv4jaFceGggl4i%nB$bm308Pfv_HJ)5Ir|oWWuJJ0K7JE{%6oC`J^$hLVO*rbNgmCz z%V7fTvM?hX+*=Hq#&_%HoN5%#e0o3YUl1XEyDr6$X8Fzfn}!o1xD3M|NMb2;D_%DP zGNVro*&fpWoKu(V&EmqRl^Qq|L7H{*whbEhbYk3#r)!KDESVsEwZhz3{9n%0)ugwTZHa~;-g7cygtv0Qd^q7{nod4`Qo28EEcBe_`< zO*%htVCvn7H?pzgP!rfatKS0?KdBqPatSq_5SXdp&HP)Q#GU;PQ?F~@0iWEP-8-_R zu1&8J`z5W0;mX)tJ1&>u%h^G)`>l$@C^d0PAhRgUk(%Sovl5m3OCByF!;PQmtCn zk=c*L2KOGi=wxw&{c|H2L{&r(L5C?VH4aG;bfRjM#R5%pxpvEzbKvxRWT}N!=M5d_ z*dfriaBA(t1~p_-$t9zdu@1^=rom0XDHi5DB2;_DQB}vOtp3#yU3IeUCh+URs@>_p zXXw>h<$6U4Fs7W`N5IX<)~`p+h%E##3V1J9!2_JHM|Oph@QEX4>6h#t5-e_6()hmrR1o{p1p56xZOLw7rAS`e`deWF5RanvsN zzJB2y(cQer$&1R}v5UQ*W3e!&0|D5}Wc{>crb_9g-<@VR<@s{CfOi=NR(hgVc@#~a z89*W~3g>Z!Gc)RMZGLm@;l!Nd(&Gz1Nu_Ma2mlGBi?THr$5MwSgeb!uszb%pLDm9H z;W+-vvuMTpl+JMhiDoc~&!B2^W7^*ZE>*T77d!DagLKh$xEyw5I}X>dtJ%o|m?p8( z$X62%P9K$>(%aAR_y8_Rk2>GkVWg}sGtL0*NRg;O;NTcf0nuA4+T@?F;f?%T#%O22 zpcR*7zWQg0{-Snqj!%FCCYb19qsNrRKAm3Q0-vifTlphQh*Bya6*#-@qko4c)HFiw zy-ryo0y)D?wZ+6RbNDq50gzaXc0Om~vS8X&XE0@h!s=9C7MUKTA;TqW+iKlK z9^QTBU*nR>1}%F+I&JZpDLUs1?{KvhK)6=wuF7Q^QsTwgj{+wTu>gaSdlk;BN?u2juH`NPY%5Y>|>=ZWtfA1ntXwo*=uPgqbx&}-xDn!3k}ql5zX zb$I@D0g36Ft(;XE6c8b%M4Qee|Fez2(IPm|WNPnj@4)28%@Z#Dk+vamXT|&>LXN@= zjRNVWlwtFdEqeeHk_1k2xmAzRR`BeLOnNa*$9Wd~aN+@Vf8lcf%*%R{0tAD&uio1w zgEigXqn#)DJ+_|p!RhvrW=1wNz%#RDf0WyqO{ux`{lX4*MNzewotfP^V^Fh+9gj!Q zEdo3)tsfhAyC}@MFu0`!lZL+#+9(El7*0TQMbG6h?z0&!IbVj>)TrqOFM&&?sa7gB znnKh@nS}MGp)!L(#-(?@{mUGV*}QHK&x)8Q)HpS;S{#0l&T1c6m5U{>=aOUZAPFYH z$dxjm($Ux30w!0pgp$t!spivJHy@kLG=$u&MtPO$rWus5uBG_A20OI?_Xz=zZ%R^E zaGJ?{t-m6yVw>}w`8|A>V)FFIPo-sisw6Aj@*?=SRnwt6Gpu7D!?&t2vep(^#B=7c z9b?(JRoS}8@Uaxzd?-Y5Ts_Pp%VIUa@hwVNAGIUvfr3CXAIpn~&dAJ0UiD=0G$96C zD&wk6p$_rbZA@Grqk`}VDC@_iO$K7Iv)W_C^u*3a9LnFZC!DI0%V85!0V>EC0S({I zghMD#CCAZEEUs*qjs<8WJPHrg&s=c1$gTFp&TP_c*Q8~C&hT=IWY`|N-7i)0t9VWP zBmgfk@jc^xL94H+X6n&d#8SS1+O35Ha}3d;^Z@^fqxpm^=Rk2G;7xMyql&UckLpKd zIbQ~(BlH+)Zbl~RPA2yk2Rn@ZkbY^peh4@oseoRs-GIrl9*G^7Yf&B_ry$P2`Rn&r zN7hVY6|?>2!-*NIlD3g&#kE5^7}`MXs@t ztLy~>b&T`bvbu|I={OTf`e)PZY!jQN9kt$Phif#DDcBnjU$U~vag)$*NdY;O2#2li zn`Ei?P4ZWtH+KjSEJWKml?E4(I^Clj!Bm)T#gcG4_{D^*Sefv{q*C1hPxMpJckjkH zu<_@ObA>Y-Fm**d_AFiGbq!+dS-496Px}y@Ej|-G@if*pAfL7Q6eDHzZUDX@UN>(sp=BpuFns8P@=|_rWyIHxWjlwn@6#$W zOyOCRnFvEAy%-kKO(j^igp}&4Jl4}^V}0O}JM|!*<1xWgQ^V+f6!2oM_dSHUwtaxm zA*HnESv2D#6WH^fp#!D;_)mC$oc`IBl zd%7cOrwcqTxHIgLloU^u!-g-7p!FxChWh5lmByHq#4RhO7SeC}%ZLLPrL zM4eUofz0nYnhZ@0fc|n9NvQ#TYzxf0D03z-a!#ClyB&Oqe5Wm8{$cXoYi}A-zz|We zm-?XZ<< zGO*kJ{Ai~;2W+i6rwzRXzNl+08_=nFVVK@u{)oIP9Sm9bAU+HZ>)K4LTCZS8^8PkP zk@4m2f;G5283uTzQKh>52F}_khF8m0v|Ak4LICa0m81InRm#H8`@1W1T{$RFkvcr_unXG<=nv`C;pwL|zFK5}ca zfW*knGUh5HS8Avw9#<GL4%2FW@bHCrgb_9skHCvEXJIbu)k!6cl(L}8s9TuL)2?tNJH zqh2qz4Vg`;Uga$_tMmz$hprtKOv87rU*5mh-58QKVbk^Dqe)5kT&-(_$#SuX1m_v zqs7?wwYG!e2PRJK<6g3RK0z+2>(}CaUr2-Z*cIkD4SxQT5y@gGeW{cr0W-)zqhu1} z3wb{bFOsrnVI0ZPD7(oD9hi-(M>$SNsQ|HqRgeJoQ`L#hiW5cOyuidh6Mm;N56O-o zv*^3~KP?&OI5p5ItP&GU3n1du$~Ku#hh(_u_d}jr-yd6422!A?P1=>NP)Zd7MlXOB zd)uOiFEUTDo69ag4bj>h>3M@nhB#Y_c2Mb>^%mCt)A$Ho731#K_wEC|fc2Oz0>-Tu zixRv8liga|{m9;d>W?JK^AjFbKZ3rC^xwjKE!b49JCJdS{`R@rEVL0I(W;R>hVX0AWSiJ#$@SXsTV&28~K#J8F zO}lNKQUl=7UDFDI^+tnSdhp;hai$UuxTYaVqK6nz(1*mEuK+7gQcud`Jk$CyU<5_7 z05Zu)0L-9AK59$Z4}RzPcxM3a=kGC?fXU=(2e!?@C--?xAHRzBfiJFRjk=z@F##3m zLsv5@I#$EIZx*e z#Ggs+FW-Kp?gcr`LR?q9RzFCA12Adr`(<5J5L@xpxyxwFN-jzMv}Uc6m%Fj6hwzUw z(y6WuWITGYS!DVLqe7{|9vR%6jMO;Xq0Z;oMU!grClbTN^ljUat&F3zi1anWM@`z( z1W??;;zxD@MnrDeBlStf5~e5k@~*iTwVL_$l}8d*I$=hmJWXksn0-SpYsFWaVheZ7OV-_l zFw?iS9$mqmUc{ar%>ZeD!>*_|4Kj{x!&{P2sw?W(LgZ7C>+8A+;BellIeI-d!rYBo zn|<0L+jv2gIVs6@;b|Jbck@jn!m5PWDg&&OH;}<;#Q%zopnae|+vI^EYC^2kgJAg0 zC`Y7~p_T5`VIT>hMtW1I&! zC=1%7eqTU$Z*n(rH259bCnt}Wn?96XPXojV9-!rbL84q$wzs=X^sBq{TlFTliemt< zk=1V}s?44N>4OxSDK7Q^v(qyz#aB@bSIyFsYOs9&w%_e$gr3&x7bDV(>5tIgty)xCj1Oq$H@ ztLj(iB|+yodWY*b>J($Ms;jIjVa|6KmB-EGbHM2lz<`juTRm3=T$)v&vrB!Z!o zUR1+E3d0e}mhm_wdSzxRM)_?ygI% z_>L@+^r?$O7~~3uqEA@1=8nfMk9pXzpg)VOq{SEA@k>2x%fXD7U zTbw}r&zF5Yp@`SN4hij?Z*!Gy&Wvb3n4Rn0YvL8zx!*0Qr%^7J1O6&BxOn;Pk>KyS zaeh#YnYy*hEkFxDksKvGF~pxY(RE)XU(;pNhPvYITHks+S`&3ymBjqbgm3I_Jcer7r$0S$^|0(eEIl4(!wpAQlM^Sza zFRga58o)4#z^4O&6lztSiRE1G-Tf=+UIP%fkDniI8B#yR;BZSp|0xg#YJ9sKd_ED! z3TSZeUFp9@V_`EE>)gLwrBU?-o9upaIuX6afi|CIqEr)Y%RitOv%UZdwdW0*tmb37XNC1D zGc!$}MeU!AaT)UuV!gv4g8w1z);Sc2UuGtc&mH|^O=XwIpdB;&fCoeXp_dJNPs^{f z+t}|S-v6icu&&H2P-y*`RMPc)QWqY3er+}wmgIRW|Nzj44`ZyQsS-EHveSF-FsvT7v%* zlv2SYkXl+;jR=0Mlbr`gQ{3qUz9>H_~BgFS=J}I z2H@_E`Khusm@H-%7`&b~2LnbQcl=i{Iz&cKY<}v0g6kLmsHzCY{crfbq~SqWB`F>M zn9x5J19u&jaLSf*Jm2yDr+On60*f z4{VGTu8tRLg|5r}1sngI#%#DqI?>OywK~I@621E&G^Kx{?tkBm_0BvPgO6`_f27LK z$$2`QEfXCo{imwzT7+QYn|}rd(_F75Gc$7(iHr)B{xf^{KaF{=T8^m-_^U^O7oSgb zK!P2UvGRf@yEqy>y5e^!IG?q0F(jw(b3V~N*-N88*-4_iml)8K5d!?#OZLcrVoPUk| z%K4FE@7G+rQ%?+wF=LBwyR_iHdZ~%;LcUa(_jZe0 zG{nBV+Kf*;oc=%9d(VI-m#%FT8y1?VNC!bt5$OWbRXS1>q<3l3r3nN=R1{D^I*62r zH0ixV08zSh2t6W%79a?O5(qgH-9FpB-{+j~eCN;i=iEPYPo~{7v(~!SwbuO25o&z= z)cjZ=)wZL71*KU3N>r)!7USQmdPiOtWc<~5k*!qnCpoQ)sBx&E%&O7bX=!1W!t zk`KKk#sni@m*E#F3}_>MT&HhKDJaxe=%R1_Ki{6a@!;ow z8)kb-dw{d$_d_C;wAojP4KtByCe|Mu*~>d56kZ71=J*eRm2v=ZDy&4l@Y08IC|<_L zAM0ExC2y13rs5{Sj`KdIo$|G^{hxj#5bI ztC*^6c@M*djSGJVpi#zx8hBxq&~nlg;pF$o5>EXckM{5*_;ij5kna(sw~`Q-F{ zYf_XT-~*3=g=+=qK>uOSlI9@zTbA!I^N}|m)w}x!dtGEgK*9J&ALSos*J>lmF1Iqc zQI=bVc#YZ~i`e~FH!cPy(_=z!x8B1Cd@A1>C9^vI?^ZYqGe0qSQ@%t^mfWe?gRBT2 zYNI~!cO;=4m;N(aC5g+W4Y0kS{yyIUnIlh^fo}4T$%tHblHoV|3U{Eq9kn8?03T60 z)+Y1sN;+|gVzaL_Wkmxy+Sg>~zQ%CbcCMryvI6|Ue~vrreX1d%)cU0$i^?F1Wr|PF z*<)0Rtj$!5KCh0?(q^`;R5Nkd4gdh!bDeJmGeM@gVCR4aVbg@^>6q;G_pY_)@EtPZ zLw(#?6&fpM6?0wcc2aemq%a+ur11L4eH52AO{H>A!krljdHF64fG#`AIDd=_@)8q{T9_ z#?9Rm)I^-)@4%<7qmhyseqTopteKhR$2w#vdFPvb+5B6oSZHar)BGFa5Jf01D8wLZ zkPh8x8R+y-JU34}-2(2)3Obhs9BLL|Z%5G$U74jnUeN}3F}&`T_tu6|>%bf5xXV7S z+wQ=%XJxkGJFMD3tDNimv1aL|TKm0OyT{rC~LIXs=+f@Ab5!qk_laqV*H|AIR~<)=Ne9!q1b zK5gTpP1q|=NVHDl+faQxndm^>@$QSZB~~uCqpsQpZldT^>0$F(44Gn**R7MBCWC!e zlDbEc5>QX$={U1?*uT3qD6wL>=mwa^E@#4Vo_2_f|8kfgZtt_d%T$hkp?sYff83V> zl;D{B^H?#PuITl3Hw-Zo2XYGfrPZ6sRxKteqr?qBaB~pf5xBNmgCro4Z(~^qyO&GE zLc@D*fr973cYSzzVKENB<)8&YM-2(1^&O&d?n+qo+M|tYT<*_fzm$|4NV~K0YU#lQ zABEtnYYop!j)REu(Tn}=L#C+5>JYrM>P!|7xy;D*k1?Wlk>8^nboCBe@b;rOFIIKq z$viWKs>07B1!prs$kvw6)%jx$*_VI1_$y?}!|?BKv~Z`D$w>V_JNRY%etb31ZBEi9 zjz1u$74*fi=TRQi`$XmCX;}~Yx;n@$Y<&rtoK~I1Rs-G#JMnwQ!M1b$!RP~OTH0ub z!EFc31|WjFzyf!+fOFTMApT`{GSzWKSGFRi{kk668OFTOSOWrF<@vZs4$9iC+)x)W z9rNP{BVb$)Ty8oQ>Ro`U<1peMY)j18L&H|}FM2r}UrHP9j)cMY3S3VJR1!%dtjA$0 zo|sv&Tf35LJyASaQZknwV^VL0WxY__{?^=Dr+m``9vy3e>V`OWVYV7{b}^j!Us9hn z2WZo%rs0eFVJw({h`&73_#-jS3_NDj%i5B)R(sZ21LCoEUv_FKQ^O85@QJ8=7Oe^vl48wL^fRX@h1;dAvcx72~FkQX_stxXbWn(A6=d zwT41bQn^Xj&y@yF5OettK{!Zmp7QE}cY>gRN*vL%`Hs)Daw?0HQ%N{wgo)LIqJAW& zQ5J+Up!~r25pcTVPitF-YXZNUScadDl{k;Soy-_$c!n0HwSr(hO zU}nQwnWkm)GDf@mYP9Z*xLT~qSI+#P`QxxHqbvrEgnEH=3ys|Pgbvan(u881YsVN_ zHDCz7z1Xj&e8UZ9Nr9p(Hr!YZDSaPYa#Ao@KBmssKzh*jfeiwF@f$rHf8;F2t5sxF zRyZ$di;lI6X4CN`mF`^UK`v*QZzgq&m!Ba_qogtf_jA=;1FME1NdQfpC~9PQo<1gP zB!*g|OY1pu!ARNZm%EU;ogDJCD@Me2Fo;$`GicSujCW5AIzr@~)uYBZZ)TEW^-ZLA1{V(wxlztOS%4^Lq#d&&ePNOjeH%_NKAV4#XyQ5^&!mktyO$h;1Kx>T@~ z-l@CejZzUaG)}?SCMAwGDg}U;Lv4b*g_67vXzXAd`7;u$BlkI zJ!~}AkO*Af)C5AQjz%^#q2cuVpm-0ND+)x)7s0`cBn3knC^BfQSAk$4>*CrIbhuYx z^Z>GOge1w+`ScAepyRp4y))x_za3b!VLu&M(s4f&Mt3^SuA5tg1hci?e0YLkTx@xD zUAO4F^A1z5OVLBmajadW$=!J%yN;kgRkAzIBx5DM^bTIl5{Xp+@+e41|9-1hL&I3k zDeI+k$l1@d4Q3=+TB<|vpB%V1ENfBsB%b=_C%JQkDR#lg`n1*Rn`;Usy(n3{*JpL{ z@}V^`g!O_zoGJVn9(j@Tq2VR{XBKzmloCa-uec}L&cVmbF3d{~X1PD5=kL~yj2)$ z#EXLiMji)yd5C>QU{}V1Cero-DI+DzHImM?ZfafZXMy$rdh;s{ZvK)UmJ6lI*1sGD zCgJ$UTCjUIVWqwWQh?D%XL?Q=;QwzD2-fVzX1tzsd*mJ5>_(}~l}X>4Qf^kwd~h^b z_6zXNld9c$KWL)E{>b!%b9AWr7p4ywNJiHpHh;ZFjn|%5`c$az-fgj|-F$7zggQ3b zpoZe-vBm4}i!D0yQQJ0?!I}O_)t4J!B$&A&2j*~@U%yYtN1F2?WYe!<*vxN98@m#6 zTqZhn)b&0DU!bxJncsfSCR(Ls=zB-DM}GgHScYOUX1L^z&%my+piOZew?kyh_iuG! z#j-~@I3G#?^~yp4U9P)3Jjd0t#yK!l?@)l7C~`O)!I*wS|Nc_T$L}^cj%IbGkaOEG z0miG94XFc6$SSxq?oei<$*N~UjvS*yk}tE)+=J=Y&xBM?=pqQ4r$!A6yA8sN^IC7O zF2=N!+(*#43HCz#MM7~z8> z?+GG7XvZAg+ThK7Nxx4vu>*A1Eo{qQT9F1h4%N`zg0){`NY`(mXQ{a;+w<0+_*RCZ zTqLHwLyUa5_2B0|iXvHH<4g`{V#PkI<)cVme;@TXF~)Wk4o4&WwOI4M^;X+;Qr{gQ z>0xT9w}L&VbT*0Vn4h|(pft%2xX^GAL$bn|n_oL_pm^ceUeaS$-W^J(e;zwM!+(HN z|Mh2MtJ&;=Kx&5xC&_++Vu9#W{-Yk$d98%VYoK+;$R>!&u>gj>)*)y=muCv`96 z`sC)dF{n}=Cl+>2aTq@<1C0LP$|wUk=B#*yHP}SS&orw@U)SFq>UnQB?6fouoHhrmXnN{2%WBM2^&gQ#pkdhx0*5!uTj0j=8yhm7nKACz7gG> zSkG?hwMgIDsApczJtT1B-<@gRu7EwFWLA9V`>uOb@8|{GzYE;HEmtmR#qjE2=nBtD z?%@c?zm)mBZ#`nXqJfkbhmOQEE%O|SF#K16P+OM`AImC%sG;T$hbWKzQ^mj4vav0R zWN3aFS&-7jeqrcetuv}S`QCCCdvR(fuI@fQ8yZWdb^Kpb(YKH9ePa3XsY^TYM<2`H zwL|IDg=W9u4-nfzGFSDTH*xJmD4G(KyB%IGI;ux;LFA86rWYXeh_O=%mlbMpn0m)% z(SOhWP&)bF@kdYZozT5t>GP1-+9Gi1_9haM}E$lbG)^4|#;&9|2Bx zfH5DMUWNW3DBq|oTYb;cOyub-2?G4(<#%X)v`jiTW)_uah(9rywIDvcc(19pHAr>HC)a;9%1~?{{sL+^Z&#z z0ct7`H~*)s`n&sRS$c(k>AD?O$ydJyH57 za=*PRVSTqf8ohP$>~&m2!~QA=oq9=ure_xGNRkUm&nvzUfk5!gGs%HFY7Q^NhPM4o zLY7C2FH_jkbuc#&ln-{<<2s^gx}#eW@s`;{0;V;t?FGz$hXS}tR}xh-3Tnh1Fyno$ zT6`w&c;>qaTHQ(2O4qI($ai$g@>^S18ZE)#QoGjTP`sp;8Ii)yIprdLQ(}y1)dexZjn1N$CPYd@&x+y0Rq$?P2byO`L?xCqF2U|>9Yth_%om!Ir2h+rZk zllr}0g5T6OK{cK7_d(J}%X>l$>|I}DlWn_|y}Z2SkL=%@DR5C(^zqpa3lF>9Zk}|2 zzsxOZnCObDf8rEAIJn=-5JTBgYReuoJebqek1#PQ*V5bm zD0ogKb7)95+5xGNk%0h_cq9tzx8D(pw=UJBjxTqaSObW- zGu-f4a98%kl6ygM``nt+H&6^O((g!L>5TJK8qhV9hIPC;YbHR>k$tbH-EI2QGDkj` z8Jd4|{`BjCg@P-r$g};4pTbku+C4Gp_4SiWlka=Dbi%N!_@$GJ>eH?FZo1$rI0_3> zBBsvyQ@#`t(WF)Zt5T4(yBdE-M?O82q_~YqPF}C4;|YBRz@5swamwxv4#WwTc4t4Y zrSZNgF6_Q@n&29P>XnAK{Jimn>2(M(XXE&H@34$V!c#Xl7aL-4y%)E}9eeuupF8CF z&9GI82i3NHoR+!@Xl%hc6>&Z0YF?5 zcFRiKxh|eK0;xob1Wrr^Odur?wSO#SMG1|x+LU?DWcQrU>+HyaSO;W*L9-&2jRv(B zbU-{y^*W5$9hZ(2`&pnX0j8!3W=@=RoIV90)6YXypuaB+q$`CAZLe8azK>Mt9;r7f zFl%sD_b%uW?|XmSrPk6tL9n;&l30Pv+cLaq%?%{OBdaJ+PhoNsGcslBe=L|#EAScK z#hu^XpKT{0!F87XAb-5}#g&zn{(*tBUNg1Ys7&Cyo(uPcuXd@ZR;xNPKHHHTi1VK`y3g_K)~%Y_TFWi_$4f?fla7>pS8DE}w z=45D_YukvHZLAmAcff3;8*aDIkCp&ydzw#FILIm0zt>>LpE4LJnRR zqGuW8C>k<_^>>%L68c9*t|AM~!X@Z~Y7v%jQ#(rD?^~}3TCS5aPvtb>6U(QVG;9|+ zHvGRo?vmwuRg2KkF%u3vA5fm%>_ZjcH!RM*Sg+gB*|3z0AiGEvc=!m})3O=dUCx;* zF0CT9S%<>c`_s&v;#mP9cTdT$8gZOCaq#xE`tczd(J@&ojs)+6$>b#wJNCyPx$h%q zj(M7t#3p$S5~l2lWQ(^=i1dS)dk={xnnMvbqk=O&)!PR_vx%}0(>UFUvh#Wc2l-M$ znD=D{vRrMktm|X^x~ka(%i+jZ^Qa*XCnR|t?TS$!_j~K@@pa`X?!7F>nV9Q@FXJUM zuL&2^gB)RI44Dfpi&G#^e*NPn2K~>L5&?881?z6rZs^w@o}LDt>!+ADYsN~|TN*k2 zqI*~*uq2?Y;)z}tSRV2o5g&ZBA8FI(Jo>o}qCvVn`^wi72|Q%x>ZBYSFym2J60UH?RVtb?q>x_*_P}3+k%y zF%#fpFvM53m7oqGJeN+%K zl@kZt<5%PDP*9ci-Q+0K5(3oX?RUzvvDy!;D0#jMPBwMSf^3X;3vg`H;`>NEE5j3?nBB$1+Qy<28PgH0rpFXcuUd4BGEFDQKg*N#$96q?a+tH z6>iJjCVd?daT{<5{nWRgUKu@;w-C7g!+MKGCD5GfWLbzBL}~VzC*Ps)hK(a4O>ATX zD^rTuK<6T-YU(J;^jMV>;?__mDXSI z1n$509Qy4yH^mM-XFN1D!==jo>jm?ITRo2R$Qo6bz^bmATrm;zDg;t{zGuW44D*S9 zfXCQgL!C=Nwc2YxukR2PEFBYj}+WfJwB)8e!o3TMNWn%a`;-aXu#U% zS8xR&j?$@r9#oeYn|@vEar5De!G|?-!NH?B$C^}IQkgSw#&naDlk4#m=NXz`d#iaB zt>-7Ph{F!*jO!soIodl?EUS2gj7=Em&d|4=}N%L(FbudZ1zxXIt3dAQr#9Qx8t&?>RXz!2Yh zA44IaW$^~cWn~^fjn1S2DTOZHS7yt^gaqF-2FXcTk^;B8yET5w#3D|%0oJ?;LA$62 zdU~Dc&iH%@pJP;zNuc-&2hzQ|=`^lWZO7jH0UKzX>kx5-eKppuLDVIh628-9jKcBq z6YB)?lm~O-o)yd28Y=FZirvHp8=5_h45rrd@QoXP@PfzG$;R*0Q8Ka~vopm4P?qxjcdH~vRxaLU=FTFlD_t$S4*gW-w7(>=lkcJx5Ie`|iht$(HBCr>s9NbE zs#KuaHJ&yM1oKao*sc{5FMnN){XA&#!=EiyF;7Jco*P*hSlLP$0BkpBZx?&}*NitV zxnC9FZ*4&6i7q=vw8Ztspyzf^CD>eLFN9nbXuzpY-7`;1A4<@kD?MYEFBE%U7p)v0 zjqpG#$7ZWdOwpDDSwZ`^tT>-Z0}}p#ug{n15E^`wh4l3&sIX@51e?JEME^MN+r!Cq zoC-t5=OMai7oie}`>~^ht(%d29{ti2B9vMUL?boXrAJi2-e)y%q0`J$2 zU+YmtnKcs=7W_6}W^Z!$C=cU{+G)ZnxKqkP!PvPl_Gvvfb6|H)h{HMhPFAz(9wVdE z^%;~bTzcHzdt3O%a4vB_6|B4LYIQ>NgqX8%Uibh#++eO25gY3Ta42u5rN^d4J3D!n zb*``<-upXnrN0h`HhCUTCdXx#86(=f2C5Zyebq~SfAs+7^;^;3^(P{ zV%!q58*q)xx;$_3;NaAz}1dvueF}Tr7vW@@qfJiIZ(*+w44Btjm&6hs(hN zS3*UpqVotwB*UFO$_~9n!)I7gcgYOST*EncV6WFfgV?LO?iu)?p^j_h=@^|9sx~bt zs0F(#Q=2h*(5_yswzqmW$_3oz1EjJ767d}QsL=Q^k>F^iG+&1}Ak3q`)TQ;y8iu$Z zY=t{Z74{Ueom{=^vt2k9yI;z>HFlxmxHlHi>&I?-a97(R{nwaq82K;x+eh-q?Gb!LCx!8eBqBt5_>)>)ZBW>!2ycgULI{F?c7MfzX!eA2YHx>yW26Qi*H=z?>QlIA|U`m>J&W&?i1~%J(Av z7&GO&3&Y^kM$nTD$^1bDBWUA2QOUJdH=--$I~n;U8s7davvCV;vH07JBBe~9zFWsL@AA2`Z@5C}#LS`XEX2nUU z7niU?g(^Mj)jZ^STo-z1G=8H_s{B#m;AVIy_Cw*t5_$=;TP#38nwXfleXJP+a${wg zliQWZIx)$4EQo?+`;Fge7a#9OVT{v!b3=tzcr?V8QT(2sp8aEE_CxJFk9slJGzS%q zlJp6br!V$(fkw8Z7N0|=bKDP&ge#(Ld0)_Ob=^bjea6u-?HI3>n+pIX`Wh5!@ei4(E|U5Mj&sp2 zu3x)=ri-w*wa~Ki@PhtHObgT^q;BV|Z!(nHsTNh%DI+X!<3)41wiblXZA9p)$9wF6 zW13xf8*Ptz2JfS16iG~&R&__-`&tP z@c`@ZQvlGCVSAs2EX`@-3)$me+idGc3s#L?I#$TMbv6sAjusOn6;U(n*-LhZ!$+tj zOnB2mt?Tlt4eeaG`_ESO=wFU&4G({9@Jm5^zEW@`lhgQzz3@f-XUiNQ@xViW;z)mw z^P{2;Z?K&e?pJ^Bi}2)Kl7p9R@72|jOSwh32L;lf%q&)hxL}_5t?CS1Fa`_I8_Irje9;mTwRjW6|)*q|ybRB<(9Y_jzs=pK>){6qx&4$VBwE zcI9|Y;IX?OBr92iYY|~#$H8z#^|ea6^#I(!1mFh$S7Q2o#^TpD%qr#|ocuxSW50Oc z&h--&5}{txI?8rJcPbXzT{%}EqP!Sbi9Y^h*QJ~3tt47;<$S_EPxCBpTlQk1Q#P;) z+D>drgIr+X5s2zV?Rd>iR{@(`s>mZ-u&T|92w64e=HZFP;~}}!eRHT2h1eJrAYFy1 zZI#0e5*|Z&c-T*zyk62|*?M3|K$($xM|q6=8$B|KJJUR)p)y!f-*v%0qT`5>6;O=O z$5HIwBW#|5ConX+DUo)P;T@^p@7+x#4}8gRLRZSKONwthj7LPP#ywvxakFk>92J75 zO)&0?I2+-=NjUMln_&Zxg4fJq&iZoKovv~Vk}#|1PUGo0IXSSmS54>(cf~$oe9bkh z1?$?Z#PWF6st`CFGw1UVwaO~*XC&n44``rntP41ee5*9R(oG_T&5U;2Jr0J~L+k(e+`!!uc~YGPJa{Et6~E79T!gByr`QEo2wZ zLM#$f~>tY_iHF{jRrqGS7&paVY}gyPuAh4FVcsyyI}2X zs~B1z*UI`jY|M4&uDSu_y`tfSh0@;rgstdr{)p@CiYo zul@Z!Dy~1~{v1z8W^enqX2M*j(d=_p^NFkeVjj-1SXnk9%D2?E>xs{;Ex#6j@C;-Z zCg*wGK^H#Wd3?(kAS+uX?@{}GGX)lnF>K9&hbTqx{=kj|4};x;;?kNam3D=bFktA; zb~+3Pr}(B-RET~MlgoS0QHO8n@wsga9+F^`w;;q8lf!PRQ)Py2J8O7JN+f0$SnMQVhz?uFb& z(vyK?Lw`DUE;3G<=ldSr+}u?5^{o}z*8C#Kpr+EGTdGPg7{}#}VM?Gx881h(JqsD?j)#po~l7sl+`VxoD9_ z3pfCOJF1>Wz8Tml2r{YhC)5Cw{O*^<0k@typO*KQSL+?N97juG4GTVE_V)I9?gR5T z-*S9V!%6FSDw^)8rwA@EsG9jd$@Z(k-s->@nV4{((c3SMvMjDG^wrLOYm#0nzVVWBhaMHUk^ur4Z= zqO$X>>{|y)S*__A6#OE4*HlCWJ}zD}qNGIf&YkcFhK6`?agT*BF~js^b`Ob69>3KZ0l3tiDv+Cv6C&VY?dHKBLPV z5MhPKQ}9@gU-9iXMZJD~hntt+Yk4|KEu3YS-EHj~o+BH0f__17zrC{NWWcw=7NyeT zm3rl@EWp>2WT1v1Uj#2q7={o$#~2F3?V&m+o*&Mo4`5?bWxva=&29t_kcoeAqoy?n z8y5!ectIZ}yWPRlV8F+oKNjbTLk zXMSvLJt5)EH$+8Mot*N4R?!hi*h6Q>@>maUF1Eb?9B!5%s(#?QsAW)Y88r0G)X>m= z#fV+*ufE7#o1a+IMwv)bgS|f7UdV3rh*EWbXFrX?swL4O-F%=Rw9v(Fk(`^`NA(Rm zI~{G*PI>w)PfiN)>T#L^RfqrS5>!rV*+w8_78e&I0sQ7rb$PP++ozWl!*vWgIyxVG z!BruZn*Q5;Kqe`K%r<;|#|7Kj8XuP8uGD;Mo=wb;hg#05Io!d=>lRjgIw$Q~&2~l= zD~G*{)yDqO>m26EnQUyg({ZaGN#WKVJ2YrBSh0M{Zo8jDO3W`;c7A;Q+U7%0(=n_| z*{2xCd>55=3314#R|k8}2GM0{UiO@{rmDf{N*o>q8SP6$otEYRsf+myEL1NK(UW~A z1vmZeP8LXGt|_mXHli6w_dW07;h`TLifM73#Joo!OuJL09dPo!XCpDDCu;=jtExtp zGQR2Z4`4hPO>|w-Du?!Z_xkq+_l8@0Tl-rFTc31a9J+^^27bI?ntyD~3lcSb$G8vo@|cJw&n?R}(f)w6eKXb5!zhFj9Hb8;$&TwWl@&CS`^+1r;4 z5{ElCB}^3KJ(lLu!Pm&Wr5CH51(5F63sWa*Xia*O zQ<(>GpJ$zMq|{7();Lj!QGK|Y)8i~eGjPRz`)36a46BOXUUGE<3@-f!*c)ZG+Ln?y z)+w;i0o&zI4|CJZjTA|Vu%+q$cf1O4@&K~S|0x>C|KIxmdgj}M%`+-0bSs=EuK_1= zjCE%m;PV|`+P+6H%|U5LA0w@^U(cmc-( zYC!tW39fu_Cx>piGufqkx8>DR@X|UBm6y}z0ln$3I>|t#RN!_{5&Za2W*|s_u4YV_ z%0XEk|EUN3r(ICQk8D#H)Pca)>ol}dpC@h9U(eHf{Y-fa?Q!ZY?+lZ8Rq1!HS&WX&f5>+iD#palM`{1*N(Q*^ST4M9BrA2gyF4?rWz zcBvXQHhZd1qP0Et|V?aT*|;1 zF3_Y!-0Q?5cu)pa_xwSws4j62r) z*(lgSPzH%(Fk6g8>o38G_+l=hX|v&u=LwS5dzo65qurjY8jEjrnsuc3u10De z%xYTA%**m)oI$QqqHkw>!}Z#R4OVe{h*?{LxO;l}b;%`)(=;TuUo!}j`Z?~WsT_5O z41>5E#*5_;anTnm)!#+{22p&aQ*=KC{cKAZvu;}1l-K1O%0WoIAZ~U(nG3+3%^f}k zj|RnnKV5ZYG&8iYkXoCG8FmGDv7<{$#?NTEjQ6gU7}x5)`+*y>=y-)9XjH&f97DIluJduutMf2>A$W@)_6HvAl6EvV(a zmB1=&?RIsMu<#N^#MOTee=wE#Svh_~@4s-C+Qbf$H8$GPOn9bh^Ho|Rr zmP}Gs6Vj7TKDmbR%QfqPufMFE0(uyUl_ca#^j`!~$8-6;^ASrfd$pL{c}<_C)ZLZ~ zm*|$n4Jz^^-&Nq3cC|H$BmD0@?l zlqrMsD9dPEEK7M|q^az3N;dG*6=Z%i(2p?V2Y6$xA%>NL-*l#pOc&<$-%KZc?Ty(8 zq~2fuY1X7xhaQRo=Md+20YJe2S?`7Fn_<030H^x$=rWLaOD^%(Bj<*P52~+4O){(u zR;Jb8o!XsLwEQL*qv0=TX2@rz;sbS=sNxe5K?#$y$t^Apz<8eBa__*5LkTs@#Hno( zU#e!_g{WH~npJ=xYX>^zpGSgJlHw!Q91_P*a6vi9s|W7#k_TwhDo&wKmU87{#r*ev zz9>A{2-2;J%E2$)Lw6-1W^JQffU&c<+MwbLJ*0K$ACqOi1||zK739$kxX3WDHwsK@ zZK%?2ycNGTfm5GPx>meTkTi-iMg1%wYK6?vCzZ;#Fh53=NohD6&M3uxw~pE>oIbhzzt^z2vzgIzn}^z zaB*6BBo`c+psPc8)Qgk80VxBph5Yux)nfeNbf$kEDc=`bj0mIlUg}|jjQ}BviP7KC z{w(|=N*fj3+QWDxRBfv(P<0n`8@6+>hFI8oCY^s>t0B&mKR@1^ed>tgwjc5 zWeuLg(mS$U_rbo&C!F+JuN>*!B+l!{5WS+PgmT}CfwMMkfp>WVEs#w%)xSmKt5jwu z+fz;Oe83Sy;9UsWhJ#e*gON(N)KLIjW%{_r*1zcNDZKdXN z{AX;EXe_nB^OaEsm|8pF&e^NZ&afuq?ggk8>=Ww^uJd`1 zG_kLNbr%NMA^dbs*Y41fA}GEKh~x&u8gV{*R#Q zpWo&&PCs`v9?eqOnencZlO~*=y9CxH`g*W_y{N|aLj9TqrKN`)bWeRRXgSTg^X@vX z8oj02{I*lcdNF+-9XUT0V;3^l={Vj#122x_<#n#0$b1Xn$Wd%}&y>0Ks@(c=97m1r zx08i(TQii2G5>{eCDZ=@iE-tMxY#?s6;r%#o|p4(xfYS-<_6qa{LRnlOe$Nj%pHsq z62;1Q_O5cV<*}r&0CQ08mwXjD`#g4hkX;7oX$EbFJ>+&rc>5m`-#Uf9Fh_ri1IT)V z31<-BIK`($hd8;rFrILYQ6BmaVFPeV0B@gMlduxQGq2SYS7c==r5H9${Y5u|=Npg8 z`b8B)7bNZ(9jxNJ;l-0Ahu(hRfd!loJ8sSw&525`0xU-dhiG<>7#;N}joN%-X~CkF zj;N|(?Q_{qTdsaX>k*sN0522nG-^$~0N=y5SWrS^8u z^cva=B@#&YP;)!T(J2yp1 zigO(&wS88IUKT`LRW;_=C{qcIoDaJ*er5r8?6LV9ka9pxpCs^7X#?2?Fi(Tu^4_tT zxgqZbkl>#J{8wk+s6?mN)ByDh;W*TuJ8e?vyWZpj7(TRFPPNxKgp+WS5e}YIZr_^g zg;tPrPEpeUX~fhb&}g_AAc7eVX+30DNYAy7!FmR4P@`~@JG(v1&8N%)gE)y=BSicY z7a=M^QB@7rGVILi8SymVj{r6weXO*JKl}&~GsjCOe!CiP%Xhi`jC5CIfT$H7;e1$e zA|WiL^tR^f{41@9$O$$EVmf{Jmk4%gaQUf^PSgC3?Pr|&OxQtL@Q|YqN~L& z*xAK}U9^dm8YiQ=di2+^89!nE#kKtUPLX2w4OB#8xBNv5kKyFF49&L{VP+=B0bk3$ zsNeXKM#ITMp9kb~W{Yv%b8Wa+KDAihAuW2V#)i--Vqb1J0 zt*?9JGb_IZha9^K;uJUUnfEPGyte?6qw*{FBBtq5=+sVMVjB9GDvGQa3*ojgs* zU=#*K3S%~x;_d5NZa}bqyJH)jLY`oy&mIoj?3P3@Pr+dx#egspYnd5yH#u5T1)gMJ z!$%+9fL}b0!1#Xu98Y;$;cyE7Y1?i{_0T1;8XoDD71`L!c9Je5dP!`u2TBNx(OL#S zBUo^dK+b|GZr+z}-*X4JzHL4fzu7(%qL2Xck)JUO!n$J4l(%T(4JJD z<@t}$Y;+}>oZd6nopoib1?#E4V|;e9TcHeD1TS6k)2YXYr&fPl!spcRZQ)jR3(FA) z6gmb$s}xI9+J)5{cszpbwV`L7te>9KOkD~dp@Z~|k+9j>JzsFIRd-u1-`#(Sc+7s3 zJ*Q-KMj_W>=Lf4)<;mJit|bU6zvCr}9q%{U^9<#1@4e~3^Nl8$(MQ6f6Sj-yfZ^bJ zi@Q@=?8~mtgXXV--)7(0`sN&r@ICMYteE(52QG7L?V<;wS}k}yy?56#lMosz8utSW z?@4hIk>6vywloAg=w;ANADqZMsJ_Wm$vE7)7}9fn!vxjQQ49D*b)ud(`Stz$h6Sgp z8oZ_a_j{m7ulY&9|2t)-NTFc7kv-v9jD2GJ3F1|K=_t=J7+XCMt{{?#q;EtA#C9Cv z)Ku4PaBLZ0BD2cP{h@QeRtb>muc1yeiWm_b`H`u23v%9>+B)SP$UV$~Ng0a^Esd9q1R zCf-mW8?_7eC>)cSY=LlP*St!Iybo$;66MBdhg7 z@`BdM28iBz&yx`cx+P_t#tF%5I z{i@;~U-)Kwk=KLbYPM~!dijJ%0h+0nJ#j=+6Hxzj-mth8M3)!F&rV@wuZ8b_XT(9I z`J*cb+rkRm5(w!KLW-ZU|Jpm!%s+E4i2MkJZF9AIH3V@%3IejzKJAHkOmCRJ@q?mb zGPpFNosy7peY(X$vm%IXbgUNSNx(Fdhq7G?#A#yN+qC+DGj(p_yr%%W*^CeL)AkVk ziE3FkA0cnpGDU7F)^=|FzJWwLZo&}P6A9g7mRFyeS;w{NzQ&6<)Ap1u5F~Die!C%$ zc~$%$a^4ZRQjG)p7@+$rtvD?Zqm=*T<|Y1bbMs(=xw=qYfn{OpaCTxb7SHCl@5+;; z-1adw*n!hGu^UbEBKH1eAk2S|6b=T}O%%=LpV=eqaVHQNCj^Ll?psHF^nLPr@vnq{JywFFTQF3ZG! zC4TmTVlY3ovytAp&;YvD7n=pIR(;1)gyMfJ{+KDm7r5-!Vwu1J(Q-<``0VIi?Pn|$ zW`(2_3fn_J$MzeKz8I2vPyzk+w(Ur%{3(3H7OQF_;~PpqDttrwy)%`?XR~s{8YQmR z!$j}2GKU6fIUDVQSC^KeC-0^!lu@kWGtULcOxM9ASTCW_|g!n_X$hA+mI)N#$HwO;0bc&Y@gA zv?j{82bh#jQ?%SCS$W%|Gu;)|pW3mzO4#E)#9hC?NRow3<%9rJ#K^n37DPTkA0`ME z1$QFD?<%;nn9vrAsx)B&37;2%R?YBJd)BrzpKg73i}-Y?e@Li9zoqkCu14F1KX`4m zAb0d4oaso&+shp17?)*4!+sl^{|QAP;amoMO&urXpvn|gSMIYvtdSi0F%ANO=s|kO z;eHU^WVfH}mS)0Ad{;7=aEhMHe4#h24ALD4fG+?G)P#;!^)VP;nqBrwcrbKHo$b)w zZ;v2Ui@o=bYBGJ-MrX!x+&>*<6akesBTcDNlul+wr58o%kSJB8_Yy+J zVHD{Ch9XU=B9Iu65?WLUkx(*#)BuqhLI@cMAtaFGdvSh_?){y!&iUh8>+HSO`8RJM z?|VPbb3fO8UDy4*rvRS8#Q~M=a&_2KS=h=UD7W)h%pGOn84rAMYFlR_K2;r{5(a*| z<%Q2i(~dkH>bN=mEZJVo;u6qd@$bj_xAd{M(&Oy&mT{oUW}hz6hvplseSfgY+sXC; z?{L&iCoFV(Z8A?7)<%PtzM4Aa{QVRpD2Hq_6G%HFs+_bw9r+``cVCja@IZ9(mRWCW z3(W=o;WzbH@4gd4F&!XZ0i_0j20sx~8)ew98T}R^O9YXaTU1+*;LKh=YZ_x~Z!gbc zvFs&F2TYEG$>*_s+TQ`>n4h3tV~%TYZ}h_nN6!R&Ie0DRs?0pVUaS&t?)O1IkeIq=>;Ao(#^ga#lNlhI3tpPFs0yw-!f1VXrRs}x_2AZ8GZtY*P5!(R(qA}3en45e_~HQ&bpBPF>| z2HdohQ%3RHND2(oy&|#wNga@Vz*G?c?$CdI`%UQL`|}u}Y1QKqa8M!O4e?^mc8tlA z#Z+Bi4!Vv1GA=jOyxT>C*6-CCY$RZMew4|M+uIE*561I<8E5ZtWNhstO|Cr5^v%hM zw@yyc7HaKmG)aH=K!5!L(6744CBm$a1*T&GVD$ByWHoUwI@U<`hJ_XFJA;OG5zats zLr;V;^nHO-+ilK|2F>d+7y<9Vi9dh3=HNHX&UiQ}^NC4wUoj^A6~wWb1UfLiJ+stM zPBO8o$x~BP4};kFyU{`@#*_#Y;DqHd7kq9EuR^(7j~@Yt3mS$lda(qH@0+6uC-;wH zT#wTQ=-d6nC_1;qYP$od1{`joEwlAomHe_n=JOcIv*{mSHL|ZfoG{UzUM1Sc8YS*G z88h|w47B$ffqxfLaXp7mm&_iivT>ojAnF!l&RMdGILqGw&BXueWVP9up%}f{AfbP0 zX!Op{Cjw-^>8^ z{)cnZstAW$Q?ol>g3)+cG*oP_d*h6<%gxwJ6G}Lz@zHZ~cRBM8(plu%`aTJJuW1q~ z5_}F(x;pl72?o0>NVHgT&GmD#0h;z+Y;Nlo8;CiBs`@eJlsv>Ul3!g|196Gq#0nZ$ z-&>PDE)1N|^0&|u624Fe%nQIevhQjEvM0DxAMnylm{!3z_`9Kt?~YeLfBtgtdP$8D zCAxElVMiXv*J^wxP7R+1saQC{YzlXf``-pu-BrSB8?TLg5xBUufISrl2o* zYHfapG75YJ4@4M_NawZ*ydJbS2Ny5B*DlFzD{)fs;UX=1^%^aCdn_OMZ4^0DHMAtX z2%)st%K)9Vu@=gK1#weC8EnDTWqYtt4#r+lX>=1!G>|O=EZ54@DwMa|WdZ!1tH43m z6&kEIHNuqqE(JJ$e6vI- z_SkozX?qVo?l^Sp9bl_2M2#mos<9i_3_xXTk3-&K`)1$v@Un@ z$JXEV?(EY3JXZjTz0wmXMB|0hA6oK~l%4`79RWU5cE%rD^+_G@D-x-n(ryCYH+8J* z2RCfI+mnKViuo;HjL)or$DittXD>pV)+Vu#ErXL6FJ2tOP{SnpADLBhi(lx;pm_4c zQ{mrNsDavU8qGxgxWuYMA|GvTLVx`xJv@4A#SL(CNwFC3$JqW?@B6pyOJwSg13PJ| z=clr#fd@PcJRrBQJ)W-l>~T>%Tc{f8MCK&MH?PQniOOnBT3DtlEE5LRL(&&mr#<%1%RHKR0Glya( zgtp&YnNp~^YA!3a_7stqYNaQN>Y{Wf(>k1&D7coNa2Dof8+(k3DW^Oxb~(+wRvX@N zph~S9IZ$=DFGKCDzIIV+5Wk1f@sh@SBb454BF!tqyg5PSEbF{qF8%$1%W}s~oZMxK#9--!-QbQm%PvZ8c+q+fA>L zKxgI19a0@zw)HjjdT-M4+SK+g+LoA&S^btNHh7iI-<}ALE_YsZrKLqMQoFahFnKD3 zg(->>&K#2J!_K#A;HA6^yNU*mZMat4lQ=}hR@y-99uFP}+1Mp#K=$g$ipswd`az%w z#d!8SZf69<8zFShQqdz}ro@W1#6OkX7;I!JUa%?9b8!6QalU{~~*ef?lETD(X z$I>aU9I29i6W%e3GM8ta&mig_A5sr3H{AAG)^V~z+n)D0mZ4noBY&X*UH9Cv*ZX#@ zZD*lCmc#7IoEVSPGM2jJKa%GoqBQBrhP(n_v6sXF`0r;-y-?YR!^sLJs65+Gu!9Gs z7ib6dVh5WaMPr+EFLr=MT%9!S@I&Bd+Ucrc0Ib@%uP$k)tt9Cf`-bqk|KNNjzozEQyA&EB$@n7U8`h- z4;>yKs$>1VjcUm>5HOLC0pqL!0gI6yHfxjy#Y+fD8>K>lcPPN#+hlDGEJRke657wa&c=8p^X_&Y9Y+p*7-lM!|m&b8&* zH5VGk?=B@HOm2km7oSbE`}(#WEi&==5W9^4hpEqEwJ-VmXE-!B;hV@3E=I}a#ji}M zHWdGAI;u`)dn-dlM5VFzg`=6K;fa|ddVZL`6s4-B?5e0q?X+|XKWbZ5Qqz!_&=C@& z*H9v>>9Feo(W@fNccvQ)8v9+(4;a@PcnF%mi|lEY^jWZ9pj`2^yT0#riBsQ?u7J__ z^5qXqCKE9(Rw0<@ug|n0V$SmC)%a(J;c1{PJX|73Fv#d0htrzpDRAESf*+P!gNU)^ zzsZzAl*6radDBpaoqRbcdfm0c(oA8~8j|^VU1r9il^9N@st7_&lV7c3(pa>Rsu0{CG@n*}f-dXTBWB zyX69b5-i|4SB(zhZH*AhNz|_SEyx@h6Q)pES*a+{02Srw^BlO;t|bOsu#12FlVGqtFnWugdUAxWQO5IB}O-`DOsk{7pjCKe6m$7#w$qW zq{E!}S_H9yH2Bf(lj5VKCr#!_@k^e8y?9;!F*Q znn8;D)hp#!{~nRM&q0>RD*hvkdK#&t_6(|Q#d$<4kX?VbJ-yV=YNTbR@5P2*GV-F; zLgb(3CzZ~gRXMYtLB9IxvCZeZ{_1DW|9|P9G5mjw#wJEHEKE6Y8t&X;4UYRbSHHSu zgiC%H*QspTQ$3!JUs5^V0-HP1xMb#MqcrK~z*vlUAFaJIuvoO;_`H!$A`2@kX|bJMpiMw-LmmS9>w8 zFI_h|gqf;&m5mbllXME4JoZ(4mk_dKED zkh)@Gf3QQXzAoBdJO=%7vVROz&AYuTkXQ7Tlp&L&wBqTMA;0`Xep<= zO+=ebUkbtt1CoHwo=MLyjX28r6^rsthG00HB~&U>zrgDe{dysZ~TW?KE=(wJfK7I*DSi|=k-NjoA3}T;Y z1DG|9$>O1c!6{geUUa2G4M|N>ses6K>xURhiECUnZ*p`RW%N1^)@*m6mZPjUzl>Ym zn?XlNfko*Zp1bHej?+a)-xh4>gtV&lZbZXwK$jw{CyA;`_VyeMQOd?x!1rt$EE~E( z3M7tgPeke!C3>j#BxZRr*3u$+xvTM9cTYVg$KMDDYunVqXo3aalHJJhjJM7p9AM5q zTinyjX)+uG0J|K8{f6LmgL(b?qjJA;^wB8ukfar&yN$CPo4)~zm<55v1W*OdN z2IWeCz@Kn0R^0EcEDJGmDV5Fdm=X_|bnviCMyL#p>5DcH&;63jxWQ_hh^wDt9tl&A z)o=ozf2q-@nU9?nE70FvFz#ws8M*8>)Z}PClk%oH8Qb*+m@e`6-7B&#b{_V3tH<7Z zz=&RcJLE{#JvoxnH@4$eZU#B9?HpQ{?^Po(tmaEexBPkG3FSJsEw_We)t==St)x5d z1Ir!O+OMv@`s!SXyH}%A^bgHO24XWojMSsOR-~5;*S5a5Q5HFqp^CfbeYNWfq!twF zy8+pwNadln!?btH>gH}o-nMtC)#|+y6dEY4Y`BFqxIl)f26{DBFN44DoRm^PYO6vB zPm&QLQcuY`BgaXJX9y3?hfB}i_!fBl!BMMjaCpfu!+qhI4rGf^{mOD8TFW>m?Kd+` zF&UE_`B0+QPnfZ$DT+P!SWrnyz)_sJp6x0o8Bu!O{)h(xioIz&lXP#UMxZ*}4>mXx zz{|#X)$k3?7{4GVoXlG@nlxEF`xM0b&@xIt+s9s}9J_*}43x{c@*PA!ELaZH^um zFC!|J44<5-qCT78dv9D8tg68ta_5Yxg8CO=rtedC+2aIrbz@ zOG=>wIT|nKJIpAPv9=n6BfT533JB;+U!OVHR8yH@7<`yHEu9e6u$$Fr{Ld2_*oan^ z!r3`1n4CS%`n7gG09kiF)|zGVsBc{86eO#sHK8W@c_+cWVsrI{Bz|FY%Qf)CPS2rD zi22_IYdKYHaCBMWbhT@cUh?wm`%oNPp?99+kc{X&MO<%iN?yOg<%C}`i=1>H&XgQ5 z?viEC4-|#mE#280zBw3D!FZ|RysUJs_Wj6W+s@jY>6%iD$;Z)oqc5ZG7M!8z6o+um zCLedY@j3n99S;BY3jJA#bFFfDnP}wlvVw2U^kv3qyejPJ%-Szu+k3-rpGGNTJAYiL zA{~)x2c`Al2}(fx5qbt$`CIKd8AMemeYD;a>~s-2cWvG7u2sXByVoSl9GkKir;~yK z7N|qC2q}%9KGD8&rbgarPT$fbRBI4z>sYHLc|DsLCZ;s06(>geE*F~68k$1V z?6+DQT~8``UHKefO`-X{x$Wo+0u)@Y|ru)HQ!;GB$*XIF2!`RkoLpq(p!yQD)`A~9;s64`j$ zecNBk=88@Iz}#GK1bJ$G_I?IunQBXppsMy={ zRfhvoOz5>s?D9~dSzzz)H_XH8iz=kQ2iG__RXU!R`J7cQI<<(E9We3O9or@xt*JC@ z!iHTk*2I}S+4?DtEiQ@fY?|TLxebNgR@6or4*??`r#jF-%AaV6mI7AAn^_$}$oAK} zuBmKB+EHq&XIlVP*WO^*WA2yK?I>JL!ChwC+LZWA*NqU&+;nlxzpFtDcEDxIh7QP0 z@@w?YpL=}AEo_4}IG`r*1{T>j0_f%BUj)y9H+QlEa%KdLCzX_@s|Zm;!Gj6;r4_zX zR=5x7{)kr*-No55A$}Vy`%z2yM8WQ{W@&NjCMU40vXcEUF+Nyp63!~rmXHY4i(LxK zaCD-!nKBrMg^8#owk*$ZHg~YPJ~|@gTK9HqYC4KDN9<>_MJ#y)pFHrl)s{(pXWUqx1G(=3DJE z;%fkMC^pGz ze&A8r6c_1!&bn~jBJ_M^7^yG!GnU`1SgfjbpdJLFxSuB>HDUxnnKU3$Es+y10chXNpx2PAvM@Ik@ z1;y6;>Y(zcS(n;O!Vtt%8_JRUUe#_UUSt5~W~e%COWHR}VtJ|K(Q>48uw+v4Owmx- zvnBzpm+watOF@jr<@y#!6sPryD49)VLBpebdFBAtrCX>6bEDTt9iU@d#c6MnD!#e1 zygIpRnk6JJhN{TgbtuJZy!Dg~^dbh_Ry0=ZBlg_6eQ(6ER+hcMbu47iYm3OwR#2`{ zUF0H@sQJxnkZ|nGX%u!uoYy6+p53Mpbr(-h$t3kM-X>B?DMdUqoxU&xf41FLw3j~J z5**3d#KHEqK5c4#+x?d4EUTrt$e{1zgU^9yrbK3{65aQ%N6hRkPVQso_V`-vU+iu) zGCE>}uX8b9<(tFi33%ZUcL%7y{;&(rl`%BYRIM3ntSQ6=-~_$5{y;|~ti(tP+7x+( zeTSKKTZJ+LnieB9t=Fx=J@v39IOXY-Ob9LYD1v6qo)kZ%NAl>Jo6AEQwu9|!Z>~GU z|M4rY9RR6qvxJz4o+RAyQwQ01=6-RF5AyLh(rubg*rbN1=k~)^V|;@ACpH38Jr6%z zBHwNehy^jn>y<}x7025tjp-9iaD+hNfxM_inK^p1Zf>z{&9S|SutBOHw;$NM5{hl0 z#K>Y$ZLtfR=1hW?sFH7_EW646rHGhPn0kDx=9qT8YVUmG>{><>p}tJrcGt~X)9_Vu zQvgu84V=7_-AIorNpWF$VSqo)F9~zfBNBLblqS4Kp6OtBW-72^qe}%*YpzXnZbHWp z(-`_@v*NlYXy6lgeqyM3qt^2Vv}IJiv(y0{}xmN zfSAtnLylYR_T+V6SEDAmWAKSk`a}Zizg1GT(#{obZ!w&NYr;HQIqx_CO_zhFj5Bex$aswj+N(k*t;2lr6q^f z^j-5(Z|I*f|HI3PV|UBf>B67E0h(gzJ>0=X{#dTv`kNsg^0m@_Fg>lQzosFlB65}r zdEcdw?e~JGt8#3Zfqd?m-;pQLR`2f<4#`W-PYhGn+}{yzg4$qzS=Y}Lom#2o$9-_; zMJYQqwYAoUrm~Tq#>+SRQs|edK7N!O3lFr0*aFq`ae`zckDhh_p;2RRZq$DA(A^5c zGTV55jEBkV0G&?2+A7)T5l4;tl>ymgvY{hNM-?KOB#hDU^5sH65fqmjm>d~WN5;U6Vc9>G?M&A3n7xtP1?`YLL|+L9BA z|k4@P#$EyM_ zsiNd=)NWbIQl3oHxTcQ>dJVCSwT@1TI%gQ1y_JpCCKL;wwn)JZoli7*Arrh>W;-=i zgTJFMRfZVH0oL-0ZztPoe|9$aK-;=?-rQR>xuBwILzHs~w~LP&rqkG-)sDTQh9!m) zNif#ZJeUS!Iy`{f`Z)+KoNhb`)>-#kFS5hKUP%;EDCF;Z9BMKsW znr4dn8p>eQUwAVXLo<_7wC2d3P7l}+sD0S=oS$I{4};M=oGtpZ6@>Tdu@``|1gt~U z(anW?IcuKOj6_QDqLlx{d#OXJMjrfZ!t<2n@yz0J_uICdV@x4-18IqfRaX*I!U_G= zK#pMnU%mbpOkuL!_x|q4wc49tW<)*Tymot{z0Bxrd3^0w%P75|DpFdM?WRHu+;U(y z!d3|GW?9AKd!q}Zr4``UC%pr3<`LyYLN%B%%vxkHopS}@|0VrpCvH-^<|@X|E!{XR z`Eo~%+8{KU{iT>>-t{eunXzss9}EJ8w`J#QX(|Qnr?$qO4l@KN?%J@k^xq z>)%kzHx!~Sm7o@N2dkWx6}axq%FF5(FyT_v1Kh5**7>-)J3t_^3{h0B=jIV1cYt4< z*ehTqu3V+ugaJ?oIji`6Zcuf*c_3+Q>OXRu zcte7a%5ydSWeuw5%|a9cX2T01eqjFky?nZq{{q+u0krjqeP%MocAq0OX@G z!IbSi^)QydM06SdC8mjyo%quI2BTWxvu zbi!qXuH6fE{of^xpYXJp_kDM{fnm?>t9ZgRL+dKLLPOi8BfQ$m9^%rhGYJbVo^d#0 ztg2#&2)=NhqC_y-F;^DB844%^;&DH8pX` zrZtNjuKnJJv&9e`6QzE+hQGADr44J^GruVN|4~o=W~5D1K4p&^pM{nG8J7rmH+xMb zW?`3lQpU`x|DnwNmik?F&X8tLC*}VhK};pv_@4Movp<=ZPB#?aCBTC__G6>%#9yIq zE~z}`n1rcgU&e7hsy*DLy;#DfaRyCto!_Q;xl z-&Nf4lS(ya+izIe(2#{y$5i>#Sl+Ek>|P00|9F|SSO;PCm+4l$<0Cf1AW#~W)@#%m zac)e~$YIjqiHi^@Wilfh1X)Q7XoD`q@pPiZ`F5~n31bC@iZtv|tu$88PLlUmup%cc z0MyG_ZgM#fd9R)oV1i1&LR=qQ!CWH=Se}ALRtk>rYiNeN9}Q(aw(jzaeVf}8f^NoD z!JG=3;ld)mNB)#ON$QPqbke@gv96~n(y|%P`9;bB1rlv{wys|m1-XD2Qw;MFa)ClG zW8eziRUs?P3Y)m4r@>Zc?_!3dHd3KvWz6n|*~Wil*pVAVkh@O1&lmH_QOgV`dQ{6K z$AC?4$o=t)s8$=cbQ%op1MQ6U5m?AsGr$+&h^^69h1b8L146^bxyMBLQXdak`D@oy zA-UaXpP*Wrfin=6Oe)cx8@fqhx0ccyk+_BLE&Em0eYo>&=ztqO5-W8`n%Oq`Hoi?g zR6DGez}fEka42zpw2sA-$S`#I8@PrgFLX?4gplD)DV;R9y|2xUHFu*?bn7&d31heMyc-b0fa0PLNj#O1h?qhDI)erIX*(T;^no*6>t|Lm0Ug@t`d7P;tLeb5XHlYfs~JgZKE1 z{!L6SN~)GF(=oUOj{oyQsIMJ4ip6je1aqSzf|jCmcu)k%Cd-yz-0|%vSh+t3m)=Bh zAI08rx_yBc?@&uLSOmMFZTrqZ4qk$Hs9j?03pkvm24Ek@(*&{D&`y`qx~N*cx6eB1 zZ#@gAhNNa3QcNVvIU4C3wGQ{{EY?SU?&|t0Je18U>g7RPBR`Vm2gJ^pKQ{3gVoniI zt>zi%J-b_@JbDb4`x>r(B+C7QTXD?0lK6O-i_ey;-?`Xf55|h=_RQW?0T{Bt7@&ut zJ5(^~J+?m@_8_;X8PijpDL{WwEr+KA3YYU%#5<7;{bFatv!RiVb71Rj{BqL*z_Xt9 zY9vQ-*~+?OE`0)|Y9Ett2>sV5vgN$JeKsM1Hn<{axi$0l<`!f9;SKE?5Ih7&a7~q% zJh6L5TG?S!OI4b50`TleS&t7!eTZC$^gaFxz`?3|SS?78`mjNnqi&=Z=Xu6`G=ZlN zk(LZ^08NEn?Xw+bJf-(9)-SP6iYih0U|NRwRiTA_o|@V^MMMB@C0m_g4}Mpa$4sV$ zmB~G=wocB_0)~8F+y^j0-MW1Hx`h|X3(y*{DR!btN;4U;W3j};$hJ+k7aP+u`m#N= zIH(DqL~AT@;K3aBX>3GthjTHTF=_F`7fJ7?lqB~KNKAN7ro_w7veD0jj*o-b}Uf(yLWq|!bE<&KuZ>I$GX!p0hm zvC@}vR4QWEVym;``7CzIpnC5|__)(q?#rE=X1oO;-UVH}-%-;0Y$*>Xbo~^=JpyOG z#771TjXVw^J`o_xDVQz8IzHeuA?-!!Wg$0f zZ+515%UBh=CatI87eeVG*Qk_&^oM39_9xR{Kd+>+F7BzOmIMZYXUoU=2gQ^S9uoe0 zlK$_`Fr0=Wv;}UxVoEiF&LjNdi~pDNMjmx2R_Da-C8=blPz}fdJaTjE$@2_iPgALT z#R_Dv3J(qA_+<=_Uv4bwx0C?ec&VnP>s)l&<>;Dcs4bitO&rISePa)x1$GAjS>Lbk zI@_MNKVy<$(0cOF6N5)KCKk2CxGE}T{9??(u{8c7pM}~xQ$KoA3Gj0SP~)W14i5d= z7#!W{?j<6lr-&W5I-JanKy4Ho0!Vq40ZqdZn0x>GY)4LnMZ*hQp2X233N^TiSv{4y`h`m^9h3!g|Hv?3_gy?)VUHv*74K5tWkE`Du9y0Lko`vZQ)jC zDmYrp40&>ICSOG16v{w{Az338_LFX80Exigr@i~t0mO#ewz42!eX=FdEV-6E4)@Xt zd~c#Iw~JBV3-q7eT2B@dIJf{|Tj|N?q2ovRE2le8mO0?vx86?bysXiTweH-Nz?n0l znPQp-4R|Rz6RJeNI~f;{38OYP%kJH$N=70`ozm>B@AeE$?v@VaK9@( z14fk)Zw#CHGe(Px60tHU1_VhR1OOTI=0^d&b$)8tbCJs5mZjLuKtcsV+xRNJW@ zmj92iEB5QxYpF!d2Pde~*ujRi!qSv^km$FV2bqeQqmhOlgWj z5TwtrPt~F!2LPlESjNSZN@m5hFY?B}5oNZP8oaX*D9*O}la{Uyf2zHbMKUigTb#F- zvguBe;f#arGz?DwdO@o2xOh&=$>&a-4i1<)O^O7p2U`&?1>5*)pN>__ za?yWs)Yeqy>Csk@?ZC`B7P{l@~%?A(A>mIJe)lo(T0@xdyBsf=U5gON@DhL%(um>@!~7 zMD%x@imOrj4*Tf1#@Wr0&sXZ77+}N}9ID(SLnaeiA|lRKmfRelY0(oc^Oa{T8Rz%U zN~LU2F}RYjm^g(V)J*kS*!F^FTboTyA3!hfp7})Zl4-s14JB4hr%{q&d)o;WOG;iJ z8RqTW!reNXyLgwMQYeVsHBVOSktT?58>dZJog4B7Q^}5;w|?XIXBNy&I>ja9Om0>0 zwBSL+eZ1K^Yd%U#T}1O>NkKFV=|tGv4+82IB5 zM|Y=~&L(RyYBNDu&ysMqKHP-M=-WU(u+CMW&XT3Xj|t)GxavnV1RI!r1{i>C&8^tk zGPEHlW+TtaRu>g?6rbcKnNmXEXJGeT1j0w}4=p5lwgD~*PwFYsr3ho)V!T*_ z5lPoP!Un{^MX7ZV*bUB&UIJI3yj>KbIdHN}8bxVSB=sK|$I0q&3PJ_FUiU0-Fh?Fx z0QNGsCyc_Ynv^-5V1TU+I3-zs;dB*P|0Kn)Oez#-E{8*XQ}D?La5+iC@V!WYf7NvrPx6?pPz zRb)$`H8QdCt7MmKhRdSTr>fKjy+2J)%pAm-v+um2z51vqcd6gljp46uIKrc4nP<>< zeP8lBlv0G4K}REzrH=V2nKB3Ete)IojGMAoHOo=Z?fK{{9%{X-h$EmYn6CYA9V;eu z1ZH$f0dL6u!WlU$=kQmf#>?g7Gh+~5m>l(7PIDI2PP(Yx(Rn)Q-r)Rv`4d3ElN<_b z?4?aexg{S6zi~kP1Ck0{WZ_C%DrAUq#(i{TR_`eYXD<9xY&WD7q;u)-#;1_GC%R`0ntCHIBA|f zqAYE8!-miG`5QwmZ+GNL(k+%Oov$^@vC;NVrvbmiu40+%z8#)!K?&V;_4hkhw&@gr z-gN4>DNg%Xj->Mt4$((l-}UpdM1KvC#8EnGWX2dqV$F)XW*N<(?-*l73Y-6Mp8#r7 zBwnwT?M=Iu4{-ethHn9oOYg0xPvMiil*vR~uXSO`K>r~(^xOwbO9-gVDmFDV89_K# z6lLt*`k@dI+#{SCf38k#HG?EJ$!I#uVuHl)vR91ZcunKP+D^x6AO3BW zOYec|F)DGMC3ptvNg31~DC6qZ{sl{kyZ>2zvqw;r>|e-S9M-i|TWO^i# z`v<$mCbU1{>OphvliI9g#FibHTJ!F1SWj(UFF-=gBJw(7`@|+2Emg7sEJep?f3095p=^ z7plz62ih2-&s};9G&E?9^j`FjE>kmRs3MG+QTX}pO#Ufijx0h$1~Z$WpDQ9Wav7Sv zOHmBxL^_XPHVSQY#q0BuOVbo>FuJ@XG>=N3j;XX_Vj4x^cwd7&p$^@ z$!z@?{$3qm_VF_Tm}n77m0zFqzCPW7;9MV83v%1H`RSf$7KJq1J;IL?{ht#P>T8s& z-3rbz>}~-*=Y7;ss7Q^GoBRknRIszJPC7YgP4aki6AkD)vgW^tF1yD)Rf0=@CqLh_ zo9}S1;^6T8*=gN6(kty_KuwIWH1iHRX7aaGKk#qJtO%mw+rD z{N%3r$j_fWyP5Urga2{V(|>^4@Kn%w$L31F z3d%1F;Rg=2`Ygp5kz^~}av#Rc{sR>e7Z=BF`P7p40iaKPqalEYrK^yJ=l1$F!#dQ) zq$Tz}pMJdxUFfPhHGs=AR3b7bz0cEHuPlaro*}h*Vd|lt7U3DH($6%YOxHDE(&?(e zJy6* zPWz=W=|j=pCO&GuXB2(PN>g2=;YfZ2AU^it4-=j!uyc&GW7L*&VSzEjLt1_5*uS(Y z75sKFddHik>~o3J5-H;B+;q&&*`r$wfr4=> zqM2D=q{D)?%NyLosJ=5GK)u*sS-0T+6Tm{++Qub~z=oKEvx}6=N11v1K4CqN50N|y zrsZPzxye9yc!`l1MXfNUSf&Vl+aYusKS{jk&AIc0laaXaSNe7|>%#_N!=~_~R^2n# z=b^siZQ>nn#R6yIZN51r}KxjgtB=}^weU%(Rp|EBR7Tw-T=glHc(Zw zRxF8+w3y>q3n}0S3K=hmYEf=%_rL0ZIvMi{CP!_3zqxY@jKAwED+gQ>d+^$xB(8SyAlJ9l&@Z#ptY$ADu@sOT| zI#?rDwCg!jkRMvLIf)>$_Y|llOBD~A-7%)2i%YSOvTR(rcV7D<-4&iXiP9Yi;jNWcV0yH#x8Pl>6tm>Vz zc@AFazggzHxn$+hW7C8$7RpIZ+iIxMBiofgx+1(Z;BdtrwZgOmZBrghYLW;zK>q9( z?zLKZYBx(fH{+C)r@Sj$6Ryg}*aL*#@JwpZ` z`41;ek``X$`fKWjF{Y8P@WpSc^XhVcuvy2gPy)=Ee1;%bv#I-W%tMZDME{q$mq+zu7u#V4;>HalSeX=yRgHYHKrS#bJ5Zjq;cWo zLX>7%fT&b=v|#p*ettTDImNqR>N=RX@RWxJ@PBGfg5q%aJXcG5*MsTTq5h<3k2iGX z`}PLyOS0P99dBrt=&3Ls=hw5a#sc5&TmCd zZvrbg&Y&sCd5Q>>>A0Ql$%&kz79*a&*GWRhUI+=$sunnvP6He-lv2@z;Mbrv(h!(r zWVQ~ryb3t&(J{B~QkiFMo&SAjo!-R${ca4kn162d|9H0l|Lz~YGB57$ZcOP4*&a@d z{;Rx~YeBXivpI=^_=y(xtd#+FuVDkfj)!q`pA$k|7PeI)C|o+Jgg4L^()?TpBbeE# z26PjLP{}vk=Dkg5xu`B$<}hN}U1xI`EW918*rPx8%3Hk8-$^t?n!Bwa|^%C2YwN(yGaY#_I|@{T;9*j8_}+T_ILMdG4YI^cV(+Y zW;PEE+m}Q3>+O+!0sb9m zgSItqYIb7JxSme6PYrj_qN&o66nIXE{CC(2=cJT@thSY zmAp8kfnW80^$PmlQVpX0pObo?P0j!?{ae|pD*AkPsc|DnezVv87`H2)PXFW%^COER z1zj6z84^hXuD0M@rBQ$*y9|`9-I~!2-=JZ|#^G5Ic1**t5~eb-&Altr0#HK()%VLj zNgt)Kmp6@TC8V5UcC|1uE>}D+ev02orMgE70Ot`Dfmfo^UJrhckK+5E?Sw96%oq4{ z9>)f6nbz+)EUb*mm)RNF1Oi?=@hD?F+YEXW1%I19iMjOy}T~R=LT* zc6iXMqS|!F>eS##wB|7(8xi$WwE`DzJ;5YuPy0F!R=Ry5&#t-AK|?)>Hd>x}=(ws=oAevdM~V51tZrrIgE?b>c|d|WUO-lJ##9#A5~%vg5c zzO5q1XnSnX3N#z-dcLwWu&kUC3<*=Oai8F>E!i3_9iLm zRrKc>t+coiUI==Wb53B?sjhPz#NDu&r)G0@NYdnVnsjQnc7|K3G{5{qm|yR{q*$l) zT@YwM4HA83L^wPD!~)KT%i|42de;XRy|ek;c>pXFYKAIa&`uTK=s|hSo|<{~&1(k9$+kmd~n$k(=f_vN{psbH)aliErWR*#KP?!7V{n=y&&}UkX7jaE(TFsuc|GkwM{i_rlc9;82e0yS2!DOp z2(;_3VcjtXSPpY@D)3I@`c1C}6dX!@96}9EV#@#`@4G|kcv?YnI!5joyCiKKPy%3h zuKO)_)duiljr2cz?dCT()a+KxKJHsF20*9r(rTQdV1Z9gd-e>JCe7aoN@?b`WAr7U zQ&S5per8LiWW?~JWz^i0hs9}bA^hwLFJGqyRanPFcx0O_!h@c654R*7QW{|KcR?a^ zb3aA>r-DS2RDqA-@tl44Nz=$Rp#C^2*SmmTi3y0npNw((a_g!GwyvwBI(ZwxvfBI} znm>`B|B6rM+rWQ-Z{`v~zC3rp_|F;n*s0)Hk}h%jR7$=p_1a%&kg@B>aI}3>BhHKZ zA358er1|SV{;jn(It0P8L{)&^nS~`1tm#6IntzU!E5vXxi8fl|qb8Bulr7u`K9VC3 zn{ist6Boj9es}mIsa^R~8vV2l1$3Ls+rUHBfL93CsBc-r8*fc=;oZ&fo36-Ip>V*) zXrcQEDl$d@eBZ|pV8>3=qPB25^ECYMcrZQV&2$asMZUD56fND&Nl{Dj{=1Eq>BUj6 zziIR-PB}`fFaA>Qs%hSv-O-ZVw7hBw3gDkJha*KnwB}_LRNaLHuve8RE#a7$FC#{H z;!$zo2wWUwu!}V@Ayx16EMd=2d-I1}`;GcN2bc{20Xvf)b3?Jrfa@MN896%iV+v}) zJZzuntf%{w?DwioiLs%6FEs&E{+)@+oL%aj98VA;Q*(5F5vT>uq`4&5vZ2Jy)*ohtvb79;&F+Se_#<+PN?RCRi61;JDN>YPL8oDRuso;l~=s*aZ&z z!#q2QCT7xhGbI-$cDKy-No8#RTZbn}?N>gH&`Bk=Frck9MZma$xPE>HtA2u#i0Uax zx4{Wv1yvy%Ym6RJLFaLOHY8Qr4xGT!W%in`kzRqUVLBoWlfN%*6t(Ql4my^=-0Umv z_+}gs%Q3F(CrhRX?~*)VUEM6iab=VAo~8uKyfJSN002PG&O~RmrnTjJlcJjtwa5>q zK5M7@3onP#%c|J;2W~KRa0#^H);!ls#w!r8Ku9urJ`D6f&mnZq4xH2&fcVO9YJ4tj z+uu7qOeA9^$P)!QN*38;+3Hu%(l0j^=i=Sp8s-*daX{Ub!WQOT%fD9FIBui6!~i{}R)?xix!pk9tVDhx3eq zD~W?Et_#Ye-*Qn`LWKz+8Tm{x&h+Oo*j!R5x@M&PdqvE!*&=E1J>}Z*%*M|;G zfFMb0DHf1K0R;q%hMOpmMm<14l3MEp0;Y0{0Ws}?fCw15--#9iCIk>D*BGb?mqs8l zkc3MhnH|yMnwcN7X02Ik=8V7i!MFDMzU+7J{l3rpJkRC|4GoJ(exh|T)=rEKwQojY9QO<k?jSkV^=VO!yuz!xyWni<8Py|m}NAvfG<7eNqvA=9gYQB=->Svg)Q;|=}_f}Z_Joy z?*O)APhqM(cyHQ5m~^K1fCA{+W`G`8F^8}9##OE_}NhO=7QA7he{32 zE*$SfP4K2T0bX5DUxM*e)NgP{2fXA`L*3D_@wG6(U#(q~qFb49LW&vs@Dfu~-jvv8 z_A>{q=q*(^}Cp~=8o<9dyp21$o^ab(KC(nXoGJi}jfp>cQ#(@9RuXV$+gc8c zzgkGyE6)Q-L-j-RrjMs}1rum~3R9`*ya3LSqk6da-QwnsWB zLt2wV@max=w0EYvA3+_p>;P)y_!2~vxk2DQEhmF|%xhIo*=1-v{8@vcc}^Ssb-Cz( zrcKv6ZdmfhGzUP$Z%7Xu%1>o3#oim!Wn0fc6P%(v&?MzN!)K1x+16peo`o)ZE-#p{ zXdY-vAG01-WifH?9@D=f@IY^KVCgRptl1sqt8_7bZr`GJ<}M5O5e_l{Z7rZ@Ue3SCvoA9UdQ^qPitjDZH#)7*0wV%YdW~5R~EJ0*MYu8hP#n6LKm;s z;3Z#~>m(3fhI8Tf+UcSeam>vilt1A|4>({pg#>dsMu$Uh7;sWSY8EdoUrbg+vB`%E zO?IYSwD#&W=e2DdM~-hjyQl>-EYW+LldXPn`%mCoi6`RM52Ej-Fdve={kWAi^Au)< zeHW)dU3&&v637^gZkC7G!Gl*81d)8-x|E$LD+gQS?WdO|Pb&7I;(_c9vhXg;UW@gi2R5 zyYj5`1e)bK={IESn^R0s#i1jjrjo8^yRYXg^GoeZnNIy!t}X-=dJ`r&i~`ZOndfn7 z7Gaq)K|@8qX7(&^J-arUsM6W83DLD-vnK>N!QN>rO4W2Gdq3En&?;6}>k&k(k@(Oa zUuISwV;v9l&0yLr-4KE-HcFgMy|7Xm2JRWAMDSYyu6_m^(1bUwGcb9C7_t^!aT4uG zx4Vg{!{I}W-J9`xAPxH@OxT*Tq4d~e zLJ9Q^+l4iC(Jyv;Ir;uJhW4HJ6q~1vKZT8^xU2bQHnK}h9Yl?P17HMf7!bxgHf{Tw zv7AzQ8ql_A(oC};hc2u{75fTTaq9(jXm8wxQ zCgHs?gF_c6f|Uwu*YdfD<-URx-j(e{xg#}_AhpB1Ixe)O8NE5&M*a{@Ctu~QpXz-v zP3~~4!*q!i_PEBg{9k+T-rqs$E(+f*=x=^COU(|#2~|B8npX=)c9%x?=^Uv{EW8`3 z*jNT&6qgVhbtbiIq{cxXhT2}0a3w69$ByqC$U0Hw0jKaSJDLmi7?F;I`ZMXsi!Y?Z zlM@o;$w%RJ(pW>Z=btbBp8|+Oi~I8ljka6psf@OH_|pFBj%gYJ{9w#t265L2amrC@ zN2KuECfj97W$p|&7;wRKfQ>?XHU5y6Q+*xgyEyYWTS&^Cqg0q$`rVF^ZU_T%2x5Yq z-*r% zQl1ObGJ0$CWhD^RTKM^(PcCx3WlW$pvxAV^Ny@BS+L8W$pBbdz zWoPP%RHMT{cICVM;2Y<|(Qe(`6krPiH(*p(hE2rcw+jnmS^>#v5o62-&N>mq5+gvx zwXm#TMN9jw4~JU1#5-b?&vRHIFzDr7qajcKme}z98epw^H=@uJ)g9f%5wytbHwZ_r zRRk{%>BY&<9qlxpLgXYNl+_3*SZAaKAtEb@$6T>WL#PigGXjZ z59a9BY!uQvDOtl>PMpHZVp4y!oFY9pYrqA6$-3aPx{TkP#$a);nii%2fYOcil zZ`1f$#Ai38P6IhLl`0$uz7H21A(TtGfv*aY&zQc0dAz26UEwzjncI;EJ3xDQxC>Z0 zkdBCNt$oEC@mJH2=?5_5y`W1&!|&=;$Nepx!ExF|-Kc_U(W`%YAa26<20J9a!vKfL#0xjYk>8OlVboD1z62 zr`Ck3F$*EF+)j-IqtEW1#k?PRn(EmBw?f=Gs^4UQN~6(6R*(S!%>6XZ^ZQR<1uMvp z+A=KIUH$~4D7);Mx5s{P_&;&VymvoBZ!bA+VXSC<(g$c7qI1dSx2^GCOl}S}c|_A- zB{s24)g`zFk7mr*9T?Q-Z9Gz)2VNW4fLuVJWURXCvdJ{|;fvg=M}SKupLD~g;ro0n zd%rGqn%i5(sgeYqud$*6cS=pqpw{PZV#DBC08!wTiBoC`nk?Zz@bFc~Y{rx+bsy3> zMcB5@=X1U8kLV{$mVFp4N@jq#MP3^MSTX2_Io+^3)S%$M=F|`hfAig;wa-s|Fs)wG z^v4O7xDV1JdVGGY1hD+dtK21y5>KD@D z7HN!(;=$-7MoW+`G^%iy1qf;}@P`40f!9m*8nea#_xO3O-6rS|4cd{~$uA2E z+X1FPm76CT$wV&Tqt>IcM0)>;tPR z#1y98+)b>rLgwk$=~P2bpuedqwvOAc^@$`H+`z5HBY)nO!ZqvLt_jP(zZaH@D@%V7 z^J^e6;wwwsvN5dWC~L;ROZpw_Ex&~Oxx8`KjS;EopWGhn%2v3{zxHl6Yj-}q#u(YU zDC$hBy_;}XLpG5cTH*dY!T!rA^*>HF_2HA>`91#MkR|?)&R6^|EY6cBUz(en>%hOz z(Yn(`lQBy~#2^}F6||Z?eXewN21|4lzo_+EICjk08BXj`SLLfy5`eR%#wg~QW(bWD zY;5e{1K@SJB~4{_U@RszG^_z0KEC~z%8yP@#{d_^Za_!t!I;{rP1dyCS64I z>Qz@|ezj_Hgtuz&b)~BxIwXX6I6%L27%IDUtJq0I{JK}2nQ7xmN4|XworqcgJ!ALk zb}?ppa@{$%xBmg}l;!#6{@^d~gJ<$r7y3^Hz90Q;`r+~a=fBJk2lr~PTldLPSLd(1 rKLo^wrSf4{!2kDy;ItH0eoKvDHi~KcL)B2tQQ-Ow()rQhGe7(rPve8y literal 0 HcmV?d00001 diff --git a/source/images/h_gebruiker_uitnodigen_2.png b/source/images/h_gebruiker_uitnodigen_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a2dd6f9aeadb471f337f8b80b2c72fd7473e56c2 GIT binary patch literal 76366 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≶QyrEZ#;0X$(V{JyGC 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%0DTCU&I8waNiJ62CGOu{PlQ zW%3hua%sKSWg`=#T53^0mF0T0N5n}?seuLK5%J-IHQ#|kOJ?I!HAd~``|Z^S1ySkX z1zc26(}$lznSBn~Z&!$NfgB3UXw+cPHFh={zP-^PcqrFpGmT#lC+`ybD)>mLLE%^I zgKEG0ZXH67siK0IJ@SG07?O5qj7UiEywhcYx#9o2dgytRd^5;XIQn%`UWA{Y8^@OwI*pnuO$ z;ofG8bJTewGBU^QPIk#9sTq%%tXFxJJ7QkO%)ZIU0%rV}X6TApZvvMIm|MdLo*e=v z+(u^*sF1eWvi0*@U%$3l50B({U4l6PRu&sWxjm$(Wr17U|Dg4|SF=Oxo)*a)X&tt= zjF_uib_*bUsvng-9|-$8h%sKTu;gjg2Z0x(#~%){zt}RDAXQI#WsX08s|;=hiwn3J zXzEn994P`3x0WoK?V+>PFXZA>HL3R@!t>tnT)(bocg*Gu#l>DSyWZ!uVaBvJ1L77O zFDoDG@A$aYQep*J^kuYGI2fu$4EeLCTn&QFw0eTcA+!kAbDHu znoD|fLlF*E3iw$nY9J*1!=Q&lJ-aB7zlhtI&@Y&8g`kufqjyT=ubKgl6lq@xROiQb8pItd%&NAt-i`04&DW0HY%BO`;3mrvE0RB0>Mc;8G6Em6hfls#^x zCu}~~EByT~!U_x_+#JHmZhy(bP`x=a+jtBsA?Sgm51l4#GBA?m;}?2uQs)0mXrx%7 znJ3E+Qa76GN1dNz!nd702mwaJf0bH_1Zo+VM>$c!I74iyG7FC31+v|LCOgs!RSi#$ zm3dLOi#1e5Ft<1)hm|m2AydA#;8uaZLf2u`le!ZBT3cb$o1-dP`mb8sg(NiUg)UD{ zShl>3v~+Ktj;L))GL}4iEx0$xK2c|xrHuru)-5&>B4ZxRme`~|E?0>Qnp@iqoGs;k zea!x+=b#z)1V;}e1D(zrJYSJ=@io_sYTfYJhkA%4G)1Nrrs%jo_k+_Dz}r6YDA`~m zPG89ktC4;f(t+YJK#LpQ0mX{lCm`FWuO&p#q09x``pLWl0d_Zf5}SxB)_ucSyMLa7 zi&i!%4x^C;-Z&rn3m2V1khjD`eRqE}A^CWpo0FT1F1>2K1&^4J3BARB1kXI=e4=>! zEctA9YaKy$YLHwr%w~W#KTU8YA*}jHXrgM_!_s+akcE}IgjYoCv{#}xn*zdTw&vxitbzKmye39|Sj;R9 z(o@|O%|-;4{?KJ*tD{g(U4Ox9xt*d zd{)AfKTltnP6%Vfr1sMc9kfw53tbjLV5X$1DB9CgLZHoHnQk_IgoLg(&Y?d<F)%YIe- zI?Z(`eJ!y7TD*BykW4XV_!aTWPKuqxtQ&ptb(~)c(YU`zb0~{ z78!h45;G;iU(-ylk7hT-ffHi%LY$Ktc$)1u2EQcCXL%GGt@X@jV_uk^a31_AfX&v& zPzw+N(rz%^axS@M(3IcYx-pFmg|gkdXC8@!QL933Mv8m)lg#6X1i{(waJuut$P)3SnF^=x5~mtjummTjC>I z9gT#sFh)_+VpGEm;6!-9`8I~i!eEA%^-4T@YT_%@<_y}_`!Hvo?fz{FnRi5Yx65F^ zpZL53^}h9<;^%g8`Wvb8`o*`?^VCk(KfkB(AP~Xt<1}dsHy3KHC2uA*tv-=7);hcBvqApGAKS_ds=K*lDWG4a+tCmvs;5oN@*tc~1$PWF#qcU0vJ@b%>C5n^)Dj4kp%ASKppVyDek-%6v2dqGAk=`P{7T8wL~!%w zw9h+UBfE4Q+x`PR$UlDethimlvdUWr)x>zmzAVGLZsl15gWA1!lG3@HRz()OnG;Si zEtQQWUe1@dly$omsM_-!6P?kr?%rr*x2JAjyzO(tlKJ&TW!rGJ`|2xbC1Vn&i?^^* zTk@BgQ)mxa2a}g8G|1Ga_kxEBa=JZyED-S3=N)ekDWvdU9O2_pt?pHZBx;diwdwuP z^%OfQ)jLYa{N&#>tZL-f$5}X!oEoNX2tK+GFG!3mBS_OEj!nXor)qaHl+3XMtt7X3 zB-H}{%O|QMb+9NUKEWHW)UhxuWB)i&Ip$Vxd`zdV0}wd|cgqLPBLV}IuDnxAqD#pI zt)z9emafhE&ZATz1LuMUou_9$n!c?VzO0C|Sww?g7| zhYbw*kET~VR@VR6t5>Gv{qGuiJ3VWP;hnT^Sj>$gZ&w#!Q!ce<;>Z_KIfQ3S_OgR|DjT{ur8KTi2kUwiiVaejT%G5 zd7f}`&8@tOL*03kKg=eT6rQ}O)%c-jx@} z;cG6g3O@RG_(FCW;=6B~hPZmQrf+{x1GkrBz(2y(kjk(%B;%j}vcg*aBXL`;P(kmt zJYx8(BY;iP*e>3U4Yu9DU5uuV8x>_z*gu+iR+FbY6;$S&2A>V^EwSPAaLOU_@A|(^ z-94*4b;il`Y8a^(#_I6WZFL7=3y~EnB0)KVL#lBRk2Jfligo2L8p5cA3 zP4D)lhJiMJxad(8HJBWrzgA&Kp6=6bhYGcnFrSWF&ycNXm4>_o-A4REyGJ%Cn`O0h zW?PUOklfllEG`E;m3~WIyb?Zksm-T5*X<##DYk(OT`}DpNq^b5PsQ-f0zXf!clw4^ z3A@JDV(YCg;gGnhQlemkm@=ibxt{MXpRYLFy`D^yzHD@)rxoX*6y=HL(5(cs8_ZXa zWOw<0iN9@>56TH(BqpY!l#Ok^A~rR_Pc%RqXG2N3`-V;5_ubEWrH!1O)=sGb!N<c9%zb9dnWZgF&^hH=3$I-4Y)Q=I3wP=6&EZQuZh_3~Q zj5(j+(2<7Qocc}$vAaE*;@MuJ?UewsC*i z6Q@Ogy^`7qS`@e9k zJzxp>H}y%&h)>kzaYJgV#QLalYpY=08b2iNFW-N%K*SKqa{ShxSXRRruZv*o3%xzQB^swpc2%|*d)Nbhx zji?dF;Jv^Cf06{JG~XzG*RJ6Q_343|&8CeLVr_WihJ%mqwLhw-g>M2|ry_=wz0Yrr zPVCklE~&@dE3Q!pl4^Rcwl&R;IeqE+S?^}Mz_SLh68$%(xT@jAUu?PX+IhP{>s#~O-f~m|#c>C8)81sN+v(hgjy<_p&Auz;kti^EBYR^-1y?Eg z;<@1qM(f(35vCd7EN*8ceEwY8iPisTRc5*shEss1{}Rua(Cv6A*dnj^5AML;XT=|Z zKiAwLZCIy_9ng7ZZ7;w*ie1aQAptbr{{P!>Z*OFIoqFq87})iE`gJ}le1c0nG!IOt z`c!4(xO4C4&#tz$lD)1)*%^Q#&NNfs(q9w$4OuA$lpj2RZYS-kfk^Jz@4J0ao1HXrOj_?mq&>)6(}Zy(73EeE#n7yk;Y%>DnmBmU#n%^pZHS3Q^# z0dDd{KH92~Yp$TGHN7a;&pWj}+<+4;g+bdkCN%;GdgVBIx%laYhSw)dkLoo0zmXU6 zVI3|)cYwa)I58@*PX@BIT>MWT_im_6w76bH)>k#v5QcWV<4#V2pP)R!S=yJ7Du=QW zkd?>HloU0Jva9TO1>~V#HQ)CI)E5wTpAk~!u%u)frtHXJMda&O>qUp@!^5%ojYXG? zbdGY|wer3vs>7utA#DnRo*a2l@a0q;V5*%*Q*=~P3|^E24=ZveAS1ocK1je3@zO0# zq)yZ$OU9}Mh@w-+#}b-7!Job3^p9Uo&RH6)t`U1_)<4wKW7DcqpU@gG(#rT08tc|C zR669sXo%T|pCN@VeAtMT6El0s5zajuno0w81~VGVw06xXy>s`a*HK#e1y`-CZ0SL` z>y7X z8a*#tev$WdH?zz*EM*K$I3iBei-XBD2RA!bG8gk_tziQxK}WLQ^ea4(QK*#yV0yn2fmG@M(MlzI z%&b%^cev0-=}^&dd~WpIQ*TK0dmaIWhD` zN|#D2Nl6ft9PKx9z}zj@SZ=B9#nL;x%@^ccisG)uN0wiI!^tb}OrkH!F)UXqOjiE1 zWL7W=_On#6j*eqd0y48S)BZ_fJ~p7j)e7W8HCdUU84(u`drTT_ZWlpaafG z++KZbazikU=OUtpKs{TtZlPR9?ZW1{i)d;Ul34d_nza})qY%1wN1RwSUvap6O-GeB zSK6@Ef+FgfKj(V{te8yK=}&CI*k)_BgybSCQyue4f*y6`M7qi5^9JEOGTWoO)Pj1Q zG>}(T1Y35cXYtD(PRS&?nwMmu6mJ}n31T==XT15x@T}B6sd>zgZ^=z4TwrSJbm|Zr zu1>s3EKpM2>=+L1d#r*cIjW{;+luaecBD1!8@L$WhKOLUXjwKn4CZpq%4_jMMX++iDjFx?VC1*N{nXs}KBfIs$BS8ze11nC90zIQw$f+;Z`CpFy+H!|zv8afqXWKu4 zd3)1?r4AOss;rJhZd`6GqHU{7r#~489N#VtQ@s1ot{UNh^W_ijNjC|k47HBh2e=MPGC59oQN8q!nC5o1zOH;t+3dQ+i%D{P28Jary(4_sceBuwgA&K&Fr~{9( zjyd4o4oiz^{WwY;ix06@oX6LnR;BuF7*N>mgwu(p_$4=qJt2XxH)5> zwk4{Sz2%WKIv(0b5y|sX7i8!hutfVTA?v|;d;N`Z5D`|S;qrx5pQha;nOyGBsJ$oK z`p!~;TxXF=#*h#74)}4@Jo@)l?QDtj-pM6N&q?|*`WG`aMJmrmXwf;fqRohT*89ptp%cfXCh9bQY)i`ohGy{shyy~8Sn;v*X?D%8) zt!!t<*MMUDT2Gg*qjkS82+)ID1v)CVO)=*=$K*2h`UV*0INeFAHvP(e zvR_TS^9Pp5$Q~KGHT95-1B);}zJ7qRG`Cvrg>|4oo4%eaA5-*NNbcNTrUT$SY64c$ z#ms(g!{UZ+R=PqbYPlu)!Kp}5*r zF3VUluw$g9=iCWOpMhTpLI-xNP+F)sxnko6(O3E2xPhV9Tw%j3*11@=NUi4LW?M5X zMWP3Hs&zRH*6}n-D#Lp|$N-ZfbH?V#P^&5;ma=UV7;I^!bx{i)7?ikCcl;cJ2hwS6 z9_UU~+I9C~**XvJ&|{p;NeD&GtW6d%|ElE^zd{lZFz^EM&`kB4iA(}BLdG|o1D%*q zP0(7`BGvMHH$gPLt@H)C#H|QYYdtiCGzBOaRcL`+&*MI+GHL(Z`a>3GRjmupH@2D@ zTYd9m#uP%QOCZD(DyZ37JEdCt4EI6hFTca@+zs6EM@1%IJ8dWK4Hl~|fZ#>6#t8aU z=qD)bA|s>dfb{kzH8cupCQ?fwvIPd#d+t7b#lNTu0nX&Kl8&hQMdhOHao{+-O6fet z8Z%g1d2bm2RuL(+IxDR_c;mkBw5eWU(>jHFBSV>4$1vb9w@{0R%cv*4_Wm6FnkRxet+)MJmx!hU8<0KpzYS9UU95k1b9&H( z#lolA3Z1IHI|cp`fHNy(+fWKrFmcxR?04NR|4Fg!V8~*O++~gIlDyMz8&9xI3!=9} z39)gQ@g8x)U2~Ks6$njp6t91DrU%8|HZU+4EKa%|6qKAqOAHJG&`W9R0CiTu&aThK zZAWjs+vOVi;;k>Ul7E3SC8ulqH-z~M$Xr0*;t_lbB(qZ1j6JNf+#>b9b)TF0^44~L zaC5}GEH2CI^dS9K%-`36F;a_*i_69%pIXcA|29&3Y;`4dWct@{5v@WDvS`{va9N_^ zZ#!I-t~d2-IP|UKUuBs3DKlW+*Pi|FgWW5;0`enn2G#P^lQpt)FYd(8w^^q@dPfLA z69sy{DH_=i>34Q+;cnz2%9!D(W7p^I7I5s};KUj8dXb9i$?W1gl@+xIf><9m_5#k6 zB{13oal_qC!&+A7{xq3VXAzMwoL5$N+{*k&E+&-ON&INcI9a?P&Gjz6oO|F6BOzc8 zzRbG0JgG7DMxyhWi?^IHBNW!?tQ~_}W;hDte8$~=##3%2wUi2rlt*XTy@wy%QYVD(>0~_#_ii8?NguLzTs8$4+#BxiSAwu;;TM6 zaz3d8EZU+*15EbBSR8A+J;v39?>wS_si`fO>7WNll%~W-Hs-t+31= zZAL71FN{X16PAoGcILR}u)knz;cn~)S9puI7g2BHF8cbOcXZC?km;P%CyubRbnB)F z_tx6*++&;^tw55AzSqLb3s$aT;FWp5Wge#{bUw1-c-vCF&r@rj z|4>a=#<)i3Vt=vg1>D$MO&?*{~laKeywhockqFC zbmNeXJxWTU>3uU=OzU#N@gXT?v%1okx0 z?|V8jxJlz;hKg6!uFooxN+zd*achHNlJ92m($bF;M`EKqBgZl(Jk;Z@()kNSCXpcu zT)@%OLkA*6TJ`S`KSF{YE7uQORN+_UxM{kH*r7#HYur_(m>FRx!O&RN5Dlqn4bvL+ zEt6lG)Ss%&^ZSe_70IB9I&?z&?!weU+X&r4B>&@VHptA>-fZjR%ojgl21!gyUf~w1 zNvKM=@t5gTO^CT2Ac{$YwnG}fKNANSF5`vm6-$MSq8R!p_bDza+OeRJ$V(1N1J^bXe!*jxwD3w*Y;7817^!D0xZu5Md^PpQq-i`SO2hJGYs?@%A-AE#VNv`+7TzA&8 zE&k-lrh3J#g;fp@g)%4d6h()?n`61$C%T9?IjvkgD8mt!p8m<{xEwtQJ06Sq)7+>q zI`9g*@E)&95v>$@4(vXOS#t`Z295KjlvCT`eyhxvkOef2JyJARlL&#%XtwmK<*$> z%q&U3+qlwbUwQ?$y0P{E@_8U9pG6lh3r4)@h&65Gn@A! z(YL?!H3vEdwn9pma4|3GHN&B_us+FT{@nD5Ps6JrROR}@S?|#lou*3_*Ui_xn-_lu znQi_Rjo45m=m8LL5~Za4DDf7@)rU&}9C>Z3Kd@7#p$R)rI!yBJ`UxA9=<}m^{^bZi z6Ec6yYI(!ST87DGsvn$EyO^E~_TGLp8$4Cp{lzkwUHgRlT!Tzbf;TfnTwVQvx^?g3 zfFR6p5;qawP&!0BKF`xuebO-Bnh-jV=M=?Oj8NYP6qd8iUk7BoO+Nk7_v0^dB9QRP z<#X&+GrMX#5TIC+j)~EbLGCegWhGgVD_*2^ce8|z0vTpm0QfPRXMWUZWb@_52N#DY z(onpgQVVBs%6b22w&&4wLH9V9u8B(74T^|YN?4^byWzU&h)DXKrs9tgbQtDNi&4;p zg*vh`qB-%4dP;! zAl7MYX(4OqwW{{}?NjQ*fj3Rp>iXW4mDw5?8C?WO;1zqhp!q%fvJU>>w zl&T0iBJAVz&Wu84XPT!2382qe$L+eF>XjUP13qU{(|b{o&@^AAsJi`CoOIx&4(NfT zqFznuu0o5Lu?>FavbG0#-kDJoJNH`iYBY_m~y! z!?<{fGJs9EEq~_sYOlxNdzj_5w2A1xod-#_I<3*+Y%_$Uj#$C@1gSWFfga%zR_TXB zGcDL*z6`e~2R-FpyN&yE_itp|>yp^C42$JU-GQ;IK)S|W*Xq+BbpXfZb0Bb+87inP z^TFl47_nMvjsWRz2yGZo`j%bwP@Ui3Q;MnSdFM2`2$0<`lWTOL>t$qFB~x;S5Oe(- zb$RW~p5X;2Wabrf%WuKa?=s)Q9D{!~O8;d8v47bBKq3EH2mg(1@E4HOelYWIXx6`* z{rKh^=DlX|zco6WJv6lM@s4)smY;cJ!pkk|T_^qqgwdOu`?;J%%R>*qhuyMfe0Oxc zhZe$*<=n;Q%r1=oe-a%2uh)wH>n5sDj_T9T%PY>P`FjlX#7SFXrw8xJ7)jSVYllG) zyLO3M<>mWnF@<2Js3kWK!^UgXF8F-wKG6HtHv8yE|6Cs$lDD(7 zb82TFP0>2~4g4yv-S9v)l7IWAIGsLx_;7NW-}}G8_j4cvL8HC$+tWQ}SBcZ60xZGH zXaCYN|GVnBhkHzUEgJubt^+Lff~6^+F>h$Y%31D5DD^o6SXJF=c9DYH`x;i7!YUDF z|7$o1H~hZ~@e#D*kGi;3AWG$pqQ{dIWt}`m0DR4z%yj7VfZ?uZ0ZWu|)mHn^d{uLB z5MHqExA%(Q?mhcX6e~v#9dUN^dr?ydHL$LF{6t2*6Zju;RPQ+GK4mk5;Kr$}<)_2^ zz9Qj4X^W-1S0u#3O*S`=gIJR+<(FHhnYRW%b!QH%>tC^FNI}y#fGI_jZeSUU%`j9uL zd+)S_-^yhAJD|&glX<-XXpfkgL{Z#J=3$HIkj8#)c-{^3l7eE7u3d-3#LRZ@eBvHT zI7E7zUIKh&ZO}tk3beiCny@)VdWI!Aez)tNPM`KYcPp)odQkS--Z1)FkriU%^Lgns zD0aA5>kd+BE8*=6=aT>{XI8x3!ps7FM&DZh_6@c9Yi&jmY?>i!g$YjArya9{^m12oBr*yAF2HtefFO!&A&f)+OO+*Sef8<2CF~sUA}tt4TF66 zVvN4Pxm5JJl;U7EP6A@?yD`l?`t73>*d4^C2cNqp0L;T&M32apRe147keI9`(T=wAtQCw3FX=UV8|KY7gzy zNmPsZ<&fQbe^3Zy*cOsnq%aca;##uae>eh|OY4jqX=v=bTX7a8*shhH6>&4;|D)Jn zwi+lf)4!N1?|50wCOs(P)^ZdBQ6H^UuV5Y-=uqF`+)hp_+?Zb;>#iS-^jN5FmkRxQPrUQhBbCDl{(72(PQ%L|o4YRqhrn%C zFrL-6(dLkNNXBFHjCnJ0x+DfMqF$JwlMdSKme*S**Zk$~9q)H3exrhh#sk3)oIYWTBrl>j?<6Skni5B3cNfI~ywiHd#9J4zrfoU9 zmspf6q1#;S`2ec`N{9zC5DmF(SfaVn(2WN*20p_;c?v3Ft=t*_z63ea)j7aEcO&Pf z%{eJWg1MU8fq}_RLRJd8tqJlXqg%K$jxvu=vC-j2(jIaUR385uy|KQ>d7^O{a_dgqF)a0VeX3^2kN%+=O{?WtSR3$ z_Hyi01j!c@5Bd^^Q{TPEN+uDvnV##-Y*}9>=@K9<)QM&Vfz^Z}Jjf1A09n zSyRg+SP#Nkqsjj96xMo(C*(aHf)Xp=K(ed2MF|4m_nDLq%?FPzIdvg4`D&It>?XZ5B&*tc%#q~I$V&c|38NGQ?HT7+iF) zNNCN{#6n4N%RCREa@5GmnT4A6!QM&_>O>4Qf}~yF@d&g%9tMpyJ=G6!8)T zF`*ao^?mg6C-s!p`WT#hm+o_w=&$#V=EKkgS-;r|zoHQt2MawQV;_G|5Z(+FZ9bP) zIQ?rR?M_LzKUJMyy=aScD6=aFP;((AjZ;H#momik2zn6Zt8^ zEAcl-?!8&N!Xh)sJ$y+l96n;Y7aM_uHUzJhK77sROP<)`R`myLx*}fWo_DonYY+L~ z_K0E+_?FRP{H}n;C5lojjYg|~#JJIU0Kt~wOq|m{waY;|yPnwNR6l=RVi2ILC^QQ3_)f$= z(c~#C!OIf2d!rnZp@FD+%oXJFnztYuIk8e?VPeI9^1!E@Hcz`bPxi@>hRS7ck2ksh z!ny8=9O0zXgJd5mH&FYj7?P9+;ShC19-t7z&|cmwIE0mbR#XR5R;5E5e+xxO4Z*Wt z@8L~=woTWE5hX{5uxpmXb?ddcs0jP>(7enWNJA_Tr#;54(;&q+kTnX+U)vt|vI?Sf zZ2h5AFI>_AEySoWZn5#`h)U$pP3}4!CiiL`a3E@#V0rwkZS~n25$d1o2 z#o1m4m7^>f;z7d}P;#+|;?T;8eGj}(oE!Uk1VvP>63{QB z#%t9Px{I5X^VYSqP5TN+yh5wTJzW>)c~Cqe_rER{TWfDohz1q_10n?Gm3b z27wHP(c=!xySPY=57Vr`wv|pA-$awy>2TtMFXUo+Z0&9P(YLlvjuL#JgvF>2@^O}e zH!r!}<&kaJA*mgh6`-Ecn`co1=%1SDqnuv#i2(c-g3a>DZrG^kn~=tDh3Y9+Q>&&1 z_v2#MANO)n%YJC%`h7AOo^0}~T)!XhKs)+iCU(BkrN7SqF>IDgRMpMXfi;ZR9cE!a z9{=QKj^ukoF$2k0kR;_NJ1Zjn)?+>(bDr2!Z7NtunHUpS)mF_F_^$Nbw^$^&c!T?Y zj$+e}^=u4=qDku<%QNHGjrvRR5SlAavMJXPS2(<}`cmG==T_+Gn1Vj`$J`>b)w?G1)NI-MwlZEKVn=7XVWZnR zGGenT=qj$w2E%`y zE7^ZChF`d)7il_EYkg*`qmAEPv*$FwUWK3A&P;m>lclp(q(EEqfYPq|7=@VabK>Lu z$+MrprcFP-=BtK!qDKeg5Ej7#o`7(htSyeolQI2xE&Y$}hp57<3-D%yl|qKa`mOv; z0jg7c%K(g2+7(+l;QZu)72GE@*hYy@j*jcj@p;b7%0v1T9cT{1`)NP7@>&Q;u^Y?~ z38q7>Gv~5s%Y~Dc5h5X~*(WF^Z#?D|jL}MfM#Zk>wW@~g`E0Ax`0E(3F(*=j|K80 z0RW+(jo)6_-PdAPlI3qPy^zk`aC$KDfh1C50Q)#O#9V!B9@A?S11Zb|j=PN_Uy#!u z6F;ykz+h*I&zhaUN#&f?tvcMl*$mpUR^ku0`{FRv6SgcAEMWy1I-MJk1z~#}>RJ0I zH=e+GxgB?Ba6s)Al=L4#@WY=-c9{}3R_(`{sn1>Z1Oqh;h6w)E2i&2Kv4=|4x%L+r=tCVFsV zsKv@i3Yu>NQWaN?xT>_ii6YpG$D4U8nrXF0E&%zu4dF^V9OKWHO;H*8c-{-wh_?^n zu)a4L+qV~R^HNhZJ{2-sxRV)Rw75;;FzZ?QDtO_r^aR7$^Dx77c4nsW8ZS)K?57<# z{8(v80|w2kN4m)`51w6lBWnnDNsrI3U(BV`f9@6jKWacEuA~p<)feA(pfOD`*9)Tr zvMy~>H6M?rT+o(4O z0N%tRCMH|x;Jdalr04Rzg*#xi)qQ;)=kR-<)3O%#BwP3jhv8yxkJM_qxCJXOH zO^Tm$7`TxPJS(UCfF3wQ|D7rv;E!qx+*LHe?QzPg0J)8uUFD&b_5Cle&Qo>069sD% zm`FAabE3#3)CXXf2)}Dq9^6TV2%jIUJOR^qz#NTYczr)eHlk}edq6SEPiLo?QKJzq zXbQA`)F^gs?z+`!TsAntR3(0?%@u}Q^8uWUwk>k1(ULa;-vL?j#=#@~aYlafJ!hIa z4%l`aM+O~0Y^`cwQL43=&-5>Q6oXE!xhjOOn9f(!_FN|Jlu=2$H)lXgq_AoiQy=p= zc+d{*0|e!fdQ%U7Q;^rcAO)!ZS>Ca;LpL8OC%>eB@y)Q5rGP~7`;+utr;Px3KJ})r zZeOlt?CN8{XpI9eEy`~oIcJkNa^QHqSl*)7AH7-Q(Hl$S+>dG*9XqetLBd*NDq5Di zoH81_Pm?;bJc8YVP2+YJ?&mR#Y>+wBX)@?s{*lw|bN1%!Ykz!-EwyWG0Z8FamAHld z0DHD}`4x67JZ6WMF{FCxj{$+;>&@kbTcu>C)z-`#C%nb&lzl@AvHH=h#vWHD@@5ne zC8q$J?``Q#pzwI+vKh1*u{B$g;{S0Tg-=*r7_QYS7zSSRq5_u3emdOe2hK3-wi1BX^#H1Uhs!*a8f0%q?R(RBlf zsT__sZl4(G5AoNZsyIt#p@5Lxx_07_i>F?aq@uF{tgxUJ!IvdJ(09eJez64*@RU_8 zEO_uIiYsKNL`_{1J1jDQc+~ER2o5x$SDsJl3^BQZ2=bKDSDPpk8gXJ1?#~YXsvm+jzK1u`8w~*B9r)0R*RR zapTi*{@vYDw*t=YxpYe4sj?uQ0wRgOu=B2cgFAV`+M?awbKgw31z`+7`GuBC@; z&%DWyHEeQ&}|8wO+fI`akQ{qAqN1ogVTh2kmL!f>2U24N;0g)o1l++`GGWCj;4J!OgSh z0wAYD#zKk8*1rImnFT3p&4F?t$YbDzVx+M0T)#8qR;-&^%VN`f*4w^YFUju1TR7D&G?GZs`&d$)EZF&?$6#@Q=kpp5mrUbc(XT~%y)p7U+{18;r1`vd!*SjD=O+~J) z@l+mkGhVyjh&YtgnRN8)bU(nzs3c524Fl?g#bhh^qLugkztAo0Qfi?)=RwPU5uzFl z)H4ApMkjE@D7GirDfTy5h4jY_4oyE;i_sg%5+Qh&T-xVX)}}zOZWu7fCyAqB5bb<_ zD`;wGXXk9*kpO2XJPmrD{b{zyc+_*`AW)tTl!u^wiJfbSjjw*J2Hw#{UOD=C@BGI#fJz*626k%37iZ;8cP1_VfNdny99x+xIP?{tcu|7OBE zpVT7j;w31FW*d^90cOalui50n5~J?yY%A+Op>7^XlJ$FS{lLIDr^)!Mjc@V;$n3Y- z;QgYQulOloWr!^aC(k&_3I9g`tO8U0=Asrgwap>6DVrQOH3!^!Hmz$o_q+?Hl*_Y} zH^QyYi)r%Ym|UAr&UtO>wahZH`R1F(#v5%^8~^|S0NN^ZX5ObZZ|PHveq4){MR+Z1 zYU`mkYif(y+S+rnwsyqpqhruhug_VqP4#eF54BU5Cryg3-MYnEYpxNitg>>fu>1t<83Yj5uK;n@jN5yNey%sON_)Vww#)`X%4w{x!v5jy=_{-Bz$Md5` zm8A>Esy%wderv87i*)TeUBGRt=>~u*!)&o!?x()5$?r~%|K9t2yguZue6%QQX^w+! zs)yDzEx=9-xKr0#EVrD`jf*b7Ha>sEA>|qX06^!HnQB5U)c)y-C*tMNqs!8T>jO(J z8He=kJJ;d1zHQ6-)aBYVY0{Lq?~Z3;#IU!^l9|m_uuU_D)Lfq$V6#bbSyrsiux)Cs zY<4cZ?3y_G$d8t50001;OFeV_@$tvwxrJO)JEPT>TB-=QUAlB>Q@CyIv8iD;pWD1p jyxt78uMe4Bh>!SxLH1&Oe(`3&00000NkvXXu0mjf(}w}I literal 0 HcmV?d00001 diff --git a/source/images/h_rechten_beheren_1.png b/source/images/h_rechten_beheren_1.png new file mode 100644 index 0000000000000000000000000000000000000000..bd2b3555fa662c34cda0f0180d698bde94a58871 GIT binary patch literal 77347 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 literal 0 HcmV?d00001 diff --git a/source/images/h_rechten_beheren_2.png b/source/images/h_rechten_beheren_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fb8fed51cf7b243a33c0875df49d7f923131863e GIT binary patch literal 8368 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 literal 0 HcmV?d00001 diff --git a/source/index.rst b/source/index.rst index a74fea7..9afaae4 100644 --- a/source/index.rst +++ b/source/index.rst @@ -12,6 +12,7 @@ Welcome to the Lizard documentation! a_user_interfaces a_tutorials + a_geoblocks .. toctree:: :maxdepth: 1 diff --git a/source/old_files/a_homepage.rst b/source/old_files/a_homepage.rst deleted file mode 100644 index 5e42a95..0000000 --- a/source/old_files/a_homepage.rst +++ /dev/null @@ -1,28 +0,0 @@ -========== -Homepage -========== - -The Homepage ensures easy access to functionalities for all users. -You can access the Lizard Homepage via the following url “www.{your_organisation}.lizard.net”. -This base url will also be referred to as 'Portal'. -Lizard works best in Chrome. No additional software is needed. - -for example: -https://demo.lizard.net/ - - -.. image:: /images/a_homepage.jpg - -From the Homepage, you can link to the Lizard functionality you are interested in. - - -* **Catalogue**: Search for your data. -* **Viewer**: Explore your data. -* **Management**: Manage your data, users, alarms and GeoBlocks. -* **API**: Query your data. - - -From the homepage you have easy access to the support team and the documentation. - - - diff --git a/source/old_files/a_lizard.rst b/source/old_files/a_lizard.rst deleted file mode 100644 index a7dcf52..0000000 --- a/source/old_files/a_lizard.rst +++ /dev/null @@ -1,17 +0,0 @@ -============ -Introduction -============ - -Lizard is a data and analytics platform, optimised for the physical environment. -We enable you to unlock the potential of your data and allow you to integrate and combine data from different sources and domains. -Explore your data with plug-and-play applications. -Or connect your favourite data science tools with our API. - -The documentation has detailed descriptions of individual components of every aspect of Lizard. -Feel free to move through every section in sequence by using the next functionality at the bottom of every page, or dive straight to the item of interest with the use of the left pane. - -To get familiar with the Catalogue or Viewer, use one of the following tutorials: -1. `Catalogue Tutorial ` -2. `Viewer Tutorial ` - -Tutorials in regards to the Lizard API usage can be found in the `API Tutorials section ` \ No newline at end of file diff --git a/source/old_files/a_releasenotes.rst b/source/old_files/a_releasenotes.rst deleted file mode 100644 index 99e453c..0000000 --- a/source/old_files/a_releasenotes.rst +++ /dev/null @@ -1,241 +0,0 @@ -.. raw:: html - - - -.. role:: blue - -============= -Release Notes -============= - - -January 12th 2024 -================= -Lizard backend updates: - -* Cloud-based import and export tasks (downloads come from Amazon S3 now) - -* Add pixel_size option to raster export in API - -* Set aggregation_type for scenario raster results, so that the Viewer shows statistics for polygon selections - -Lizard Viewer: - -* Enable raster export again and use pixel_size option - -* Show web notification when a raster export has finished - - -October 10th 2023 -================= -New viewer released: - -* Documentation for the new viewer: :doc:`e_viewer` - - -May 2nd 2023 -============ -New features in API v4: - -* Added spatial information to scenarios (based on raster results) - -* Extended raster '/data' sub-endpoint with option to retrieve data based on a polygon geometry and output format JSON - -Bug fixes: - -* Fixed resampling issue for requests on '/zonal' raster sub-endpoint with small polygons compared to raster pixelsize, no longer returning nulls - - -February 28th 2023 -================== -New features: - -* Raster alarms on Line and Polygon intersections - -* Vectortiles for assets, per assetset (combination of organisation and asset type) - -Other improvements: - -* Adjustments of the notification email for finished 3Di postprocessing - -* API v4 improvements: - - * Added upper_bounds (in combination with origin specifies spatial bounds in original projection) for rasters and raster sources - - * Extended API v4 with Favourites and Search endpoints - - * Add object information (of related asset) to locations listview in API v4 - - -July 26th 2022 -============== -This Lizard release contains a number of small but important bug fixes: - -* Lock raster source when deleting data, so that simultaneous imports do not fail - -* Reset metadata of raster source and layer when all data is deleted - -* Validation of alarm thresholds forcing unique input for values and warning levels - -* Improve error handling for raster zonal endpoint in case of too large request - - - -June 14th 2022 -============== - -* API v4 changes: - - * Enable POST on /scenarios endpoint - - * Enable PATCH and POST on /scenarios/{uuid}/results endpoint - -* Create Scenarios and attach raster results in Lizard Management - -* Add support for `info_format=application/geo+json` in GetFeatureInfo requests on Lizard WMS service - -* Allow nesting templated GeoBlocks in new GeoBlocks Rasters - -* Bugfix for timeseries percentiles endpoint: Using start and end parameters no longer results in a 404 error - - - -May 11th 2022 -============= - -* API v4 changes: - - * Introduction of Projects datamodel, to group Scenarios - - * Update of Scenarios metadata model: - - * Added fields `description` and `extra_metadata` - - * Field names changed (`simulation_start`, `simulation_end`, `simulation_identifier` and `model_identifier`) - - * Duplicate field `username` removed (information already available in `supplier` field) - -* Scenario Catalogue and Scenario Management updated based on added/changed features in API - -* Fix GetCapabilities request for WMS of templated GeoBlocks rasters - - - -March 11th 2022 -=============== - -* API v4 additions: - - * Labeltypes endpoint, including Labels and Label Parameters as subendpoint - - * Eventseries endpoint, including Events subendpoint - -* Specified error message when exporting more than 1 billion pixels in one raster export - - - -January 18th 2022 -=================== - -* Improvements in API v4: - - - - * Drop by-organisation subendpoint for most assets and enable pagination on the main endpoint, which means less restrictions in retrieving asset data - - * Make boundary filtering parameters (`boundary__type`, `boundary__name`, `boundary__id`) consistent with other related field filters, i.e. with double underscores (backwards compatible for single underscores) - - * Add filtering on `last_modified`, `created` and `access_modifier` fields in endpoints - - * Add filtering on `start` and `end` fields for timeseries - - * Add filtering on `timeseries__start` and `timeseries__end` for locations - - - -* Update of PostGIS, improving the performance of spatial filteirng in the API -* Add `application/json` option for WMS GetLegendGraphic requests, according to Geoserver specifications -* Limit task that relates locations to assets to only apply to unrelated locations, to improve performance -* Add button in Geoblocks management to open an item in the Lizard Viewer -* Bugfix for number input fields in Lizard Management (on-the-fly validation of decimal number input) -* Various other bugfixes in Lizard Management - - - - -August 2021 Release -===================== -We’re happy to announce the release of Lizard Homepage. - -Important changes -------------------- - -* Lizard Homepage -* Datasets will be called Layer collections -* Lizard Contracts endpoint -* Steadier 3Di-result-processing - -The story behind  the new homepage -+++++++++++++++++++++++++++++++++++++++ - -The past year, many new functionalities have been developed. The Lizard data warehouse and analytics platform has become a solution for many consultants working with environmental data and for setting up digital services. We see that next to the Viewer, the Catalogue, Management and API are increasingly more important for users. The Homepage ensures easy access to functionalities for all users. - - -.. image:: /images/a_homepage.jpg - - - -Action required? -+++++++++++++++++++ - -The introduction of the homepage requires no action in itself. What we do recommend to do is to check if you or your colleagues have created quick links to Lizard. This is only needed for links to the Lizard Viewer, for example a link from your intranet or bookmark bar to a map or graph in Lizard.  If your link is broken and results in a 404 error, you can make the following adjustment: - - - -1) Search for links going to {yourorganisation}.lizard.net/ - -2) Change this link to {yourorganisation}.lizard.net/viewer/. - - - -Example 1: Link to viewer - -https://demo.lizard.net/en/map/ -will be -https://demo.lizard.net/viewer/en/map/ - - - - -Example 2: Link to a favourite - -https://demo.lizard.net/favourites/55db162c-581a-491f-8579-b52e7e68d2bd -will be -https://demo.lizard.net/viewer/favourites/55db162c-581a-491f-8579-b52e7e68d2bd - -.. note:: - NB: Within Lizard all settings and references will be adjusted by us, for example links in dashboards.  - Links to the API will not change.  - -.. note:: - The terms Portal and Viewer were both used for {yourorganisation}.lizard.net/. The Portal will remain the base url (which now leads to the Homepage). The Viewer is the new url {yourorganisation}.lizard.net/viewer/ - - - - - -June 2021 Release -===================== -We’re happy to announce the newest release of Lizard Management. - -* New time series management interface. -* New user management interface. - - -.. raw:: html - -

- -
- -If you have questions about this release or if you’re interested in features please contact us via info@lizard.net diff --git a/source/old_files/b_usermanagement.rst b/source/old_files/b_usermanagement.rst deleted file mode 100644 index 737389c..0000000 --- a/source/old_files/b_usermanagement.rst +++ /dev/null @@ -1,140 +0,0 @@ -.. _AuthenticationAnchor: - -========== -Signing in -========== - -Users that already have a Lizard account can click the "Log in" -button on the top right of the screen. - -First-time users require an invitation to create a Lizard account. Users with -a "manager" role are able to send invitations to new users. -If you do not know whom to contact, please contact our support office -(servicedesk@nelen-schuurmans.nl). - -After clicking "Log in" or after following the invitation link, you will arrive -at the login screen. - -.. note:: - Please ensure that "https://auth.lizard.net/" domain is indeed displayed - in your browser's address bar and that your browser displays the lock - symbol indicating that the connection is secure. - -On the login page you have four different options to sign in: - -1. through a company account, -2. through a social account, -3. with username and password, -4. by creating a new account (Sign up). - -First-time users may choose any of these options. If your company is listed as -one of the possible companies to sign in with, that is the preferred choice. - -Existing users should use the same method as they used when signing in for -the first time. If your Lizard username/password existed before Januari 2021, -use method 3. - -.. tip:: - Do you want to add your company to the list to centralise the user accounts - of your organisation? Please contact our support office - (servicedesk@nelen-schuurmans.nl) for the options. - - -.. _OrganisationsAnchor: - -============= -Organisations -============= - -All data in Lizard is linked to an organisation. -Organisations are the backbone of our authorisation model. -When an organisation uploads data, they are able to determine the level of authorisation required for access. -There are three types of authorisation options that can be applied to your data: - -* **Public**: everyone is able to access your data -* **Common**: everyone with login credentials to Lizard is able to access your data -* **Private**: everyone with login credentials to Lizard AND user rights to your organisation is able to access your data - - - -Whitelisting -============ - -The users of a certain portal may not be interested in a lot of the public/common datasets that are made available by others. -Every Lizard portal has its own whitelist. -Whitelisting allows the organisations to determine which data should be visible. -This can remove some of the clutter. -The whitelist affects both the Lizard Viewer aswell as the Catalogue. - -The effect is that for the same user the available data can differ between [your_organisation].lizard.net and demo.lizard.net (for which all organisations are whitelisted). -The whitelisting mechanism is overruled if a user has specific authorisation for an organisation. - -.. tip:: - Do you want to see or change the whitelist settings of a portal? Please contact our support office - (servicedesk@nelen-schuurmans.nl). - -===== -Roles -===== - -We have 4 roles and 3 different types of privileges. - -* A **user**, who can only *read* data -* A **supplier**, who can *read* data and change (*'write'*) his or her own data -* An **administator**, who can *read* data and change (*'write'*) all organisation's data. -* A **manager**, who can *manage* other roles in the organisation. A manager can not read or write data by default. This role should be appointed separately. - - -=============== -User management -=============== - -Users can be managed in the User Management interface. -This interface can be reached via the {your_organisation}.lizard.net/management/users/ (or `demo.lizard.net/management/users `_). - -.. note:: - You require a “manager” role to access the User Management interface. - Haven’t got a “manager” role but you would like to add the User Management interface? - Please contact the application manager within your organisation or our support office (servicedesk@nelen-schuurmans.nl) - -.. image:: /images/b_usermanagement_03.png - -In the example above, you see the current rights for 7 users under the organisation Nelen & Schuurmans. - -Manage existing users -===================== - -The User Management interface gives you an overview of all users that have roles for your organisation. -If you are Manager for multiple organisations you can switch organisation using the button in the dark green bar. You can change the role of a user by clicking the “three dots" next to the user and choose the roles you want to assign. Then click “Save” to make the changes. - -Adding a new user -================= - -You can add a new user by clicking the “NEW ITEM” icon in the upper right corner. - -.. image:: /images/c_manage_newitem.png - -This will lead you to the screen where a new user can be added. - -.. image:: /images/b_usermanagement_04.png - -By default the new user is granted a “User” role. At least one role is required when a new user is invited. -Do not forget to click ‘Save’! When saved, an invitation email will be sent to the new user. -This user can follow the invitation link to (if necessary) create an account and receive the new roles. -The user will appear in the user management overview once they accepted the invite and created the account. - -.. note:: - Sometimes this invitation mail will end up in the spam folder. - -.. note:: - The invited user is required to sign in with the email address that is supplied by the manager. This email address can't be changed later on. - -.. note:: - Deselecting all roles will remove the user from the organisation, but will not delete the user's account. - -.. note:: - You cannot remove your own manager role. - -.. tip:: - Click on 'Pending Users', to see who have not completed the activation process yet. - diff --git a/source/old_files/c_apifunctional.rst b/source/old_files/c_apifunctional.rst deleted file mode 100644 index 1633bbb..0000000 --- a/source/old_files/c_apifunctional.rst +++ /dev/null @@ -1,73 +0,0 @@ -============================== -API functional documentation -============================== - -You can access the Lizard API via “{your_organisation}.lizard.net/api/v4/”. - -.. image:: /images/c_apifunctional_01.jpg - -What is an API? -=============== - -API stands for Application Programming Interface. -The API, looking like the picture above, gives back timeseries, rasters, or other data or information. -This is depending on the request you do to the API. -This request comes from the URL you type in the browser. -You can also access the API via another program, and make automatic requests. - -Basic use API -============= - -Below we discuss a basic request to the API. -More examples and possibilities will be discussed further down - -The basic url is www.{your_organisation}.lizard.net/api/v4, for example: - www.demo.lizard.net/api/v4 - -If you type this in your browser, for example Google Chrome, you will get a list of parameters. -These parameters are so called *endpoints*. -If you paste this endpoint after your basic url, you will initiate a query. -An example is ``locations``. -If you click on the url www.demo.lizard.net/api/v4/locations , you will send a query to Lizard to search all locations that you have access to. -As a response, you will get indeed the locations back, as well as some metadata. - -.. image:: /images/c_apifunctional_02.jpg - -Above each page, you will see some additional parameters, with which you can specify your query more. -Most endpoints have examples of this. - -.. image:: /images/c_apifunctional_03.jpg - -If we are looking for a specific location, with a name that starts with 'Inlaat', we can use this query: - -https://demo.lizard.net/api/v4/locations/?name__startswith=Inlaat - -If you are an administrator or supplier of the data, you can also edit or delete the data via the API. - -Versions -======== - -We support two versions of our API: - -* API v3: deprecated (sunset date: 4 July 2023) -* API v4: stable - - -API V3 will be taken offline by 4 July 2023. Any use in scripts or applications should be reimplemented in API V4. -API V4 is the stable version. We can make changes to this version, but they should always be backwards compatible and therefore not break any existing use. - -Digitale Delta API ------------------- - -De Nederlandse watersector staat voor de opgave om in een snel veranderende omgeving haar informatievoorziening te transformeren en klaar te maken voor de toekomst. -De Digitale Delta is het open platform voor het aanbieden en vinden van relevante data voor het waterbeheer in Nederland. -Lizard spreekt Digitale Delta en is een van de dataleveranciers binnen de Digitale Delta. -De Digitale Delta API Root is te vinden op https://demo.lizard.net/dd/api/v2 - -De documentatie van de Digitale Delta API is te vinden op: -https://github.com/DigitaleDeltaOrg/dd-api-spec/blob/master/README.md - -Contact -======= - -If you have additional questions about the use of the API contact our servicedesk (servicedesk@nelen-schuurmans.nl) \ No newline at end of file diff --git a/source/old_files/c_general.rst b/source/old_files/c_general.rst deleted file mode 100644 index 27f1fdd..0000000 --- a/source/old_files/c_general.rst +++ /dev/null @@ -1,14 +0,0 @@ -================ -General -================ - - -In the data management interface you manage rasters, geoblocks, wms layers, layer collections, time series, scenarios and labels. - - -.. image:: /images/c_datatypes_01.png - -The Data Management interface is available at: “{your_organisation}.lizard.net/management/”. - -.. note:: - This functionality is available only to users with an admin, manager or supplier role. \ No newline at end of file diff --git a/source/old_files/c_labels.rst b/source/old_files/c_labels.rst deleted file mode 100644 index 835868c..0000000 --- a/source/old_files/c_labels.rst +++ /dev/null @@ -1,8 +0,0 @@ -============ -Labels -============ - -.. warning:: - This section is to be extended. - -.. image:: /images/c_manage_labeltypes.png diff --git a/source/old_files/c_layercollections.rst b/source/old_files/c_layercollections.rst deleted file mode 100644 index 7b31ed5..0000000 --- a/source/old_files/c_layercollections.rst +++ /dev/null @@ -1,6 +0,0 @@ -==================== -Layer collections -==================== - -.. warning:: - This section will be extended in the near future. \ No newline at end of file diff --git a/source/old_files/c_rasters.rst b/source/old_files/c_rasters.rst deleted file mode 100644 index 5d30ac7..0000000 --- a/source/old_files/c_rasters.rst +++ /dev/null @@ -1,54 +0,0 @@ -============= -Rasters -============= - -The data management interface for rasters can be used to upload, edit or remove rasters. -Raster Sources are the data containers, Raster Layers are the configuration of how the data is visualised. - -.. image:: /images/c_manage_rasters_01.png -.. image:: /images/c_manage_rasters_02.png -.. image:: /images/c_manage_rasters_03.png - -Creating and editing Raster Sources and Layers ----------------------------------------------- - -The first step in uploading your raster datasets is to create a Raster Source. - -The Data Management interface is available at: “www.{your_organisation}.lizard.net/management/”. - -After landing on this page, click on ‘Data’ -> ‘Rasters’ -> 'Raster Sources'. -Click on “New Item” |NewItem| to open the form or choose an existing raster to edit. - -.. |NewItem| image:: /images/c_manage_newitem.png - -After filling in the form you can choose to directly upload your data by selecting your GeoTIFF's in the 'DATA' section. -In case of a temporal raster source you need to specify which file belongs to which timestep. -This is recognised automatically if the filename is composed according to the specified format. -When you save a new Source you will have the option to go straight to the Raster Layer form to publish your data. - -.. image:: /images/c_datatypes_01.png - -Interested in the possibilities for your organisation? Please contact us via info@lizard.net. - -GeoBlocks management --------------------- - -The GeoBlocks management page provides you a powerful tool to build your GeoBlocks Rasters. -It helps you configure complex GeoBlocks models and enables you to validate your work along the way. - -The Visual editor shows your model as a flow diagram, consisting of block objects representing the input Raster Sources and GeoBlocks operations. -The right sidebar shows the available blocks. Click on the blocks for a description and the expected inputs. Drag a block into the canvas to include it in your model. -Connect blocks to use one as input for the other. - -When the model is valid it can also be shown in the Text editor. This shows the JSON graph as it would be sent to the API when you save the item. -Here you can also make edits and validate the result. - -Example 1 shows a simple model which subtracts one Raster Source from another (difference in surface elevation between two versions of a dataset). - -.. image:: /images/c_manage_geoblocks_01.png - -Example 2 shows a more complex model with multiple Raster Sources and a series of operations. - -.. image:: /images/c_manage_geoblocks_02.png - -For more information about the possibilities of GeoBlocks see: :ref:`GeoBlocksAnchor` diff --git a/source/old_files/c_scenarios.rst b/source/old_files/c_scenarios.rst deleted file mode 100644 index 48a7f40..0000000 --- a/source/old_files/c_scenarios.rst +++ /dev/null @@ -1,75 +0,0 @@ -============== -Scenarios -============== - -The data management interface for scenarios can be used to manage scenarios. - - -.. image:: /images/c_manage_scenarios_01.png - - -Search for a scenario ------------------------- - -You can search for a scenario by either typing (part of) the scenario name, the UUID, username of the supplier or model name. - -.. image:: /images/c_manage_scenarios_search.png - -You can also specify that you only want to show your own scenarios by ticking the box in the top right corner. - - -Used storage and deletion of scenarios ------------------------------------------ - -.. image:: /images/c_manage_scenarios_storage.png - -In the left side, you can see the used storage for your organisation. This may have influence on your subscription. - -.. image:: /images/c_manage_scenarios_delete1.png - -If you want to remove a complete scenario, you simply check the box of the relevant scenario(s) and choose 'delete'. -If you choose 'delete raw', it will only remove the raw data and not the timeseries and rasters. You can also remove a specific raster of a scenario by double-clicking on a scenario and clicking on the 'trash' icon next to the layer. - -.. image:: /images/c_manage_scenarios_delete2.png - -.. warning:: - If you delete a scenario, it is really gone! We might be able to retrieve the rasters if you contact support within 14 days. - -Add a scenario --------------------- - -Scenarios can be automatically exported to Lizard, for example via 3Di. -You can also add a new scenario with the New Item button on the top right corner. - -.. image:: /images/c_manage_newitem.png - -Edit a scenario ----------------- - -Right now you can only edit the accessability of a scenario. -Scenarios are private by default (only visible for logged in users of the same organisation). -You can choose to make them visible for all logged in users or even public so no login is necessary. - -.. image:: /images/c_manage_scenarios_public.png - - -.. tip:: - Make scenarios public if you want to use them in other GIS applications via a `wms link `_. - - -You can add a scenario to an existing project via the threedot icon. - -.. image:: /images/c_manage_scenarios_project.png - -Group scenarios in a project ------------------------------ - -Projects are used to group and give insights on scenarios. - -.. image:: /images/c_manage_projects_01.png - -Create a new project with the New Item button on the top right corner. - -.. image:: /images/c_manage_newitem.png - - \ No newline at end of file diff --git a/source/old_files/c_timeseries.rst b/source/old_files/c_timeseries.rst deleted file mode 100644 index 5ca33c3..0000000 --- a/source/old_files/c_timeseries.rst +++ /dev/null @@ -1,160 +0,0 @@ -============== -Time series -============== - - -The data management interface for timeseries can be used to upload, edit or remove timeseries, monitoring networks and locations. - -.. image:: /images/c_manage_timeseries_menu.png - - ----------- -Locations ----------- - -.. image:: /images/c_manage_locations_01.png - - -Search or sort your locations here. -Check out possible actions by clicking the three dots icon. -Create a new object with the New Item button on the top right corner. - - -.. image:: /images/c_manage_newitem.png - -.. image:: /images/c_manage_locations_02.png - -1. GENERAL ------------- - -* Location name (required): Choose a name that is findable and not too difficult -* Code (required): Choose a code that represents the object within your organisation. - - -2. DATA ------------- - -.. warning:: - Locations must be connected to an existing asset to be visualised in the Viewer. The asset will have a symbol and zoom level depending on the type. Also, the metadata differs per type. For now, only measuringstations can be added via the API. If you have any questions about this, please contact the service desk. - -* Asset type (optional): Specify a type of asset. -* Asset location: after specifying the asset type, you can search by code or name. -* Extra metadata (JSON) (optional): Free JSON field to add information to this object. - -3. RIGHTS ------------- - -* Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. - - -If you are satisfied, click "SAVE" - ------------- -Timeseries ------------- - -.. image:: /images/c_manage_timeseries_01.png - -Search or sort your time series here. -Check out possible actions by clicking the three dots icon next to a time series. You can add timeseries to a monitoring network (MN), edit, or delete hem. -Create a new object with the New Item button on the top right corner. - -.. image:: /images/c_manage_newitem.png - -.. image:: /images/c_manage_timeseries_02.png - -1. GENERAL ------------- - -* Name (required): Choose a name that is findable and not too difficult -* Code (required): Choose a code that represents the object within your organisation. - - -2. DATA ------------- - -* Observation type (required): Choose the way the data is measured, and the units. New observation types can be added via the `api `_ or requested via the servicedesk. -* Location (required): Choose to which location you want to add this timeseries. New locations can be added via the api or via data management --> timeseries --> locations. -* Value type (required): Specify what kind of data you will be supplying. See `Level of measurement `_. -* Datasource (optional): Specify a data source if it is available. Otherwise, you can leave it empty or create a new one via the API. -* Interval (optional): Specify a time range between each time series step. - -.. note:: - if you leave the interval at 0, it will mean it is irregular ('nonequidistant') data. This is also necessary if you have timesteps smaller than seconds. - -* CSV Files (optional): You can add new data via a csv file or via the API. If you want to supply a csv file, see the instructions below: - -.. note:: - The first line of the file should describe the column names, for example: - - | time, value - | 2020-03-20T01:00:00Z, 3.14 - | 2020-03-20T01:05:00Z, 2.72 - - The next lines are the timestemp and value for that timestep. Make sure you do not list the same timestep twice. - All uploads in Lizard are expected to be in UTC time. - - | time: ISO 8601 date and time representation. This is a required field. - | value: A number, string, or boolean, depending on the value_type of the corresponding time series. - - -* Extra metadata (JSON) (optional): Free JSON field to add information to this object. - - -3. RIGHTS ------------- - -* Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. -* Username of supplier (optional): The supplier of this object. If you are not an administrator, this field is always pre-filled with your username. -* Supplier code (optional): The FTP or Supplier code is used as reference to your own system. - -.. note:: - Timeseries are not linked to an organisation directly. They are linked to organisations via the locations. - -If you are satisfied, click "SAVE" - - - ---------------------- -Monitoring networks ---------------------- - -Monitoring networks are used to group and give insights on time series. -Check out possible actions by clicking the three dots icon next to existing networks. - -Create a new object with the New Item button on the top right corner. - -.. image:: /images/c_manage_newitem.png - -.. image:: /images/c_manage_monitoringnetworks_01.png - -1. GENERAL ------------- - -* Name (required): Choose a name that is findable and not too difficult -* Description (optional) - - -2. DATA ------------- - -.. warning:: - The button "MANAGE" will only work if there are already timseries connected to the monitoring network. If there are, you can remove the the connection here. New connections can be added via the timeseries management app. - -3. RIGHTS ------------- - -* Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. -* Organisation (required, pre-filled): The organisation this object belongs to. - -If you are satisfied, click "SAVE" - - - - - - - - - - diff --git a/source/old_files/c_wms.rst b/source/old_files/c_wms.rst deleted file mode 100644 index 93455e5..0000000 --- a/source/old_files/c_wms.rst +++ /dev/null @@ -1,66 +0,0 @@ -=========== -WMS Layers -=========== - -WMS stands for Web Mapping Service. -It is a standard method of sharing georeferenced maps. -The WMS layers management allows the user to configure layers in Lizard even if they are hosted on another platform. -In the management screen you can add new WMS layers or edit existing layers. - -.. image:: /images/c_manage_wms_01.png - -New WMS Layer -============== - - -.. image:: /images/c_manage_newitem.png - -After clicking the 'NEW ITEM' icon, you can configure a new WMS layer. - -.. image:: /images/c_manage_wms_02.png - -The configuration has some mandatory items while others are optional, an extensive list with descriptions follows: - -1. GENERAL ------------- - -* Name (required): Choose a name that is findable and not too difficult -* Description (optional): Give a description of the information that is displayed by the WMS layer. -* Tags / Datasets (optional): You can connect the layer to an existing dataset. - -2. DATA ------------- - -* WMS URL (required): Specify which base URL is used to retrieve the image data. It usually ends on '/wms' -* Slug (required): can be seen as layer name used in the external platform -* Download URL (optional): Specify which URL is used to download the data. This will enable the download button in the Lizard Catalogue. -* Legend URL (optional): Specify which URL is used to show the legend of this layer. -* Get Feature URL (optional) : Optional URL to retrieve feature info data. -* Tiled (enabled by default) : Specifies whether the layer is tiled (for better performance) -* Min and max zoom (required): Closest and furthest point of view in this WMS layer. 0 is visible at world scale, 31 is zoomed in at a house. You can check the zoom level in the url in the Viewer (after the coordinates). -* Spatial bounds (optional): Specify the extent of this layer on the map. This information can also be automatically obtained by clicking "Get from source". -* Options (JSON): Extra options of this layer, specfied in JSON. - -3. RIGHTS ------------- - -* Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. -* Shared with (optional): Specify if this object should be accessible by other organisations, and if so, which ones. -* Organisation (required, pre-filled): The organisation this object belongs to. -* Supplier (optional): The supplier of this object. If you are not an administrator, this field is always pre-filled with your username. - -If you are satisfied, click "SAVE" - - -Edit WMS Layer -=============== - -By clicking on the name of a WMS layer, the configuration of the corresponding layer is opened. -In the configuration page you can edit any of the settings previously given to the WMS layer. -To quickly find a WMS layer: use the search bar. -If the layer you are looking for seems unavailable you might have to switch organisations, feel free to contact the servicedesk for any problems (servicedesk@nelen-schuurmans.nl). - -.. image:: /images/c_manage_wms_03.png - -.. tip:: - Advanced: Is your WMS layer not visible in the Viewer? Check via the network tab (press F12) how Lizard requests the WMS and if that WMS url makes sense. diff --git a/source/old_files/d_apitechnical.rst b/source/old_files/d_apitechnical.rst deleted file mode 100644 index 53f4dad..0000000 --- a/source/old_files/d_apitechnical.rst +++ /dev/null @@ -1,258 +0,0 @@ -============================= -API technical documentation -============================= - -This page goes into the technical documentation of our API. - -The Lizard REST API is used to interact with Lizard data and objects. -The API enables to collect, export and manage data. -With the API, objects and data can be listed, created, (partially) updated and retrieved. -Objects and data have different endpoints, to allow specific interactions. - -The endpoints are browseable through the API root view: - -- API V3 https://demo.lizard.net/api/v3/ (deprecated) - -- API V4 https://demo.lizard.net/api/v4/ (stable) - -Resources are addressable via an URL and can be interacted with via HTTP verbs. The -most commonly used and supported verbs are: - -* GET : retrieve data -* PATCH/PUT : change data -* DELETE : delete data -* POST : add data - -We also have HEAD and OPTIONS. - -.. _APIAuthenticationAnchor: - -Authentication -============== - -When you login via your browser, your browser receives a session cookie. -All subsequent requests to the API are authenticated with that session cookie. - -Authenticating to the REST API outside of a browser is done by attaching a -Personal API Key to *every* request. You can attach a Personal API Key to -a request by using HTTP Basic Authentication with password = {your api key}. -The username needs to be fixed to ``__key__`` (with double underscores on both -sides of the word "key"). - -Almost all applications or script languages support HTTP Basic Authentication. -See below for some examples. - -Generate a Personal API key at https://demo.lizard.net/management/. -It is considered best practise to generate one Personal API Key per application -or script, so that you can selectively revoke keys in case they are compromised. - -Examples --------- - -Python requests -~~~~~~~~~~~~~~~ - -With Python, we recommend using the ``requests`` package. Supply your API Key -in the ``auth`` parameter, as follows: - -.. code-block:: python - - import requests - - url = "demo.lizard.net/api/v4/locations" - my_secret_key = "abcdefg.01234567890" # Example - - response = requests.get(url, auth=("__key__", my_secret_key)) - - -Postman -~~~~~~~ - -In Postman you can set up HTTP Basic Authentication as shown in the image below. -Be sure to choose "Basic Auth" as Type, and not "API Key". - -.. image:: /images/c_apitechnical_03.png - - -Applications: OAuth2 --------------------- - -Applications (such as dashboards) that use the Lizard API should authenticate -using OAuth2. For this, you will need a registration. Contact our servicedesk to -request one. - - -Legacy: username / password ---------------------------- - -Lizard supports authenticating by attaching ``username`` and ``password`` to -every request, either directly in Username and Password headers, or using -HTTP Basic Authentication. This legacy authentication does generate a session. - -.. warning:: - This form of authentication has been deprecated on *June 1st, 2021*. Ensure - that your applications and scripts use new API Keys after that date. - -In the period until June 1st, 2021, correct username / password combinations -will be migrated automatically to a Personal API Key, in such a way that -you may keep using the same username / password combination. Password changes -will however not be reflected anymore in the migrated API Key. - - -Authorisation -============= - -For all endpoints, users have to be ``admin`` in the organisation that owns the -data to create or update resources. -See :doc:`b_usermanagement` for more information about roles and permissions. - -Supported data formats -====================== - -The data formats supported depend on the endpoint, although -JSON is generally available. See documentation on the individual endpoints -for specifics. - -The format of responses can be controlled by specifying an ``Accept`` header -in requests, e.g. Accept: application/json. When posting data, the -format of the payload must be specified via a ``Content-Type`` header, e.g. -Content-Type: text/csv. - -When interacting with the API via a browser, the ``format`` query parameter -may also be used for controlling the format of the response, for example: - -https://demo.lizard.net/api/v4/timeseries/?format=json - -Common variables -================ - -In this section, query parameters and response fields applicable to all -endpoints are described. - -Query parameters ----------------- - -The API supports the following common query parameters on :http:method:`GET` list requests: - -.. http:get:: //?page=(int:offset)&page_size=(int:size) - - :query page: offset number; default is 0. - :query page_size: limit number of entries returned; default is 10. - -Response fields ---------------- - -All list responses share the following fields. - - * **count:** number of results for this page - * **next:** url to next page, `null` if last page - * **previous:** url previous page, `null` if first page - * **results:** array with actual results - -These fields are not specifically mentioned in the response description of each endpoint. - -Timeseries -========== - -This section describes timeseries-related endpoints. - -.. _timeseries_endpoint: - -.. _timeseries_base_parameters: - - **Example request:** - - GET https://demo.lizard.net/api/v4/timeseries/1bcba36e-781d-4339-9632-00d5398c3b15/ - - **Example response:** - - .. image:: /images/c_apitechnical_01.jpg - -Locations -========== - -This section describes location-related endpoints. - -.. _locations_endpoint: - - **Example request:** - - GET https://demo.lizard.net/api/v4/locations/faa84a55-cb8d-460c-a8b8-18d2b59da28c/ - - **Example response:** - - .. image:: /images/c_apitechnical_02.jpg - -Changes in v4 compared to v3 -============================ - -Some major changes have been made in the setup of API v4 in comparison to v3. We have worked on consistency in parameterisation and response formats per endpoint. - -To help users convert their scripts and applications we list the most important changes here. For more details please inspect the documentation within the API. - -Timeseries ----------- - - * Timeseries events, aggregates and percentiles can be retrieved from separate sub-endpoints under the timeseries instance, instead being combined in the detail page of the timeseries instance. - * Timestamps are in ISO8601 format, instead of UNIX milliseconds. - -Rasters -------- - -- Raster aggregates have been split out in separate sub-endpoints under ``/api/v4/rasters/{uuid}/``: - - - counts - - - curve - - - line - - - point - - - rrc - - - zonal - -- Raster WMS is no longer available within the versioned Lizard API (``/api/v3/wms/`` isn't being replaced by ``/api/v4/wms/``). Instead use https://demo.lizard.net/wms/. - -- Timestamps are in ISO8601 format, instead of UNIX milliseconds. - -Scenarios ---------- - -- scenario-results has become a sub-endpoint under scenario instances, i.e. ``/api/v4/scenarios/{uuid}/results/`` - -Labels ------- - -- All label related endpoints have been grouped under the labeltypes endpoint. - -Events ------- - -- The events endpoint has been placed under eventseries. - -Miscellaneous -------------- - -- /regions has become /boundaries in v4 - -- The following endpoints will not return in v4: - - - annotations - - - domains - - - nodes - - - leveereferencepoints - - - leveerings - - - leveesections - - - leveezones - - - opticalfibers - - - timeseriestypes diff --git a/source/old_files/d_apitutorials.rst b/source/old_files/d_apitutorials.rst deleted file mode 100644 index cc3d3ed..0000000 --- a/source/old_files/d_apitutorials.rst +++ /dev/null @@ -1,34 +0,0 @@ -============================== -API tutorials -============================== - -We created interactive manuals for data scientists to use the Lizard API. -At the moment we have the following: - -0. Virtual Environment ----------------------- - -| `Virtual Environment Requirements `_ - - -1. Interactive Time Series API manual -------------------------------------- - -| `Notebook for /api/v4/timeseries `_ - - -2. Interactive Rasters API manual and download script ------------------------------------------------------ - -| `Notebook for /api/v4/rasters `_ - -| `Download script for /api/v4/rasters `_ - - -3. Learn to retrieve scenarios from the Lizard API - -| `Notebook for 3Di results / Scenarios in Lizard `_ - - -.. note:: - API v4 is the stable API version. API v3 is deprecated since june 2023. diff --git a/source/old_files/d_datatypes.rst b/source/old_files/d_datatypes.rst deleted file mode 100644 index 7c77963..0000000 --- a/source/old_files/d_datatypes.rst +++ /dev/null @@ -1,739 +0,0 @@ - -========= -Datatypes -========= - -Lizard can store & accelerate three types of data: vectors, rasters and time series. -These data types are a digital representation of the physical environment. -We also distinguish wms layers, scenarios and labels. - -Rasters -======= - -Introduction ------------- - -Rasters in Lizard represent continuous information about the physical environment across an area. -Rasters can be static or temporal. Examples of static data are digital elevation models and land cover maps. -Temporal raster datasets, or raster series, consist of a series of rasters for a certain time interval. -Examples of temporal raster datasets are radar measurements of precipitation, air quality or hydrodynamic model results such as flood depths. - -.. _why_rasterstores: - -Why Rasterstores ------------------ - -The rasterstore is a library designed for quick data retrieval. Rasters provide a simple structure for data analyis. - -Main functionalities: - -* Retrieve values for a specific location or area -* Analyse data for a particular period or moment in time -* Map visualisation in the lizard Viewer -* Exporting to a geotiff file -* Connecting with external applications via WMS -* Base block for on-the-fly map calculations and conversions -* API interactions: list, create, (partial) update, retrieve and delete - -Raster data ------------- - -A rasters is a grid of cells organized into rows and columns. Each cell contains a value that represents real-world phenomena, such as water depth. The values can be continuous (e.g. 28.5 degrees) or integer numbers. Integer numbers can represent classes (e.g. 1: Water, 2: Land). - -Rasterstore data can be static or temporal. Examples of static data are a digital elevation model and a land cover map. Temporal rasterstores consist of multiple timesteps. The data can be stored in time using an origin (e.g. 2019-01-01) and an interval (e.g. every day). Examples are weather predictions and timeseries of 3Di model results. - -Requirements --------------- - -Your raster data has to be in the format of a single band, georeferenced TIFF (geotiff), with the following requirements: - -* **Geotiff should have valid projection** including transformation (EPSG code). All projections supported by proj4 are supported. -* **Geotiff should have a NODATA value**. -* **Geotiff should be single band**. RGB or multi-band is not supported. -* **Temporal raster datasets** with multiple timesteps **should be supplied with a single geotiff per timestamp** - -Raster metadata ----------------- - -Characteristics of rasters are stored in the attributes of a rasterstore. The attributes are used to indicate the function, purpose and meaning of data. The main attributes are listed below. - -* Organisation -* Name -* Description -* Aggregation type -* Observation type -* Colormap -* Supplier name -* Supplier code -* Temporal behaviour - -.. _vector_data_types: - -Vectors -======= - -Vectors in Lizard represent physical or abstract objects in time and space. -Lizard offers an extensive library of vector data models that can be used to represent objects (physical or abstract) in the physical environment. -Per data model, there are columns defined with certain data_types. -Some are obligatory, such as the id, some are optional. Below you find the available columns per data model. - -.. csv-table:: "administrative boundaries": "https://demo.lizard.net/api/v4/boundaries/" - :header: column_name, data_type - - id, integer - code, character varying - type, smallint - name, character varying - created, timestamp with time zone - geometry, USER-DEFINED - last_modified, timestamp with time zone - -.. csv-table:: "bridges": "https://demo.lizard.net/api/v4/bridges/" - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - name, character varying - type, character varying - width, double precision - length, double precision - height, double precision - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - last_modified, timestamp with time zone - -.. csv-table:: "buildings": "https://demo.lizard.net/api/v4/buildings/" - :header: column_name, data_type - - id, integer - created, timestamp with time zone - start, timestamp with time zone - end, timestamp with time zone - image_url, character varying - code, character varying - build_year, integer - geometry, USER-DEFINED - organisation_id, integer - last_modified, timestamp with time zone - -.. csv-table:: "culverts": "https://demo.lizard.net/api/v4/culverts/" - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - type, character varying - bed_level_upstream, double precision - bed_level_downstream, double precision - width, double precision - length, double precision - allowed_flow_direction, integer - height, double precision - material, integer - shape, integer - description, text - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - last_modified, timestamp with time zone - -.. csv-table:: "filters": "https://demo.lizard.net/api/v4/filters/" - :header: column_name, data_type - - id, integer - created, timestamp with time zone - filter_top_level, double precision - filter_bottom_level, double precision - aquifer_confiment, text - litology, text - code, character varying - groundwater_station_id, integer - top_level, double precision - high_groundwater_level, double precision - low_groundwater_level, double precision - last_modified, timestamp with time zone - -.. csv-table:: "fixeddrainagelevelareas":"https://demo.lizard.net/api/v4/fixeddrainagelevelareas/" - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - name, character varying - type, integer - water_level_summer, double precision - water_level_winter, double precision - water_level_fixed, double precision - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - last_modified, timestamp with time zone - -.. csv-table:: "groundwaterstations": "https://demo.lizard.net/api/v4/groundwaterstations/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - image_url, character varying - code, character varying - name, character varying - surface_level, double precision - top_level, double precision - bottom_level, double precision - station_type, integer - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - scale, integer - status, integer - last_modified, timestamp with time zone - -.. csv-table:: "leveecrosssections": "https://demo.lizard.net/api/v4/leveecrosssections/", - :header: column_name, data_type - - id, integer - created, timestamp with time zone - start, timestamp with time zone - end, timestamp with time zone - image_url, character varying - code, character varying - name, character varying - distance_to_reference, integer - geometry, USER-DEFINED - levee_id, integer - organisation_id, integer - last_modified, timestamp with time zone - -.. csv-table:: "levees": "https://demo.lizard.net/api/v4/levees/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - recurrence_time, integer - material, character varying - coating, character varying - crest_height, double precision - image_url, character varying - name, character varying - category, integer - levee_ring_id, integer - levee_type, integer - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - last_modified, timestamp with time zone - -.. csv-table:: "locations": "https://demo.lizard.net/api/v4/locations/", - :header: column_name, data_type - - id, integer - organisation_id, integer - code, character varying - name, character varying - object_type_id, integer - object_id, integer - created, timestamp with time zone - access_modifier, integer - last_modified, timestamp with time zone - last_modified_by, character varying - extra_metadata, text - ddsc_icon_url, character varying - ddsc_show_on_map, boolean - geometry, USER-DEFINED - uuid, uuid - node_id, integer - supplier_id, integer - -.. csv-table:: "manholes": "https://demo.lizard.net/api/v4/manholes/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - surface_level, double precision - drainage_area, integer - material, character varying - width, double precision - length, double precision - shape, character varying - bottom_level, double precision - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - water_consumption, double precision - last_modified, timestamp with time zone - -.. csv-table:: "measuringstations": "https://demo.lizard.net/api/v4/measuringstations/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - name, character varying - region, character varying - station_type, integer - category, character varying - frequency, character varying - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - last_modified, timestamp with time zone - -.. csv-table:: "monitoringwells": "https://demo.lizard.net/api/v4/monitoringwells/", - :header: column_name, data_type - - id, integer - created, timestamp with time zone - start, timestamp with time zone - end, timestamp with time zone - image_url, character varying - code, character varying - num_timeseries, integer - well_top_level, double precision - well_bottom_level, double precision - geometry, USER-DEFINED - levee_crosssection_id, integer - organisation_id, integer - last_modified, timestamp with time zone - -.. csv-table:: "orifices": "https://demo.lizard.net/api/v4/orifices/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - start_point_id, integer - end_point_id, integer - connection_serial, integer - crest_width, double precision - crest_level, double precision - shape, character varying - initial_opening_height, double precision - code, character varying - name, character varying - flow_type, integer - angle, double precision - contraction_coeff, double precision - lat_contr_coeff, double precision - negative_flow_limit, double precision - positive_flow_limit, double precision - allowed_flow_direction, integer - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - last_modified, timestamp with time zone - -.. csv-table:: "outlets": "https://demo.lizard.net/api/v4/outlets/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - manhole_id, integer - connection_serial, integer - open_water_level_average, double precision - open_water_level_summer, double precision - open_water_level_winter, double precision - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - last_modified, timestamp with time zone - -.. csv-table:: "overflows": "https://demo.lizard.net/api/v4/overflows/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - start_point_id, integer - end_point_id, integer - connection_serial, integer - crest_width, double precision - crest_level, double precision - open_water_level_average, double precision - open_water_level_summer, double precision - open_water_level_winter, double precision - angle, double precision - allowed_flow_direction, integer - image_url, character varying - code, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - sensor_level, double precision - surface_level, double precision - name, character varying - last_modified, timestamp with time zone - -.. csv-table:: "parcels": "https://demo.lizard.net/api/v4/parcels/", - :header: column_name, data_type - - id, integer - created, timestamp with time zone - start, timestamp with time zone - end, timestamp with time zone - image_url, character varying - code, character varying - name, character varying - external_id, character varying - geometry, USER-DEFINED - organisation_id, integer - num_timeseries, integer - last_modified, timestamp with time zone - -.. csv-table:: "pipes": "https://demo.lizard.net/api/v4/pipes/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - start_point_id, integer - end_point_id, integer - connection_serial, integer - invert_level_start_point, double precision - invert_level_end_point, double precision - length, double precision - type, character varying - material, character varying - width, double precision - height, double precision - shape, character varying - number_of_inhabitants, integer - dwa_definition, character varying - impervious_surfaces, text - allowed_flow_direction, integer - image_url, character varying - code, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - last_modified, timestamp with time zone - -.. csv-table:: "polders": "https://demo.lizard.net/api/v4/polders/", - :header: column_name, data_type - - id, integer - created, timestamp with time zone - image_url, character varying - code, character varying - name, character varying - organisation_id, integer - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - last_modified, timestamp with time zone - -.. csv-table:: "pressurepipes": "https://demo.lizard.net/api/v4/pressurepipes/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - length, double precision - material, character varying - diameter, double precision - shape, character varying - year_of_construction, integer - image_url, character varying - type, integer - name, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - last_modified, timestamp with time zone - -.. csv-table:: "pumpeddrainageareas": "https://demo.lizard.net/api/v4/pumpeddrainageareas/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - name, character varying - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - connected_impervious_surface, double precision - downstream_pumped_drainage_area_id, integer - extraneous_water, double precision - inhabitants, integer - minimum_overflow_crest_level, double precision - pollution_equivalent, double precision - population_equivalent, double precision - pump_station_id, integer - sanitary_load, double precision - sewer_system, integer - upstream_load, double precision - water_consumption, double precision - water_retention_capacity, double precision - area_type, integer - connected_impervious_surface_mixed, double precision - connected_impervious_surface_rainwater, double precision - num_timeseries, integer - pump_overcapacity, double precision - last_modified, timestamp with time zone - -.. csv-table:: "pumps": "https://demo.lizard.net/api/v4/pumps/", - :header: column_name, data_type - - id, integer - pump_station_id, integer - code, character varying - serial, integer - capacity, double precision - start_level, double precision - stop_level, double precision - name, character varying - type, character varying - reduction_factor_no_levels, double precision - reduction_factor, double precision - characteristics, character varying - allowed_flow_direction, integer - start_level_delivery_side, double precision - stop_level_delivery_side, double precision - created, timestamp with time zone - last_modified, timestamp with time zone - -.. csv-table:: "pumpstations": "https://demo.lizard.net/api/v4/pumpstations/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - type, character varying - start_point_id, integer - end_point_id, integer - connection_serial, integer - capacity, double precision - start_level, double precision - stop_level, double precision - name, character varying - allowed_flow_direction, integer - start_level_delivery_side, double precision - stop_level_delivery_side, double precision - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - last_modified, timestamp with time zone - -.. csv-table:: "roads": "https://demo.lizard.net/api/v4/roads/", - :header: column_name, data_type - - id, integer - created, timestamp with time zone - name, character varying - type, integer - use, integer - geometry, USER-DEFINED - code, character varying - end, timestamp with time zone - image_url, character varying - organisation_id, integer - start, timestamp with time zone - region_id, integer - last_modified, timestamp with time zone - -.. csv-table:: "sluices": "https://demo.lizard.net/api/v4/sluices/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - name, character varying - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - last_modified, timestamp with time zone - -.. csv-table:: "wastewatertreatmentplants": "https://demo.lizard.net/api/v4/wastewatertreatmentplants/", - :header: column_name, data_type - - id, integer - organisation_id, integer - created, timestamp with time zone - code, character varying - name, character varying - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - last_modified, timestamp with time zone - -.. csv-table:: "weirs": "https://demo.lizard.net/api/v4/weirs/", - :header: column_name, data_type - - id integer - organisation_id, integer - created, timestamp with time zone - code, character varying - crest_type, smallint - crest_width, double precision - crest_level, double precision - name, character varying - lat_dis_coeff, double precision - angle, double precision - allowed_flow_direction, integer - controlled, integer - comment, text - discharge_coeff, double precision - image_url, character varying - geometry, USER-DEFINED - end, timestamp with time zone - start, timestamp with time zone - num_timeseries, integer - type, smallint - last_modified, timestamp with time zone - -Time Series -=========== - -Time series in Lizard represent in situ measurements and hindcasts/forecasts of processes in the physical environment. - -A time series object is always related to a location object, which is in turn optionally linked to an asset. -By clicking an asset in the Lizard Viewer a list of related time series objects is fetched which can be visualised. - -The storage of time series data and the presentation in the API are focussed on high performance and retrieving relevant information out of it. -There are multiple options for making aggregations and deriving statistics. - -Value Types ------------ - -Lizard time series can have different value types. The following value types are supported: - -Numerical|Integer and float -Alphanumerical|Text -Images|PNG and JPG -Files|E.g. PDF - -Series of numerical values and images can be visualised in the Lizard Viewer. Text values and Files can only be retrieved or downloaded from the API. - -Aggregation options -------------------- - -Time series can consist of many data points, making it difficult to handle when interested in longer periods of time. -The Lizard API has several options to aggregate the bulk data to make it manageable for presentation in clients or for analysis purposes. - -In the API there are two parameters that can be used for aggregating time series. -First there is the window parameter to determine what is the interval of the retrieved (aggregated) data. -Options are: - -- raw -- 5min -- hour -- day -- week -- month -- year - -Field parameters ----------------- - -The timeseries events sub-endpoint returns the raw values. It is also possible to retrieve aggregated values, in the aggregates sub-endpoint. -With the fields parameter many statistics can be retrieved. Multiple fields can be requested in one call. - -Options are: - -- min -- min_timestamp -- max -- max_timestamp -- avg -- count -- first -- first_timestamp -- last -- last_timestamp -- nans -- sum - -For more options in requesting time series see the API endpoint: https://demo.lizard.net/api/v4/timeseries/{timeseries_uuid}/aggregates/ - -Labels -====== - -Labels consist of three elements that are available through our API: LabelTypes, Labels and LabelParameters. -Labels are always linked to an organisation. -Each element is explained below. - -LabelTypes ------------ - -LabelTypes can be found on the LabelType-endpoint ``_ and describe the type of Label. -LabelTypes contain the following fields: - -* name: name of the LabelType -* description: description of the LabelType -* uuid: unique ID for the LabelType -* organisation: organisation that owns the LabelType -* created: date when LabelType was created -* object_type: the type of Asset related to the LabelType -* last_modified: date when LabelType was last updated -* source: source of the LabelType e.g. a GeoBlock - -Labels --------- - -The Labels related to a specific LabelType can be found on the Labels-endpoint ``_. -Labels contain the follow fields: - -* label_value: the index value of the Label -* object_type: the type of Asset related to the Label -* object_id: id of the Asset -* created: date when the label was created -* start: start of the validity of the Label (history of the Label) -* end: end of the validity of the Label (history of the Label) -* extra: this field can be used to show variables related to the definition of the Label (for instance a threshold value related to the Label) - -LabelParameters ------------------ - -The Label parameters is developed to store parameters that are used in the computation of the Label. -LabelParameters are linked to LabelTypes and Assets and can be found on the LabelParameters-endpoint ``_. -LabelParameters contain the following fields: - -* label_type: the related LabelType -* value: value of the parameters -* name: name of the parameter -* object_type: the type of Asset related to the LabelParameter -* object_id: the ID of the Asset related to the LabelParameter -* created: date when LabelParameter was created -* start: start of the validity of the LabelParameter (history of the LabelParameter) -* end: end of the validity of the LabelParameter (history of the LabelParameter) - -Label statistics ------------------- - -With the count filter on the Labels endpoint it is possible to query a histogram of all Labels of a certain LabelType or a histogram of Labels within a region (e.g. municipality). diff --git a/source/old_files/d_general.rst b/source/old_files/d_general.rst deleted file mode 100644 index 864e6fe..0000000 --- a/source/old_files/d_general.rst +++ /dev/null @@ -1,288 +0,0 @@ -================ -Data uploads -================ - -We support multiple types of data uploads. -Data can be uploaded manually, via the data management interface, or you can set up real-time data connections using the API. -We can also provide support on either manual or automatic data uploads. - -.. note:: - Please note that Lizard assumes the data to be in UTC - - -Rasters -=========== - -Requirements --------------- - -Your raster data has to be in the format of a single band, georeferenced TIFF (geotiff), with the following requirements: - -* **Geotiff should have valid projection** including transformation (EPSG code). All projections supported by proj4 are supported. -* **Geotiff should have a NODATA value**. -* **Geotiff should be single band**. RGB or multi-band is not supported. -* **Temporal raster datasets** with multiple timesteps **should be supplied with a single geotiff per timestamp** - - -Upload ------- - -You can supply your GeoTIFF’s in multiple ways: - -* Use the Data Management App -* Use the Lizard API -* Use the Lizard FTP - -Use of the Data Management App is fairly straightforward and is build upon our API. -If you want to upload larger raster datasets, please make use of our API. - - -Using the Data Management App -++++++++++++++++++++++++++++++ - -Once you have successfully created a raster store you will see the pop up below. - -.. image:: /images/c_dataexchange_03.png - -Choose upload data to browse your GeoTIFF’s. -When you want to add data to an existing raster store, click on the upload icon |uploadicon| in the list of existing Raster Stores. - -.. |uploadicon| image:: /images/c_dataexchange_04.png - -You can supply multiple rasters, Lizard will blend them together! Click “Save all Files” to start uploading your data. -Your GeoTIFF’s will be uploaded in a task. You can follow the status of the task by clicking “show asynchronous task”. - -.. image:: /images/c_dataexchange_05.png - -Using the Lizard API -++++++++++++++++++++ - -Below you find an example of how to upload a temporal geotiff in Python: - -.. code-block:: python - - import os - import shutil - import requests - import json - import time - from datetime import datetime, timedelta - - srcdir = r"" - tgtdir = r"" #Files are transfered here after being uploaded - base_url = 'https://demo.lizard.net/api/v4/rastersources/{}/data/' #Fill in rastersource__uuid - api_key = '' #Fill in personal API key of supplier account - - headers= { - "username": "__key__", - "password": "{}".format(api_key) - } - - file_id = 10000001 #Random counter - - for filename in os.listdir(srcdir): - print(filename) - f = open(os.path.join(srcdir, filename), 'rb') - files = {'file': f} - payload = {'file_id': file_id, - 'timestamp': '{}'.format( - datetime.strptime(filename.split('.')[0], - '%Y%m%dT%H%MZ' - ).strftime('%Y-%m-%dT%H:%M:00Z') - ) - } - #The upload request could be put in a try/except like the result check, to prevent disruptions - res = requests.post(url=base_url, - files=files, - data=payload, - headers=headers - ) - f.close() - #Check task result to know when to upload the next - task_url= res.json()['url'] - processed = False - while not processed: - time.sleep(4) #Can be adjusted based on average processing time per file - try: - task_res= requests.get(url=task_url, - headers=headers - ) - if task_res.json()['status'] == 'SUCCESS': - processed = True - except: - print('Error occurred') - shutil.move(os.path.join(srcdir, filename), - os.path.join(tgtdir, filename) - ) - file_id+= 1 - - -Time Series -============= - -Requirements ------------- - -Time series can be linked through their location to one of the vector data models listed :ref:`here `. - -Time series can be imported manually, by uploading a csv file in the timeseries management screen (see https://docs.lizard.net/c_timeseries.html) or via the API. - -Upload ------- - - -Using the Data Management App -++++++++++++++++++++++++++++++ - -The first line of the file should describe the column names, for example: - - -.. csv-table:: Example wcsv - :header: timestamp, value - - 2020-03-20T01:00:00Z, 3.14 - 2020-03-20T01:05:00Z, 2.72 - -The columns should contain: - -* **timestamp:** a timestamp in iso8601 format. -* **value:** value as either a float or integer number. - - -.. note:: - The upload will fail if there are duplicate timestamp - - - -Using the Lizard API -++++++++++++++++++++ - -Timeseries data can be supplied with a POST request to the timeseries data endpoint in the API (``/api/v4/timeseries/{uuid}/data/). -Interaction with the API can be done from e.g. Postman or Python. -User credentials should be included in the header and the data in the payload of the request. - -Value based timeseries -+++++++++++++++++++++++++++ - -This type of timeseries consists of integers, floats, float arrays or text. The body of the request is a JSON object with timestamps and values: - -.. code-block:: json - - { - "data": [{ - "datetime": "2019-07-01T01:30:00Z", - "value": 40.7 - }, - { - "datetime": "2019-07-01T02:00:00Z", - "value": 39.1 - } - ] - } - -File based timeseries -++++++++++++++++++++++ - -This type consists of images, movies or files. A single files is posted on a certain datetime, which is included in the header of the request. - -An example of an upload of an image using requests in Python: - -.. code-block:: none - - import requests - import datetime as dt - - now = dt.datetime.utcnow() - uuid = ‘385c08c5-a0cf-4097-a98f-b6f053ef32c6’ - url = 'https://demo.lizard.net/api/v4/timeseries/{}/events/'.format(uuid) - data = open('./x.png', 'rb').read() - res = requests.post(url=url, - data=data, - headers={ - 'Content-Type': 'image/png', - 'datetime': now.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), - 'username': 'jane.doe', - 'password': 'janespassword' - }) - -Assets -======= - -We support asset synchronisation. -This type of data feed has to be configured per customer. -Changes in location names, coördinates and new locations can be seen in Lizard as soon as the following day. - -Upload vectors as a shapefile ------------------------------ - -Assets can be uploaded to Lizard with shapefiles via the import form at /import. -These shapefiles contain information about assets or assets together with their nested assets (e.g. GroundwaterStations and their Filters). - -A shapefile can be uploaded as a zipped archive. -The zipfile should contain at least a .dbf, .shp, .sh and a .ini file. -In case of nested assets, these should be found in the same shapefile record (row) as their assets. -The following section provides an example of an .ini file for groundwater stations. - -Assets without nested assets -++++++++++++++++++++++++++++++++++++ - -An .ini file is used to map shapefile attributes to Lizard database tables, organisations and attributes. An .ini file consists of three sections: - - * **[general]:** indicates asset name to upload to and optionally organisation uuid. - * **[columns]:** maps lizard columns to shapefile columns - * **[default]:** optionally provide default values for columns - -This example .ini creates a new asset from each record of the shapefile, with: - - * A **code** taken from the ID_1 column of the shapefile; - * A **name** taken from the NAME column of the shapefile; - * A **surface_level** taken from the HEIGHT column of the shapefile; - * A **frequency** that defaults to daily; - * A **scale** that defaults to 1, which means this asset can be seen at world scale, when the asset-layer in Lizard-nxt is configured accordingly. - -Assets with nested assets -++++++++++++++++++++++++++++++++++++ - -In case of nested assets another section should be added to the .ini file: - - * **[nested]:** maps lizard columns to shapefile columns, it is possible to add multiple nested assets for one asset. - -A groundwater station with filters (its nested assets) would look like this: - -.. code-block:: none - - [general] - asset_name = GroundwaterStation - nested_asset = Filter - - [columns] - code = ID_1 - name = NAME - surface_level = HEIGHT - - [defaults] - frequency = daily - scale = 1 - - [nested] - first = 2_code - fields = [code, filter_bottom_level, filter_top_level, aquifer_confiment, litology] - -The **[nested]** categories describe: - - * **first:** indicates the first column in the shapefile that maps lizard columns to shapefile columns. This column and all columns to its right configure nested assets. The number of these columns should be a multiple (the number of maximum nested assets per asset) of the fields. - * **fields:** lizard-nxt fields. Each column in the shapefile (including the ‘first’) is mapped to these fields in order, without considering the shape column names. - -This example .ini creates (a) new nested asset(s) from each record of the shapefile, with: - -* A **link** to an asset that conforms to the asset as described in the `Assets without nested assets`_. -* A **code** taken from the 2_code column of the shapefile. And a new nested asset with a filter_bottom_level for each 5th column from that column onwards; -* A **filter_bottom_level** taken from the column directly next to the 2_code column of the shapefile. And a new nested asset with a filter_bottom_level for each 5th column from that column onwards; -* A **filter_top_level** taken from the column 2 columns next to the 2_code column of the shapefile. And a new nested asset with a filter_top_level for each 5th column from that column onwards; -* A **aquifer_confinement** taken from the column 3 columns next to the 2_code column of the shapefile. And a new nested asset with a aquifer_confinement for each 5th column from that column onwards; -* A **lithology** taken from the column 4 columns next to the 2_code column of the shapefile and each. And a new nested asset with a lithology for each 5th column from that column onwards - -You can copy paste this code in your own .ini file and zip it together with the shapefile. - - - diff --git a/source/old_files/d_qgisplugin.rst b/source/old_files/d_qgisplugin.rst deleted file mode 100644 index 2244b6d..0000000 --- a/source/old_files/d_qgisplugin.rst +++ /dev/null @@ -1,78 +0,0 @@ -================== -Lizard QGIS plugin -================== - -The Lizard QGIS plugin enables users to download their scenario results directly from the Lizard API -to their GIS environment and show WMS of raster results. -Here we describe how to install and use the plugin. - - -Installation -============ - -* Add the Lizard plugin repository - * Note: if you are using the `3Di Modeller Interface `_, you can skip this step. - * In the main menu click *Plugins* > *Manage and Install plugins* > *Settings* - * In the section *Plugin repositories*, click *Add* - * As details, fill in '3Di' as *Name*, and 'https://plugins.lizard.net/plugins.xml' as *URL* - -* Install the Lizard plugin - * Click on the tab *All* - * In the search bar at the top, search for Lizard - * Select Lizard in the panel in the middle - * In the bottom-right of the dialog, click *Install plugin*. - -Initial setup -============= - -When starting the plugin for the first time you are prompted to provide some settings that are required. -In the following screen you need to provide: - -* The base URL of the Lizard portal you want to use. This will typically be *your_organisation*.lizard.net. - -* A Personal API Key. If you already have an API Key, you can fill it in by clicking "Set...". If you do not have a Personal API Key yet, follow these steps. - - * Click "Obtain..." You will be redirected to the management page where you can create a new Personal API Key. - - * Create a new Personal API Key by pressing the + NEW ITEM button in the upper right corner. - - * Fill in a name for the new Personal API Key. Click on ‘Submit’ to the right. - - * You now have your own Personal API Key. Copy it. - - * Return to QGIS / the 3Di Modeller Interface. - - * Click Set… and paste your Personal API Key. Then click Save. - -.. image:: /images/d_qgisplugin01.png - - -Scenario archive browser -======================== - -The Lizard plugin currently contains the Scenario archive browser (to be extended with more functionality). - -* Select a scenario from the list, which can be filtered by scenario name. - -After selecting a scenario, you have two options: - -* Retrieve downloadable results (raw results and non-temporal rasters) - - * Select the results of interest - - * [Optional] Set nodata value and projection that the downloaded rasters should get. - - * Start the download - - * Follow the progress at the top of the QGIS main window. - -* Add raster results to your project as WMS layers - - * Use the `Temporal Controller` to animate temporal raster results (e.g. water depth) - -.. note: - - Downloading temporal rasters is not supported at the moment. To visualize them in QGIS or the 3Di Modeller Interface, add them as WMS and use the `Temporal Controller` to navigate through its time steps. - -.. image:: /images/d_qgisplugin02.png - diff --git a/source/old_files/e_catalog.rst b/source/old_files/e_catalog.rst deleted file mode 100644 index e84454b..0000000 --- a/source/old_files/e_catalog.rst +++ /dev/null @@ -1,255 +0,0 @@ -========= -Catalogue -========= - -General -======== - -The Lizard Catalogue offers insight in the data that are available for your organisation. - -You can reach the Catalogue via the following url: -https://demo.lizard.net/catalogue/ or {yourorganisation}.lizard.net/catalogue/ - -.. image:: /images/e_catalog_00.png - -For now, the Catalogue covers these three datatypes: - -* **Raster** Raster layers in Lizard (not included are rasters from 3Di scenarios) -* **WMS layer** Wms layers in Lizard -* **Time series** Time series and monitoring networks - -There is an extensive search option to make the data easily accesible. -Every data layer will show available metadata. -From the Catalogue you have the option of opening the data layers via the API or via the Lizard Viewer. - -Filter --------- - -On the left side of the Catalogue app you can find several ways of filtering the data layers you have access to. -There are three different ways to filter, Organisation, Layer Collection or Observation type. -Per filter there is a list of all possible options. - -.. image:: /images/e_catalog_03.png - -You can also use the search bar per filter to directly enter what you want to filter on. - -.. image:: /images/e_catalog_04.png - -Export, Basket and login -------------------------- - -In the top right you see the following buttons: - -.. image:: /images/e_catalog_07.png - -**Export** -Available and running exports will appear here - -**Basket** -Using the Basket makes it easy to make different combinations of data layers to show in Lizard. -To the left of the data layers are selection boxes. -Click these boxes to make a selection from one or several data layers. -After making the selection click the 'Add to basket' button in the lower right corner of the data layers overview. -At the top right corner of the Catalogue you will see that the Basket button now shows the number of selected data layers. -Opening the basket gives an overview of all selected layers, and a button to 'Open all data in Lizard'. -This will open a new window for Lizard, with all the selected data layers opened. - -**Login** -If you are logged in, you will have access to data that is common, or private and shared with your organisation. -Also, you have to be logged in to be able to export. - -Rasters -========= - -When you open the Catalogue and choose 'Raster' in the top left, you will see an overview of all the layers you have access to. -It will show a list of 10 items, with the option to click through to other pages. -At the top of the screen there is a search bar. -Using search terms that are in the Name or the Description of the data layer you can more easily find specific data layers that you might be interested in. - -The following information is visible in this overview. - -* **Type** The type of data. A normal raster, or a temporal raster. -* **Name** Name of the data layer. -* **Organisation** To which organisation the data layer belongs. -* **Description** A short description of the data contained within the data layer. -* **Latest update** When the data layer was last updated. -* **Access modifier** Divided into Public, Common and Private. - -.. note:: - Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. - -.. note:: - Not included are rasters from 3Di scenarios - -Details --------- - -Once you have selected a data layer, you will find detailed information about the layer in the panel on the right. -Here it will show a map of the area and a visualisation of the data. -Below the map there is a table with detailed meta information about the data layer. -If you want to visualise the layer in your Viewer or if you want to use it for data science purposes you can either choose to open it in the Viewer or the API. - -.. image:: /images/e_catalog_05.png - -Lizard WMS Service for rasters --------------------------------- - -When you filtered on “Layer Collection” a Lizard WMS GetCapabilities link appears in the list of meta data of the raster. -You can use this link to visualise the raster in external applications such as QGIS or ESRI applications. - -For more infomation, please consult the WMS Services. - -Exporting ----------- - -Select the raster you would like to export. -Click on the Export button in the action menu. - -.. image:: /images/e_catalog_06a.png - -The Export Selection window will pop up. -Follow the steps: -- Choose a preferred projection of the output GeoTIFF. -- Choose the pixel size (resolution) of the output GeoTIFF. -- Choose a preferred tile size. - -You can export 3 tiles at a time. -Click on Download selected cells. -A task will be started in the background. -Once your GeoTIFF's are ready you will receive a notification in the Export dropdown menu in the green bar. - -.. image:: /images/e_catalog_06b.png - - -WMS layers -============= - -When you open the Catalogue and choose 'WMS layer' in the top left, you will see an overview of all the wms layers you have access to. -It will show a list of 10 items, with the option to click through to other pages. -At the top of the screen there is a search bar. -Using search terms that are in the Name or the Description of the data layer you can more easily find specific data layers that you might be interested in. - -The following information is visible in this overview. - - -* **Name** Name of the wms layer. -* **Organisation** To which organisation the data layer belongs. -* **Description** A short description of the data contained within the data layer. -* **Access modifier** Divided into Public, Common and Private. - -.. note:: - Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. - -Details --------- - -Once you have selected a wms layer, you will find detailed information about the layer in the panel on the right. -Here it will show a map of the area and a visualisation of the data. -Below the map there is a table with detailed meta information about the data layer. -If you want to use the layer in your Viewer or if you want to use it for data science purposes you can either choose to open it in the Viewer or the API. - -.. image:: /images/e_catalog_08.png - -Action menu ------------- - -.. image:: /images/e_catalog_09.png - -You can download the wms directly, open it in the Viewer or in the API or analyse the wms layer in another application linking to Lizard. -You can use this link to visualise the raster in external applications such as QGIS or ESRI applications. - -For more infomation, please consult the :doc:`WMS Services`. - -Time series and monitoring networks -==================================== - -When you open the Catalogue and choose 'Time series' in the top left, you will see an overview of all the layers you have access to. -It will show a list of 10 items, with the option to click through to other pages. -At the top of the screen there is a search bar. -Using search terms that are in the Name or the Description of the data layer you can more easily find specific data layers that you might be interested in. - -The following information is visible in this overview. - -* **Monitoring network** Name of the data layer. -* **Organisation** To which organisation the data layer belongs. -* **Access modifier** Divided into Public, Common and Private. - -.. note:: - Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. - -In monitoring networks, you can group timeseries. This can be done for example by grouping them by observation type or by source. - -.. note:: - New monitoring networks can be added via https://demo.lizard.net/api/v4/monitoringnetworks/ or {yourorganisation}.lizard.net/api/v4/monitoringnetworks/ or with the help of a consultant. In the near future, time series can be managed via the management screens. - -Details --------- - -Once you have selected a monitoring network, you will find detailed information about the dataset in the panel on the right. -Here it will show a map of the area and a visualisation of the data. -Below the map there is a table with detailed meta information about the data layer. - -.. image:: /images/e_catalog_10.png - -Action menu ------------- - -In the action menu, you can export the timeries you are interested in or open it in the Viewer or in the API. -You can filter on the observation type, which time series have data in a certain period and/or on location. - -First choose "Select time series". - -.. image:: /images/e_catalog_11.png - -Below you see a screenshot of all locations with time series for monitoring network KNMI weerstations without filtering. - -.. image:: /images/e_catalog_12.png - -Below you see a screenshot of all locations with time series with observation type 'windsnelheid' and that have data between 14 and 16 March 2021. -Then location Bilt is manually selected (by clicking on a dot or use the search bar) and ready to export or view in the API or in the Viewer. - -.. image:: /images/e_catalog_13.png - -Scenarios -============== - -When you open the Catalogue and choose 'Scenario' in the top left, you will see an overview of all the scenarios you have access to. -It will show a list of 10 items, with the option to click through to other pages. -At the top of the screen there is a search bar. -Using search terms that are in the Name or the Description of the data layer you can more easily find specific data layers that you might be interested in. - -.. image:: /images/e_catalog_14.png - - - -The following information is visible in this overview. - -* **Name** Name of the data layer. -* **Model name** Name of the model the scenario is based on. -* **Organisation** To which organisation the data layer belongs. -* **Last update** When the data layer was last updated. -* **Access modifier** Divided into Public, Common and Private. - -.. note:: - Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. - - -Details --------- - -Once you have selected a data layer, you will find detailed information about the layer in the panel on the right. - -.. image:: /images/e_catalog_15.png - - -Action menu ------------- - -In the action menu, you can open the scenario in the Viewer or in the API. - -Results ------------- - -In the results menu, you can download the results. - -.. image:: /images/e_catalog_16.png \ No newline at end of file diff --git a/source/old_files/e_dashboard.rst b/source/old_files/e_dashboard.rst deleted file mode 100644 index d2b3acb..0000000 --- a/source/old_files/e_dashboard.rst +++ /dev/null @@ -1,50 +0,0 @@ -========= -Dashboard -========= - -Manage, control and keep track with Lizard Dashboards. -Lizard Dashboards can offer key insights that help decision makers make data driven decisions. -Alarms can be configured to detect anomalies and inform stakeholders via SMS or e-mail to take action. - -You find an overview of your dashboards on the My Dashboards page that can be reached via {yourportal}.lizard.net/dashboards. -You can give the dashboards a description that will be visualized on the My Dashboards page. -You can also tag your Dashboards using #. - -.. image:: /images/e_dashboard_01.png - -Make sure to login via the |loginbutton| in the upper right corner. - -.. |loginbutton| image:: /images/e_dashboard_02.png - -No Lizard Dashboards yet? Contact us via info@lizard.net to learn more about the possibilities of Lizard Dashboards for your organisation. -For now you can use the Demo Dashboard to explore the possibilities yourselve. - -The Demo Dashboard can be reached via: -https://demo.lizard.net/dashboards/ - -Click on Lizard Demo Dashboard to continue to the dashboard. - -.. image:: /images/e_dashboard_03.png - -You're able to visualize the logo of your organisation in the upper left corner of the Dashboard to give it a more personal look and feel. -Furthermore you're able to change the colors & size of the dashboard tiles. -Important tiles can be more prominent than others. - -Via the |settings| button you can change the settings of your dashboard. -You can change the date-time settings or switch background layers - -.. |settings| image:: /images/e_dashboard_05.png - -.. image:: /images/e_dashboard_04.png - -There are several data types that can be visualized in a tile: - -* Static or temporal rasters -* GeoBlocks results -* Time series -* Vectors -* HTML reports -* Embedded websites - -You can click on a tile to open the tile in full-screen mode. -In full screen mode you can also access the legends of the information shown in the map tiles. \ No newline at end of file diff --git a/source/old_files/e_lizardwms.rst b/source/old_files/e_lizardwms.rst deleted file mode 100644 index e4c2b61..0000000 --- a/source/old_files/e_lizardwms.rst +++ /dev/null @@ -1,104 +0,0 @@ -============ -WMS Services -============ - -Lizard provides a Web Map Service (WMS) that you can use to visualise rasters and 3Di scenarios stored in Lizard Raster Server as tiled images. -The Lizard WMS Service follows the `OGC WMS guidelines `_. - -Rasters -======= - -To visualise and request the GetCapabilities of a specific raster you can use the following URL: - -``https://{yourportal}.lizard.net/wms/raster_{UUID of raster}/?request=GetCapabilities`` - -for example: -https://demo.lizard.net/wms/raster_eae92c48-cd68-4820-9d82-f86f763b4186/?request=GetCapabilities - -You can easily find the UUID of the raster in the `Lizard Catalogue `_ or `API `_. -The Lizard Catalogue also provides the Lizard WMS GetCapabilities link for each raster. -With the GetCapabilities query parameter you retrieve the metadata of the service, including supported operations, parameters and a list of available layers. - -3Di Scenarios -============== - -To visualise and request the GetCapabilities of a 3Di scenario (list of rasters) you can use the following URL: - -``https://{yourportal}.lizard.net/wms/scenario_{UUID of scenario}/?request=getcapabilities`` - -For example: -https://demo.lizard.net/wms/scenario_c30ef7f2-c871-4d70-a087-8f078f9ebafd/?request=GetCapabilities - -You can look up the UUID of the scenario using the `Scenarios endpoint in the Lizard API `_. -All available filters are listed on the endpoints’ page. E.g. you can look up a scenario and it’s uuid by filtering on your own username. -With the GetCapabilities query parameter you retrieve the metadata of the service, including supported operations, parameters and a list of available layers. - -Layer collections -====================== - -To visualise and request the GetCapabilities of layer collections (list of rasters, previously called 'datasets') you can use the following URL: - -``https://{yourportal}.lizard.net/wms/{slug of layer collection}?request=GetCapabilities`` - -For example: -https://demo.lizard.net/wms/basiskaarten/?request=GetCapabilities - -You can search for layer collections in the Lizard Catalogue by using the Layer collection filter in the left panel. -You will find the Lizard WMS GetCapabilities URL of the layer collection in the metadata panel of a specific layer. - - -.. _WMSauthAnchor: - -Authorisation -============= - -The Lizard WMS Service follows the authorisation system mentioned under :ref:`Authorisation`. -If layers are private you need privileges in the organisation that owns the data. - -Use a Personal API Key to authenticate with the Lizard WMS Service, as described in :ref:`API Authentication`. - -In QGIS the authentication is filled in as follows: - -- username = __key__ -- password = Personal API Key - - -How to load WMS in GIS -======================= - -You can connect directly to Lizard in a GIS application like QGIS. - - -* 1 - -Open QGIS and load a new WMS connection. - -.. image:: /images/e_qgis_wms1.png - - -* 2 - -Give the connection a name and copy the wms link from 'https' to 'GetCapabilities', e.g. "https://maps1.klimaatatlas.net/geoserver/twn_klimaatatlas/wms/?request=GetCapabilities". - -.. image:: /images/e_qgis_wms2.png - - -* 3 - -If the wms layer is not public, you have to enter your :ref:`Credentials`. in the Authentication - Basic tab. - - -.. image:: /images/e_qgis_wmslogin.jpg - - -* 4 - -Click OK and double click on the connection. If multiple layers appear, double click on the one you are interested in. - -.. image:: /images/e_qgis_wms3.png - - -.. image:: /images/e_qgis_wms4.png - -The styling will automatically be taken from Lizard. -If the layer is temporal, you can also navigate through time. diff --git a/source/old_files/e_viewer.rst b/source/old_files/e_viewer.rst deleted file mode 100644 index 5f74043..0000000 --- a/source/old_files/e_viewer.rst +++ /dev/null @@ -1,491 +0,0 @@ -====== -Viewer -====== - -The Lizard Viewer is a graphical user interface (GUI) in which measuring locations, parameters, time series, rasters and other layers are visible. -Below you will find an overview of a general Lizard Viewer instance. -Every aspect of the viewer will be discussed and in the end we will supply a series of short tutorials designed to kick-start your Lizard experience. -These are short and simple explanations of commonly used features that might require a short explanation. -If you are struggling with any of the features, feel free to contact the `service-desk `_ for guidance. - -Elements Overview -=================== - -The Lizard Viewer can be divided into 4 sections, with each their own elements. -We will handle items within a section from left to right, top to bottom: - -1. The Top-bar: - - * 1.1: Lizard Menu - * 1.2: Search Bar - * 1.3: Map / Graph - * 1.4: Settings and Login - -2. The Viewport - - * 2.1: Select Menu - - * 2.1.A: Cursor - * 2.1.B: Point - * 2.1.C: Line - * 2.1.D: Polygon - * 2.1.E: North-South - * 2.1.F: Hotkeys - - * 2.2: Time Panel - - * 2.2.A: Datetime - * 2.2.B: Time Frame Selection - * 2.2.C: Expand / Collapse - * 2.2.D: Time-bar - * 2.2.E: End / Start Date - * 2.2.F: Zoom Functions - -3. The Left Panel - - * 3.1: Minimize - * 3.2: Layers button - * 3.3: Add new x - * 3.4: Layers, assets and selections overview - - * 3.4.A: Assets and selections - * 3.4.B: Layers - - * 3.5: Base layer - -4. The Right Panel - - * 4.1: Minimize - * 4.2: Layer details - - * 4.2.A: Legend - * 4.2.B: Controls - * 4.2.C: Export raster - * 4.2.D: Catalog - - * 4.3: Asset and selection details - - * 4.3.A: General information - * 4.3.B: Time series data selection - * 4.3.C: Time series data display - * 4.3.D: Time series export function - * 4.3.E: Controls - -.. image:: /images/e_overview_01.jpg - -1. Top-Bar --------------------- - -.. image:: /images/e_topbar_01.jpg - -**1.1 Lizard Menu** -^^^^^^^^^^^^^^^^^^^^^^^^^^ -The Lizard gives acts as a shortcut to the homepage. At the homepage you can find the catalogue, the viewer, the management page and the API. -At the homepage there are also apps available, for example dashboards or FloodSmart. -At the bottom there are some useful links, like the documentation and support links. - -**1.2 Search Bar** -^^^^^^^^^^^^^^^^^^^^^^^^^^ -At the search bar you can lookup items or locations, depending on the setting used. -The right side of the search-bar displays the currently selected option. -Clicking results in a drop-down menu with the available search options; currently assets or addresses. -A location search will move the viewport to the desired location. -The search of an asset will add the asset to the selection panel (left), select the asset and move the screen accordingly. - -**1.3 Mode change** -^^^^^^^^^^^^^^^^^^^^^^^^^^ -The mode change buttons allow you to switch between map and graph mode. -It should be noted that it is not possible to display graphs if no assets or selections of temporal rasters are provided. - -**1.4 User menu** -^^^^^^^^^^^^^^^^^^^^^^^^^^ -Offers a drop-down menu in regards to links, support tools, settings and the login. - -.. image:: /images/e_usermenu_01.jpg - -There is a link to the homepage available under ``home``, and a link to the documentation at ``help``. - -To get familiar with the entire viewer one can use the ``Start a tour`` button. -This button will start a 'tour', during which the functionality of the viewer is introduced and explained briefly. -The tour has a lot of functionality, allowing you to move forward and backward through the items. -Furthermore, once confident you can skip the rest of the tour or if you would close the tour screen it can be resumed by clicking on the pulsing blue dot. -If the tour is skipped at any point it can be restarted by using the ``Start a tour`` button once more. - -Clicking ``Export`` will take you to the exports overview. -In this overview you can see the status of your exports and download or delete any available exports. - -Next up is ``favourites``, which will open the favourites overview screen. -Similar to a bookmark, favourites allows you to save the current view, in both map and graph mode, to be saved. -This includes the view-box, the layers and assets and time frame. -This 'favourite' can then be loaded from the menu to quickly re-access the saved view. -By using the option ``make time relative`` the user is able to determine if a favourite should remain static, or adjust based on the time past. - -We then find two language options: ``EN`` for English and ``NL`` for Dutch. -Clicking on between the EN and NL buttons will swap the language settings for the entire Lizard Viewer. - -Finally we find the ``Reset Application`` and ``Login`` / ``Logout`` buttons. -``Reset Application`` as the name suggests resets the Lizard Viewer. -This can be useful when you want to have a clean slate to work in. - - -2. Viewport --------------------- - -The viewport is the section of the screen used to view the map and your results. -There are two ways to interact with the viewport: - -1. With the selection tool -2. With the time-bar - -.. image:: /images/e_viewport_01.jpg - -**2.1 Select Menu** -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The select menu determines the way you interact with the layers with the cursor and is found at the top of the viewport. -There is a variety of options to choose from. -At all times you are able to move the view through dragging. - -.. tip:: - If you hold CTRL while dragging you turn the angle of the viewport. - -.. image:: /images/e_selectmenu_01.jpg - -2.1.A: Cursor - -The Cursor when selected allows you to select individual assets by clicking on them. -If you want to select multiple assets, CTRL has to be pressed while clicking. - -2.1.B: Points - -Allows you to create one or multiple points that display the value of a raster, or the time series for temporal rasters. -As a default only one point can be created. This way clutter is avoided. -If you are interested in using multiple points you could use CTRL-clicking to add multiple point assets. - -2.1.C: Line - -Able to create a straight line. -If you click once you start the line placement. -The second click will complete the line. -If instead of selecting a different point, you re-click the start, the line placement will be cancelled. -Could be used to examine the slope of a hill or mountain. -With CTRL-clicking one can create multiple lines. - -2.1.D: Polygon - -The polygon method allows the user to create figures with 3 or more corners. -By re-clicking on the previously defined corner you cancel it. -It allows you to inspect the statistics of a certain area. -Like what percentage of the selected area consists of a certain land-use type. - -2.1.E: North-South - -If you used CTRL+dragging to move the angle of the screen you can use this button to return the view to top-down North. - -2.1.F: Hotkeys - -There are multiple hotkeys within the drop-down menu. -Every shortcut can be accessed by clicking on it, or using the key that is displayed on the right side. - -.. image:: /images/e_shortcuts_01.jpg - - -* Zoom-in [+]: Zooms in for the viewport -* Zoom-out [-]: Zooms out for the viewport -* Toggle baselayer labels [L]: Toggles the labels within the baselayer, like names of locations. -* Full Map [F]: Toggles the right and left panel to provide a full view of the map. -* Show Time Period [T]: Toggles the time-bar in the bottom. - - -**2.2 Time Panel** -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The time panel is related to all things time. -It is located at the bottom of the viewport. - -.. image:: /images/e_timepanel_01.jpg - -The time panel has a few mentionable items: - -2.2.A: Datetime Display - -The datetime display shows you the time frame that is currently viewed on screen. - -2.2.B: Time Period Selection - -The time period selection tool in the upper-left corner of the panel allows you to select the time period you would like to view in the time-bar. -There are a few standard settings, like one day ``1D``, a week ``7D``, a month ``1M``, a year ``1Y`` or five years ``5Y``. -These will all show you the time frame between now and the time period. -Thus 1D will for the 27th of September 2023 12:05 will the time from 26/09/2023 12:05 till 27/09/2023 12:05. - -The ``MAX`` and ``NOW`` button function slightly differently. -When one clicks ``NOW`` the time-bar centres on the present time, with one day in advance and one day prior forming the time-bar edges. -The ``MAX`` button zooms to the time span of the entire data set available. - -.. note:: - ``MAX`` results in a view of the entire time frame during which data can be found for the **selected** layers. - -2.2.C: Expand / Collapse - -The ``Expand / Collapse`` button can be found in the top-right corner. -It allows the user to minimize the time panel in two steps: - -1. The first time you use click the button: - - * The zoom functionality will be removed from the bar together with the time period selection - * The time period selection buttons are removed - -.. image:: /images/e_minimize_01.jpg - -2. The second button fully minimizes the panel: - - * The time-bar itself is removed - * The start and end dates of the interval have been removed - * The datetime date display becomes the current view date and remains visible - -.. image:: /images/e_minimize_02.jpg - -2.2.D: Time-bar:: -The time-bar displays the time interval of interest. -If a layer has been selected, the data from this time period will be displayed in the right panel. - -.. tip:: - Support ``SHIFT-click`` dragging functionality to zoom into a selection of the time-bar. - -.. tip:: - It is also possible to zoom in or out of the temporal time frame with the ``Scroll`` button on the mouse. - - -2.2.E: End / Start Date - -At the edges, just below the time-bar, you will find the interval between which the data is displayed in the right panel. -For animations, this will be the start and end date. -You are able to adjust these dates in a multitude of ways. -One is to scroll in the time-bar itself. -Dependent on the level of initial zoom the addition or removal of the dates can range from single minutes to multiple years, the build up is gradual. - -Another way to update the dates on one side is clicking on the datetime and using the calendar to select a date (and possibly a time). - - -2.2.F: Zoom Functions - -All the way at the bottom within the middle of the time panel you will find the zoom-buttons. -Logically, the magnifying glass with a ``+`` icon is the zoom-in, with the ``-`` representing the zoom-out functionality. - - -3. Left Panel --------------------- - -.. image:: /images/e_leftpanel_01.jpg - -**3.1 Minimize** -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Allows you to move the side panel of the screen so you have complete better of the map itself. - -.. image:: /images/e_minimize_03.jpg - -**3.2 Layers Button** -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The layers button displays the number of layers that are currently available within the left panel. -By clicking this button all layers are selected, if all layers are selected it functions as a de-select all button. - -**3.3 Add new x** -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Opens a window that allows you to select a new: - -- Layer -- Asset -- Asset set -- WMS layer -- Scenario - -.. image:: /images/e_addmenu_01.jpg - -In the menu that opens after clicking the ``+``-icon you are able to select what kind of data category you would like to add to your selection. - -.. image:: /images/e_addraster_01.jpg - -An example of how your screen could look if you wanted to add a layer of the type 'raster'. - -3.3.A: Home - -If one would like to switch to a different category the home button in the top left corner can be pressed. -This will bring you back to the category selection screen. - -3.3.B: Search bar - -You can search within any category with the search bar at the topside of the pop-up window. -This can be combined with category selections to create a more selective overview. - -3.3.C: Filters - -Within each of the categories there is a variety of filters to apply. -Examples are: - -* Organisation -* Observation type -* Layer collection -* Asset type - -3.3.D: Results - -This is the panel where the results of your search query are returned. - - -**3.4 Layers, assets and selections overview** -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Allows you to change which layers and/or assets are visible, and their order. - -.. image:: /images/e_assetsrasters_01.jpg - -3.4.A: Assets and selections - -the top part of the panel is reserved for assets and selections. -Often a graph of the data found on a line, point or region can be displayed in a graph. -Layers only have legends, separating the two. -Because of this additional attribute as a default only one asset or selection will be active. -Clicking another asset will de-select the previously selected asset. - -.. tip:: - You can select multiple assets with CTRL-clicking. - -3.4.B: Layers - -Below the gray line layers can be found. -Layers comprise of all categories except individual assets or selections. -Selecting a layer without the use of CTRL will not result in de-selection of previously selected layers. -Selections will interact with the selected layers, allowing you to view time series of temporal rasters, or values found within a region. - -**3.5 Baselayer** -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The lowest part of the left panel is related to the base map. -By clicking on the layer icon, you are able to alter the base layer. -The different layers that are available are: - -- Topography -- Satellite -- Neutral -- Dark - - -4. Right Panel --------------------- - -**4.1 Minimize** -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Just like the left panel, the right panel is equipped with a minimize button to give you more access to the map layer. -By combining the minimize of the time-bar and both panels you are left with a full map view. - -.. image:: /images/e_minimize_04.jpg - -.. note:: - The `Full Map` shortcut only minimizes both panels, not the time-bar. - -**4.2 Layer details** -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Every selected layer is shown in the right panel with additional details visible below. - -.. image:: /images/e_rightraster_01.jpg - -4.2.A: Legend - -Displays the raster values. This might be a value scale for scalar data, but it could also possibly be classes for things like land-use. - -4.2.B: Controls - -- Opacity: How translucent is the layer. Can be set anywhere from 0 to 100 percent. -- Zoom to extent: Allows the user to zoom to the full extent of the layer. -- Rescale color range: Depending on extent of the view the color scale can be adjusted. An example for when this would be very useful would be when zooming in of a height map, adjusting the scale will give you a much better view. -- Animate: Animates temporal rasters for you to view the change through time. - -4.2.C: Export raster - -Opens the raster export view pane. -There is quite a lot to this view, an overview is available below. - -.. image:: /images/e_export_01.jpg - -In the export view you will find information about: - -- Layer name -- Organisation name -- Projection -- Pixel size -- No data value (optional) - -While the layer and organisation are always set in stone (depending on which layer you decide to export), the other settings are changeable. -The projection determines the unit for the pixel size, with some having degrees as a unit and others having meters. -You have the options to either export the full raster, or to make a selection with the ``draw rectangle`` tool in the bottom right corner. -If you select a region, but are unhappy, you are able to click the red bin icon to remove the selection. -There is a limited amount of pixels you are able to export, this is to limit the size of the returned file and the time it takes to download the file. -The cap is at 10.000.000.000 pixels. - -.. image:: /images/e_exporterror_01.jpg - -4.2.D: Catalog - -The ``Open in Lizard Catalog`` brings you to the lizard catalog, allowing you to see aspects of the raster layer unavailable in the viewer. -It also allows the user to quickly access the API of the respective layer. - - -**4.3 Assets and selection details** -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Every asset or selection shows its details in the right panel, they stack on top of the layer details. - -.. note:: - The order of the assets and layers in the left panel determines the order within the right panel. - -.. image:: /images/e_rightasset_01.jpg - -4.3.A: General information - -Immediately under the asset general information is available, some examples: - -- Assets: name, code, type, capacity, station type -- Selections: label, coordinates, length or area. - -Next to the general information there is also information in relation to the raster layers selected. -If a height raster would be selected (or any other continuous value raster) a point would return the value of the pixel, a line provides a graph of the value across the line and a polygon returns a distribution curve. -For a raster with categories like soil types a point returns the category found underneath the point, a line returns nothing and a polygon returns a pie-chart with percentages every category has within the polygon. - -.. tip:: - Hover over classes within a pie-chart to see more information - -The information depends on the asset or selection type. - -4.3.B: Time series data selection - -Right below the time series label a drop-down menu is available. -Within the drop-down field you will find all the data available for the asset. - -4.3.C: Time series data display - -A graph displaying the selected data type for the time interval displayed on the time-bar. -There are many ways to interact with the time frame of the graph: - -1. Click-dragging in the graph itself, this will zoom in to the time range selected. -2. Interacting with the time-bar through any of the methods discussed in section 2.2 - -4.3.D: Time series export function - -The ``Export time series`` button exports all information in the time series for the selected time period (within the time-bar). -The export can be found in the user drop-down menu in the top-right corner. -The time series is given in an Excel file. - -4.3.E: Controls - -In the controls section we have options that have been discussed prior like: - -- Opacity: How translucent is the layer. Can be set anywhere from 0 to 100 percent. -- Zoom to extent: Allows the user to zoom to the extent of the selection or asset. - - -Next up we will discuss the dashboards available within Lizard! diff --git a/source/old_files/f_alarms.rst b/source/old_files/f_alarms.rst deleted file mode 100644 index f0a67fc..0000000 --- a/source/old_files/f_alarms.rst +++ /dev/null @@ -1,88 +0,0 @@ -====== -Alarms -====== - -Lizard provides an alarm feature that sends notifications via sms or email when newly processed values of timeseries or temporal rasters exceed a threshold. -It is used to notify people of events that may require action, for instance an upcoming rain event or flood. - -The alarm management screens are found at https://demo.lizard.net/management/#/alarms. - -.. image:: /images/f_alarms_01.jpg - -The configuration has a variety of options to generate relevant notifications with messages that include the specifics of the event. - -Notifications -============= - -Behind the Notifications tile you find the overviews of existing raster and timeseries alarms for your organisation and their status (active/inactive). -The 'NEW ITEM' button leads you to the form to register a new alarm. -We go through some of the options that the system provides, to explain them in detail. - -Selecting a raster ------------------- - -Raster alarms are set on temporal rasters. These can be part of a scenario, a single source raster or a Geoblock. -An alarm is set for one point location intersecting this temporal raster. - -You can type in the field to search in the names of available rasters. Next, select the type of intersection (Point, Line or Polygon). -Draw the geometry on the map or insert a geometry in the JSON field below the map. - -For Line and Polygon intersections a spatial aggregation is needed to derive a timeseries that can be compared to the alarm thresholds. -The options are: - -* Sum -* Mean -* Min -* Max -* Median -* Count - -Selecting a timeseries ----------------------- - -Timeseries often do not have a clear name or code by themselves. -That is why we start with looking up the asset it relates to. -Once the asset is selected it should be easy to select the timeseries from the list of related objects. - -Relative start and end ----------------------- - -The user doesn't always want to receive alarms for the whole period of newly processed data. -For instance, for operational flood models which might have records of prior theshold exceedances, you may only be interested in receiving alarms for forecasted threaths. - -To only analyse the relevant part of your data you can set relative start and end. -They are set relative to The figure below gives a schematic overview of how this method works. - -.. image:: /images/f_alarms_02.jpg - -If these fields are left empty the trigger check is done on the complete data frame of newly processed data. - -Snoozing option ---------------- - -It can be considered undesirable for alarms to be triggered during brief spikes. -The snoozing option allows the user to determine the timeperiod a threshold should be exceeded before the alarm is triggered and a notification is sent. -This option is available for both the raising of the alarm and its withdrawal. Default is 1 (trigger at first occurrence). - -Contacts and Groups -=================== - -The recipients of alarm notifications are configured in the Contacts screen, with their phone number and/or email address. -Each contact can be part of multiple Groups, which in turn can be used in multiple alarms. -So no need to do a whole lot of data duplications of contact info. - -Templates -========= - -The notification messages are configured with Templates. -There is a difference in setting up Email and SMS Templates: - -* Email: Supports both plain text and HTML and are not limited in length -* SMS: Plain text with maximum length of 160 characters (after substitution of variables) - -You can use a number of variables to enrich the content of the notifications and make them applicable to different alarms. -The variables contain options for including the name of the receiver and details about the alarm at hand. - -The option "No further impact" determines that a message is used specifically to notify when an alarm is fully withdrawn. -This type of message can be set in addition to a standard message to let receivers know that the situation has settled down. -This often requires a different text and therefore a different Template. diff --git a/source/old_files/g_servicesupport.rst b/source/old_files/g_servicesupport.rst deleted file mode 100644 index ec286cb..0000000 --- a/source/old_files/g_servicesupport.rst +++ /dev/null @@ -1,59 +0,0 @@ -=================== -Self Service Portal -=================== - -Nelen & Schuurmans provide a Service Desk function via https://nelen-schuurmans.topdesk.net/, The Nelen & Schuurmans Self Service Portal shall be available 24/7. -The Service Desk giving support on all Lizard products for Lizard customers. -Customers can reach telephonic support (Prio 1) on working days from 09:00 - 17:00 (CEST) excluding the days declared as dutch public holiday close days. - -Customers shall report incidents primarily via the Self Service Portal but may also do so via email: servicedesk@nelen-schuurmans.nl. -This access should be used for, but not limited to: -* new incidents -* monitor service progress -* account requests -* malfunctions reports -* query, problem and defect reporting -* requests for general technical support -* submission of enhancement/feature requests - -All incidents relating to the Lizard software with the exception of enhancement/feature requests are recorded and followed up at no additional cost. - -================== -Priority incidents -================== - -The responsiveness of Nelen & Schuurmans is driven by the severity of an incident. -All incidents within the agreement can be subdivided into priorities. -There are three levels here. -Each level is based on an urgency. -The initiative for determining urgency lies primarily with the applicant. -The levels are: - -* **Prio 1 (high):** Lizard functionality is completely unavailable or inaccessible. The situation requires immediate attention. The work and/or management processes are hindered or the importance to the Client is large with no workaround possible. -* **Prio 2 (medium):** The work and/or control processes are hindered or the Client's importance is large, but a workaround is possible. -* **Prio 3 (low):** Not urgent. Lizard is impaired, a single function is impacted but key business processes are not interrupted. The problem causes minimal operational or business impact, a general technical question or enhancement request. - -================ -Feature requests -================ -Beyond the scope are enhancement/feature requests or questions about the use of Lizard in the organisation, -for which the customer can purchase an additional service. -For more info the customer can contact the local Lizard consultant or email to info@nelen-schuurmans.nl. - - - - -============================== -Frequently Asked Questions -============================== - -This section will be extended in the near future. - -.. |date| date:: - - -.. Note:: - This document will be revised periodically to reflect changes in the products and solutions being supported and the processes, - procedures and technologies being used to deliver support services. - The latest version of this document was created on |date|. - \ No newline at end of file From 282a38b939b1b6bab381dc4109b24645cfef1b49 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Tue, 20 Feb 2024 10:38:58 +0100 Subject: [PATCH 06/13] self_service_portal update --- source/d_self_service_portal.rst | 40 +++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/source/d_self_service_portal.rst b/source/d_self_service_portal.rst index 558e9d8..22efb83 100644 --- a/source/d_self_service_portal.rst +++ b/source/d_self_service_portal.rst @@ -2,4 +2,42 @@ Self Service Portal =================== -This page contains an explanation of the self service portal of Lizard! \ No newline at end of file +Self Service Portal +=================== + +Nelen & Schuurmans provide a Service Desk function via https://nelen-schuurmans.topdesk.net/, The Nelen & Schuurmans Self Service Portal shall be available 24/7. +The Service Desk giving support on all Lizard products for Lizard customers. +Customers can reach telephonic support (Prio 1) on working days from 09:00 - 17:00 (CEST) excluding the days declared as dutch public holiday close days. + +Customers shall report incidents primarily via the Self Service Portal but may also do so via email: servicedesk@nelen-schuurmans.nl. +This access should be used for, but not limited to: +* new incidents +* monitor service progress +* account requests +* malfunctions reports +* query, problem and defect reporting +* requests for general technical support +* submission of enhancement/feature requests + +All incidents relating to the Lizard software with the exception of enhancement/feature requests are recorded and followed up at no additional cost. + +Priority incidents +================== + +The responsiveness of Nelen & Schuurmans is driven by the severity of an incident. +All incidents within the agreement can be subdivided into priorities. +There are three levels here. +Each level is based on an urgency. +The initiative for determining urgency lies primarily with the applicant. +The levels are: + +* **Prio 1 (high):** Lizard functionality is completely unavailable or inaccessible. The situation requires immediate attention. The work and/or management processes are hindered or the importance to the Client is large with no workaround possible. +* **Prio 2 (medium):** The work and/or control processes are hindered or the Client's importance is large, but a workaround is possible. +* **Prio 3 (low):** Not urgent. Lizard is impaired, a single function is impacted but key business processes are not interrupted. The problem causes minimal operational or business impact, a general technical question or enhancement request. + + +Feature requests +================ +Beyond the scope are enhancement/feature requests or questions about the use of Lizard in the organisation, +for which the customer can purchase an additional service. +For more info the customer can contact the local Lizard consultant or email to info@nelen-schuurmans.nl. \ No newline at end of file From 796300d6e69b9106c9d33482277e3e72dfa5773d Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 22 Feb 2024 14:04:01 +0100 Subject: [PATCH 07/13] Update plugin --- source/b_lizardplugin.rst | 134 ++++++++++++++++++++++++++------------ 1 file changed, 94 insertions(+), 40 deletions(-) diff --git a/source/b_lizardplugin.rst b/source/b_lizardplugin.rst index 6d6edd6..07d0e08 100644 --- a/source/b_lizardplugin.rst +++ b/source/b_lizardplugin.rst @@ -1,78 +1,132 @@ -============================== -QGIS Plugin -============================== +================== +Lizard QGIS plugin +================== The Lizard QGIS plugin enables users to download their scenario results directly from the Lizard API -to their GIS environment and show WMS of raster results. -Here we describe how to install and use the plugin. +to their GIS environment and show them as WMS layers. +On this page you will find how to install, setup and use the plugin. Installation ============ +.. note:: Note: if you are using the `3Di Modeller Interface `_ the Lizard plugin repository is already added. + * Add the Lizard plugin repository - * Note: if you are using the `3Di Modeller Interface `_, you can skip this step. - * In the main menu click *Plugins* > *Manage and Install plugins* > *Settings* - * In the section *Plugin repositories*, click *Add* - * As details, fill in '3Di' as *Name*, and 'https://plugins.lizard.net/plugins.xml' as *URL* + 1. In the main menu click *Plugins* > *Manage and Install plugins* > *Settings* + 2. In the section *Plugin repositories*, click *Add* + 3. As details, fill in '3Di' as *Name*, and 'https://plugins.lizard.net/plugins.xml' as *URL* * Install the Lizard plugin - * Click on the tab *All* - * In the search bar at the top, search for Lizard - * Select Lizard in the panel in the middle - * In the bottom-right of the dialog, click *Install plugin*. + 1. Click on the tab *All* + 2. In the search bar at the top, search for Lizard + 3. Select Lizard in the panel in the middle + 4. In the bottom-right of the dialog, click *Install plugin*. Initial setup ============= -When starting the plugin for the first time you are prompted to provide some settings that are required. -In the following screen you need to provide: +The Lizard plugin consists of two components: the plugin and its settings. -* The base URL of the Lizard portal you want to use. This will typically be *your_organisation*.lizard.net. +Before you are able to start the plugin, you are required to provide an API key within the settings. +If you do not provide an API key first, you will receive a pop-up with the following message: -* A Personal API Key. If you already have an API Key, you can fill it in by clicking "Set...". If you do not have a Personal API Key yet, follow these steps. +`There is no Lizard API key defined. Please set it up and try again.` - * Click "Obtain..." You will be redirected to the management page where you can create a new Personal API Key. +Which is followed by the settings menu. +There are only two settings to worry about: +* Base URL: this is the Lizard portal you would like to acces. This will typically be *your_organisation*.lizard.net. +* API Key: your personal API key. You can provide one by clicking `Set...`. + +If you do not have a Personal API Key yet, follow these steps: - * Create a new Personal API Key by pressing the + NEW ITEM button in the upper right corner. +1. Click `Obtain...` You will be redirected to the management page where you can create a new Personal API Key. +2. Create a new Personal API Key by pressing the + NEW ITEM button in the upper right corner. +3. Fill in a name for the new Personal API Key. Click on `Submit` to the right. +4. You now have your own Personal API Key. Copy it. +5. Return to QGIS / the 3Di Modeller Interface. +6. Click Set… and paste your Personal API Key. Then click Save. - * Fill in a name for the new Personal API Key. Click on ‘Submit’ to the right. +.. image:: /images/d_qgisplugin01.png - * You now have your own Personal API Key. Copy it. - * Return to QGIS / the 3Di Modeller Interface. +Lizard browser +============== - * Click Set… and paste your Personal API Key. Then click Save. +The Lizard plugin currently contains a `Simulations results`_ section and a `Rasters`_ section. -.. image:: /images/d_qgisplugin01.png +Simulations results +------------------- -Scenario archive browser -======================== +The simulation results section consists of three compartments: scenario selection, scenario items and feedback. +.. image:: /images/d_qgisplugin02.png -The Lizard plugin currently contains the Scenario archive browser (to be extended with more functionality). +The scenario selection, which can be found at the top of the section. With the search bar a scenario can be found. +Once a scenario has been selected two options are available, below the scenario overview on the right: +* `Show downloadable files`: will display all downloadable files in the middle compartment. +* `Add as WMS`: adds all downloadable layers as WMS into your project. -* Select a scenario from the list, which can be filtered by scenario name. +Within the scenario items compartment all results are shown. +Downloadable results will be black, others are shown as grey. -After selecting a scenario, you have two options: +.. image:: /images/d_qgisplugin02a.png -* Retrieve downloadable results (raw results and non-temporal rasters) +To download results: +1. Select the results of interest +2. [Optional] Set nodata value and projection that the downloaded rasters should get. +3. Start the download +4. Follow the progress at the top of the QGIS main window. - * Select the results of interest +Temporal layers are currently not available to download can be shown as WMS layers. +To inspect their changes over time: use the `Temporal Controller` to animate temporal raster results (e.g. water depth). - * [Optional] Set nodata value and projection that the downloaded rasters should get. - * Start the download +The last compartment consists of feedback. +Within this section the actions of the plugin are reported. +Some examples are: +* Scenario download task added to the queue. +* Scenario download finished. +* WMS layers for scenario added to the project. - * Follow the progress at the top of the QGIS main window. +If an action fails for any reason this will also be reported in the feedback compartment. -* Add raster results to your project as WMS layers +.. image:: /images/d_qgisplugin03.png - * Use the `Temporal Controller` to animate temporal raster results (e.g. water depth) +Rasters +------- -.. note: - - Downloading temporal rasters is not supported at the moment. To visualize them in QGIS or the 3Di Modeller Interface, add them as WMS and use the `Temporal Controller` to navigate through its time steps. +.. image:: /images/d_qgisplugin04.png -.. image:: /images/d_qgisplugin02.png +Accessing rasters through the Lizard plugin works like the scenario's, except that scenario's contain multiple rasters. +Temporal rasters can only be used as WMS layers. +Static layers can be downloaded. + +To download a raster multiple settings can be provided: + +* The output folder: the folder in which the file will be saved. +* The filename: the name of the file. +* Map extent based on: + * Map canvas: the part of the raster that is shown on the QGIS map canvas is exported. + * Polygons: the polygon provided is used to export the project. +* No-data value: the value which represents no-data available. +* Pixel-size: the size of each individual pixel +* CRS: coordinate system. + +The use of polygons deserves some additional explanation. +To use polygons as export extent it is first of all required to have a polygon layer. +Once a polygon layer is selected two check boxes are available. +* Selected features only: Only polygons that are selected within the project are used to download the raster. +* Clip to polygon(s): default is True, determines if the edges of a polygon are used as its borders. If it is unchecked a rectangle will be drawn around the polygon, this rectangle will be exported. + +If multiple polygons are available within a raster you either have to use the checkbox `Selected features only` +and select one or more polygons, or you have to provide the namefield of the Polygon you want to export. + +.. image:: /images/d_qgisplugin05.png + +The last compartment consists of feedback. Within this section the actions of the plugin are reported. Some examples are: +* Scenario download task added to the queue. +* Scenario download finished. +* WMS layers for scenario added to the project. +If an action fails for any reason this will also be reported in the feedback compartment. \ No newline at end of file From dea8f99c9c0294adb70d96563dca5d7d78ad72ad Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 22 Feb 2024 14:04:12 +0100 Subject: [PATCH 08/13] Update --- source/b_management.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/b_management.rst b/source/b_management.rst index 0cec409..9c715e8 100644 --- a/source/b_management.rst +++ b/source/b_management.rst @@ -38,7 +38,7 @@ When you save a new Source you will have the option to go straight to the Raster Interested in the possibilities for your organisation? Please contact us via info@lizard.net. GeoBlocks management --------------------- +==================== The GeoBlocks management page provides you a powerful tool to build your GeoBlocks Rasters. It helps you configure complex GeoBlocks models and enables you to validate your work along the way. @@ -127,7 +127,7 @@ If the layer you are looking for seems unavailable you might have to switch orga Advanced: Is your WMS layer not visible in the Viewer? Check via the network tab (press F12) how Lizard requests the WMS and if that WMS url makes sense. -==================== + Layer collections ==================== From 7fda75509ab53da1c8a802d60b2ef4022d61f6e7 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 22 Feb 2024 14:04:21 +0100 Subject: [PATCH 09/13] Add hidden management page --- source/h_managers_lizard.rst | 165 +++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 source/h_managers_lizard.rst diff --git a/source/h_managers_lizard.rst b/source/h_managers_lizard.rst new file mode 100644 index 0000000..236b3fe --- /dev/null +++ b/source/h_managers_lizard.rst @@ -0,0 +1,165 @@ +:orphan: + +======== +Managers +======== + +What are the tasks of a Manager in an organization +================================================== + +The role of a manager is important for managing the data of an organization. +As a manager, you grant or revoke rights for your organization. +A manager mainly has two tasks: + +1. Maintaining the rights of existing users +2. Granting rights to new employees or external parties + +**Maintaining rights of existing users** + +The rights of users under your organization do not expire automatically. +So, it is important that you regularly check whether users still need their rights. +This can include employees leaving the organization or projects coming to an end. +Sometimes, not all rights need to be revoked, this is also possible. +It is up to you to determine how often you want to perform this check. + +**Granting rights to new users** + +If a user needs rights for your organization, you are responsible for granting them. +For the smooth progress of a project, it is useful to handle such requests promptly. +Granting rights also doesn't have to be a lengthy task; rights can be granted in a minute. +You can learn exactly how this works in `Inviting New Users`_ and `Adjusting Existing Rights`_. + +.. tip:: Use a bookmark to go directly to the Management page. This way, you can give a user rights in no time. + + +Roles and rights +================= + +**User** + +For every project collaborator, internal or external, who needs access to the organization's private data. +These are only "read" rights, meaning this user cannot modify or add data. + +**Supplier** + +Project collaborators who need to modify or deliver data require "write" rights. +This falls under this role. +As a supplier, it is only possible to deliver and modify your own data, not that of other users (within the organization). +However, a user with only supplier rights can still view publicly available data. + +**Administrator** + +An administrator has both "read" and "write" rights. +This means the rights of User and Supplier come together in this role. +Additionally, with these rights, there is the ability to modify the delivered data of others. + +**Manager** + +The manager gives and takes rights from others. +A manager can also revoke the rights of another manager. +So, make sure to only give manager rights to trusted parties. + +.. tip:: In some situations, organizations arise for specific projects. + If the data within this project falls under your organization and you want to appoint a manager for this, + please contact the `servicedesk `_. + +The management screen +===================== + +The management screen offers the opportunity to manage various aspects of your organization. +This includes managing your data: rasters, scenarios, time series, and more. +For complete use of this page, refer to the `lizard documentation `_. +The most important thing in this case is "User Management". +Only managers have access to the "Users" screen. +In this screen, you can: + +1. Invite new users. +2. Manage invitations. +3. Adjust existing rights. + + +Inviting New Users +---------------------------- + +If a new user needs access to Lizard from the organization, this can be granted by the Manager. +This is done as follows: + +1. Log in to the organization's portal ({organization}.lizard.net). +2. Go to the user section in the management screen ({organization}.lizard.net/management/users). +3. Click on `+ NEW USER` at the top right of the screen (Image 1, in red). +4. Type the user's email in the 'email' field (Image 2). +5. Select the roles the user will have. For the rights associated with the roles, refer to `Roles and rights`_. +6. Click `SAVE`. +7. Success! The invitation has been sent and will be in the new user's mailbox within 5 minutes. + +.. tip:: Clicking on a role when inviting someone will also display the rights of each role on the left side of your screen. + +.. tip:: If the email does not appear in the inbox after 5 minutes, first check your spam folder. If the invitation is not there either, you can always contact the `servicedesk `_. + +.. figure:: /images/h_gebruiker_uitnodigen_1.png + :scale: 50% + :alt: Overview of the Lizard management page with multiple users. + + Image 1: An overview of the user section in the management screen of Lizard. + Here you can view existing rights and invite new users (red) or manage pending invitations (yellow). + +.. figure:: /images/h_gebruiker_uitnodigen_2.png + :scale: 50% + :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. + + Image 2: The invitation screen for new users. You select the roles by clicking on them. + + + +Managing Invitations +--------------------- + +In the `Pending Invitations` screen, you can see which invitations you have sent that have not yet been accepted or expired. +Invitations expire by default within 15 days, but you can cancel them earlier by clicking on the 3 dots next to an email (Image 3). +If an email has not reached a user, you can also verify the email here. + +.. figure:: /images/h_pending_uitnodiging_1.png + :scale: 50% + :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. + + Image 3: An overview of pending invitations. + + +Adjusting Existing Rights +--------------------------- + +In the user rights overview screen, you can manage the rights of existing users. +Here you see the following information of users who have rights for your organization: + +1. Username +2. Email +3. Roles + +.. figure:: /images/h_rechten_beheren_1.png + :scale: 50% + :alt: Overview of the Lizard management page with multiple users. + + Image 4: An overview of pending invitations. + +By clicking on the username of the respective user, you will be taken to this user's specific page. +Here, you can click on the roles you want to remove or add. +If a role is clearly colored, the user has these rights. + +.. figure:: /images/h_rechten_beheren_2.png + :scale: 50% + :alt: Roles of an individual user. + + Image 5: In this case, the user has 'User' and 'Manager' rights. + + +Tips +============= + +.. tip:: Ensure that rights are discussed and granted at the beginning of a project. + This prevents delays later due to someone waiting for their rights. + +.. tip:: Don't forget to remove users' rights after a project is completed. + This way, you actively maintain the user database and keep your data under control. + However, be sure to check if any scripts are running on an API KEY of any of these users. + +.. tip:: If you want to deactivate accounts, contact the `servicedesk `_. From 739416a0cd61de4650a1c3b186474b907e6112f0 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 22 Feb 2024 14:07:45 +0100 Subject: [PATCH 10/13] Fix images --- source/images/d_qgisplugin02.png | Bin 87721 -> 73337 bytes source/images/d_qgisplugin02a.png | Bin 0 -> 30479 bytes source/images/d_qgisplugin03.png | Bin 0 -> 10377 bytes source/images/d_qgisplugin04.png | Bin 0 -> 117291 bytes source/images/d_qgisplugin05.png | Bin 0 -> 28739 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 source/images/d_qgisplugin02a.png create mode 100644 source/images/d_qgisplugin03.png create mode 100644 source/images/d_qgisplugin04.png create mode 100644 source/images/d_qgisplugin05.png diff --git a/source/images/d_qgisplugin02.png b/source/images/d_qgisplugin02.png index bcfeb04592c923a0b2c0d3b1950212d028e56810..2536d9fdeeaf10cc77a5d95f96088bb7a66ff2d6 100644 GIT binary patch literal 73337 zcmdqIcTiJZ_dgm$!3KzmNLLV15K(DT15%YH(xgTOq)G1q5)_dpAR@hlB2AFqAw;Ev z)CfpRq$dOjB@jqR@{2z2^L?K8J9p;Znfu3`xoZZ_oPBmXYp=8RXMOfc)I)tOmXq8k z0RRBYeQote005ID0Kn*YoQYl%UU%^e{leh=Nb4S;e2^DQzd7ols;3G7RK=e+}1M0rgxU005vB+*emM4zO9Humvxggh)^kHO4*+92z-$0{$s)Z+{6W z<+z14VTekv94~vawvHe91@p_RbRKPvq{zS((`^h*6;y}Qw*>SKNM!D>dcFh4Ezh{l ze)+UJ&Tuc&{16Gje?HQ@Z5BRzkWD<;Imq;0-Z}X0@c#ZC$v~wEp|pcT+V}4V(7_^H zQ9QN!0ezBy;l`U3kbsvN;MeUDjdaZAo6Zb?(B+uu6rR|Kgk46!;~>jy@T+?>tx<5Ri{8AJ8(;oovB|SPAu%93lj}$UE zWL6UWCILH?^YwMj{oJh_9|zoM!0s0TVR4h&Qt+$v)+!Ov&b5(YU8ez#uQc=c0076h z;ukZ{3$}JF41n}_0lIV)^`ncgiqmpq-_uYT5;PA`QS3$7`TZ@KO4;#Q2?->P8EIi0eNQQ^m`mgVF&X)?@a<9p zT4LXUJD|54%hjz6%a)(gh^K5j5Dd_hdhv=>0k8|b^HA0=(ow~FM?){X?z>ID2RQmm z1debKhG>Vrlus8V$Z#6C5MrVu^IUPegO=;gPr5=`)lSO(lhJ6T&l=31YwJ!<56$2#|Sbb-p9^V&P>*7H$CG^XG(sDMIdT27vq-$c%J3 z1=D?a0xB2!0da?MeNW9NT47FbXDVe=@qv;(a zn9W27CSs8;0^YuTFus#LrY4g8E&-`WnJ)p28VFEwg9YeAU4eU(QNLhUfX^cdz9eX=Ith5{3;zBIGWs#?0i^2E{m z$9+R=)0_7%^H@S+vqOR#tcYe>al;FU;KvnNtOksoNY$#9>`fn$RAL~v=nhJ_U12fk zEqcZ2(>_Ik6LA?WiTgbE!-PJYVbwKmRr+kwa}us~#=RPKW2CFSg3D8W^cdjh={2U< zS{5!{ndiJUO967DuiAwWhiO({;*{69)Z=L%9LY79R3v{+c{j~HZ}r?Z!>`tjgw@-% zOQ}=X;!zSdU$J^2g-}sI#=JVkj8Q`hB;a?XjGuE!vT&|x0S|M7Y4#xq37%WZf$hMa z30bJ;OJzzg7yQC+b6^%$13VV;BYcAjH8TKywx%brUgBfGJlyxJNPqGD?t!_)2R7>R z$OZHPRZ+>8aKEV%=TCe0X;LRLn{s8=DCFJ7{?{zRx>}8oAMqL=@hzxGR4FUFZdZ1( zxzuw@;Pi;z4w)b(4Q_wi*hqox;rx@V@!9Wa(rg!??ZQIa2%7!03>XJ{+xy3zIX{V% z0F>o7_TBjK^tZjp+_qy94syO8)K>zwv+crX9-f`b({i{$gDGH#p(tU_QDj_E`Gl38 z7L=SspfE%4F}Kk|VmhI!A}=T`@&{?tKbplljC4Y3H}6v(NZSSPbxl68 zV~YP7S+h<+?t1)OLjU*cI6-ZEV(gXzL@kfy2!8H?DeG+ETe?$^?zztqZi61c#2nwZAiijf=-~lUz zNLBJVl*|_MuRS~Cv87Oyb+zbiH6?{sZB0$l0__V)p5~AG+W-B$aqG>(v?IUg6T17M zusUi&wctDeAa&A-8Q_!N7!gwBI*g$&IpV{*s)6$EDN@U{7eN4M{peJ4GsfH!riD0| zv7tM^<5_5h2OtEVRv1J>LkmB5XRCQ6cWdX zi4ndCOS~Of7~zxg-+o~W1HjkoU8nuzNb^eg5YXn^(-0XZS-V?q zJ-5iee21W8fL&Sx?Sih-ZyyZ+RGL2QJqiGLa$|$Dt}3ZIxP`KI0I7O}g>utU!YEoP zrm%w6@-rgDTdk`_0;)j4`Qyj%uj>_e)qkdbrMnH74{jEg1EtIXM=G)p!y#sYgC`LB z?(#$lER=$QIaVnebOR~ogqa0s)*C2($dPVyO_X-rycC`EtLv>Tip-g4hMge1wKd3*gyNEZ?BGHO{Y8-bTAi`MQx!^Tt+X5R z8(5LiDnxyfO=1X-(q<2>kmkLwHLvWR%Sjm&!!~sTLHNIhd*ZE{Pv0azCVa5DB+d{z z@T7o+s|<%R+UPlruE-94m90n;IypHER!|MOs&X}FjbkiqpAN&o;9i*Nj~MMv@9YW*#no0-c20Qy!U#lzjt05E0! zyG!4k?Gtnd=Tzr(a`Xz|=i6ph0p+)>T7R|r^MAPd)*bq&|05RMe-HDgD5oIz_WyT} zefgAw8$Z!ljYT=Y`*RW4+z9?r{1;6*?8ijRkW+fsci^7eKUK5cY6qXrdy=BzU(JRA8hp7tS9- zFa)nvbrV|F@%sz$Md$SIzJ%Z!AUcSD>EYKWr|&-zP@uI}uP}+DHaf$t`M$n%XA)J> z>y27VscGq*!)_=Yl~J$;Md-r;^beiCr%1ovOJD=YCVfBt`CO_~&s{L#8lRlk$8|;! zGl&f|Ar!ADSi$~J?Jt~@sSKZcrR;ppB6CLW8#(-C_2r?N}cc7YK9k*8-|m`ueN4IZ^I!LE%FpW zc!*9TZGO68csgbkpKO>`2nm$DV?E{}`UX7i!X74Hi(q|@94L_Um99Q?h88Q@9 zp?g4u^re&<4-$jn-f<&M6 z5ur?;>IkwuReP(DDBLiCOQ)D|I_mN^pj!oa`%ea+_Ow#2paz>~C8D~M#cgY!jC-OM zD695@uUB#ggPsn-q9kt&Yk*;`ia%{KYrGH7KeeZ(Dw7ukkntM(FYus|axN*of99-0 zHs9@eyRqdytURUK&FlU4G(zBZ!;h><#77}I64{Q3q8_?OQf&@H?9i}L5$f~w)j@UX zeb1)PGt^jEQFa4o=WW`1>IWN50h{Tn!BE$Ra6Aj@$P`F6s)xL63u#n`N`~<0(e&=~8DyV|SH3T^pUoB{d1y4%O`fTW zrxp^PS|m?LSE{yagIgM+Xoy(Uxwk(XBX!ALM2DNznx3t&a_Thn5@{SX(%*q2&U9tK zyDiE!U(D=f8)5Te0u)d~M5kpzxYg^JVUIt)=C8Nc8~wl>$_AM+-j+b}0MSM}htVnU zTSBzy*+k*Ky?2=*qC5A%X~7NIf^ciu4}`;mEE3#tiM(;XWy0Ii7oQ{BR;J!xU3W!i zb=_^=DAH~)rq2hR5htvUFO@7sW0FpSyA|RbF z+6KxME`7QfPkrfFk~eOcuk_l?S|180XgMRsBia6*9DUCiv+%Xm+*$|MzB;W$IFO}= z*wTR@`*}M}@k5rR*1hPj6SV6g&myL11+WSC(Mxcu!7k>6OR5@iAB~LA0r!<=1B=$$ zNJ!PO)xs?VR44@X_S=~`Vqkg+TDBqxGgJe;UY;;Ccdk~g&HwtbqUSvcmz@vrv?b6e z9v9NPL+bZbI%yZux~k?sDiFM7|JBD3st!KdnFZC8Fex3buadwSa=;2u2-3B*mz<;Z zZmV_K2zI6IXFRbX<`T3Q5)_kLKL2u~PkeuGNNbALU^?C*ype5HMZ7ZI3YQ3eIS8Z$ z%QXun;fIDbB*c&~%D&nahm`jfv}iDpY@P=s36Yo~_yUQ76iBIAnWT27(QeS;9teFO z#NPr#<)g_9L-bEr9iM9ysQso3&vL<_VE&SUnlS2@gY(gT&;w}5O3L+hU89+v9e3KE zJ0S=`4EnE~`{Dw{h{3HKA zerz4VCQ!bLD4>vu$iXay-O}Z2Gd1DKP))*YL^DC*9~}UO-E4dwB@NzAhge_>@*5@uQe zl*RL`H|6VNFdYt<-!bpslC#cB<)EW!K`>3WlrTrDhs1KZP`{tf zwusiU%enk7gUW$t1>6{^h%2Yr3Xd-_{7SX>O}PC>awK_YL*;3{PX7Uee-%HzF7^EH z8uY7*&h%#2+jvmWDN3(Eh}7|kB}87zzn%kLJhAN>f{?Do#?Gq1_9rDVMipedYL5WL zmy{?AeZ`tYGpd;EWa-nlN3PP>|7CH+!SJT9plwrCk4h z{hywn82x099bZpEYP{2`g6Gz+-OnYq!6RKqVr!Xpl{1%PhHb-zmtD5 zp!s7(wk~HTSYg&iKK$m-f<3s;jtQaZy;YjOx|wxw^$d}51rdeuh6&a6OvQIj$~^8? zl9gXNGUYodrftJy0QaFV`ivg~7EX7b+zaH{Q#NRN!f9RT9_np9uADz%w(`p=EQH_7 z`G&Xap5GzW47+$rpJT=B5gv9Z9f*GAdZ7G#OohcTQGJTcpSlCoJia%YS4T3n3gI z$snFvhf>%ngRASaEh)d>(9S#{4?x zFf!Siu(T*Sm|s&rqXYc8cfs?fMAAy{N4 z`eXA62h1)&_rDh%5URhs17aUQ8%UAvIh1vLn(;@6_>izgII}t#yYvzyWaY}_3RF#{OJs>QdP zlYFDsIfuot&DK`*RM~>7*2TUt!PYW#@wAl@E{CjpKtpEj!Xfb)5m5KR2k}`K zC49TG|HO{IauTMS?VUo#c$g1S5;xonCI%(0?)>wOgmO&N{a_8~ zP{F5bJim55A%dV#ZUou8MCn>!Lz+v_nP>fz+jGdn*3)i3_AiDg6-!EBHCZ_VF68Gt z%Pdm8(_e;t=d8F7pzME0bkPh^Pl!G3G`42cs=U;V%_d$h_n$ELNA3o12#}lIeguT_ z@AsDYc-d*t3^04RcJdeGl}?jyEfZgml4evdDhs*AZ*5x+#4eN<5t=-J+d)RiVmfc}w+z%?j^!Hq3BEzu63AAo zusIZUC8L3(c+r`6TO@asYCLt(p*Cm&jcnNXgb}{(DU47$5(=X|5zY2}HxxWP)OkD^ z-i!N$C-*Y`AW(_YWL@XC#ll)2BfV2%xn(o9cs*k;A08ejD*u3vhXrQ8nS9P^eFiA` zm?dbDIcW2xKoJx`Vq_aO&{r~-wot@#_)tsyk#M$82_g=iEdAO!*)iN3Xw&td@r*dmjIHwaFB#$V;mz{fD76 zM!*|W=oLPn&DVT$jwcQtu5~+EcBl<-0Wk`V%R%}Dvg`a;Jmt4l7mBFbYu@_nJK5(3 zb1!?|6oJk0F}8iv+rHT z44x*gFG^w*gQgYub87soFU+2~T(Nsp-ep>~N*RPyQs-RD(*Zdv8Iu=pl166MeZC#I zpB_TCvu#tqZmqm#TUe$GXIZlhQ@B@Yek}3VU9FhJjUPDoeuG(Zr#cO zjZIZL6|T-1a=Sx`E{kYJH5vyCR|c=a*WHCvHc`Ks#{WpDUNN2U`KdFsUT6T>^O~$= z$oLTkDvG!E<*EQh@ysV=0H{1Hxu(eYE)#Cs5F-|^s-@}9^{;$=Hl|>cP z{zZj^>U&@dQbrSmvOn%<9GqZih+y3!DR{&}bS3?eAvWWn`dKfc|4O zq1XER`+p#j`5=bSc&N~6#JSM%FsZWJjUd3VXxm<0#mF&ED;2GH{-lc1u}`O$={}=X z23JWZ8J%W%B>y|Id#4+wXuu+ zsRLyaP53r4hJZAfsBr#63||U=esz$3tnjdk;oWI^r2P4m(_>o?1R%%c5TgZj&geS* zKV5K6}@-Gn4J0UmUI++kqNiGIAz43}bf|J0621$U2o{NjuRz>&jH zNRmI`7en)Mx(kK}z0U;S@02L~Y}wF9lm*){aZ4VFz%=hb!pZ{{*{}mEidqQzXOvUs zV%wFA!?b4kkMyI1S%nL=8`knZyDO+eAG<379C^e+RbRJ|?pCVthjSSvT;|Ja6Ioga z&rYGp?n}~iJE<+N|D0)%L3F!AzfmdOCqik&oZDdwg|saol{o~f1IiQ04tT{6J@jl| zub;+zdC91s-?g0nJo?;8&$-~OJ8R7v5%hN+N>*W|0A&(MvaHBT>-ntZW_vS{MYvIi!yVumPg-N5(Yv;7$T#18)N7*6u@6Ro zOM}e7eN__H0Qw0O9?)FE7J^YDjdhtfbe(p~O~@4#MAf(z#^}WNC-boe1+{5$)bKL= zmRy!2BTe&Y4nhN{#M-oJ!G&&yY&He4Bu0m}me z(9Yp)_MCkF)Lozc-IWP9A>L|K{L}`?`jC3yL&;V1p&V?~H}u%EPlFe4cf6S+wF2P} zJ@$m+oGxsUS3uB^0QmN=@!e?=p}Q0F;*9h|K>w{y_W}cGZ+yIa?jeW6sPsf;Daa*r zBlWJ;QCV&?r*{@tN8d$5rXzJ2&lO88UvNR}`R#3~SL!o4ol_}gMD2dyy5R&Z`d!mjpD=mOzn=H zwN^8G$UnjZs7>>A`Ton{d5^~wfW@pLXKkr-6MpGDc6-6^(e82tb}m9=e{k%B+$Z!9 zO1&LDf=62wWUW~1^tTR-h!#Ee*-ePY*}JnZ<@c9dBR1%gliy$!4%?2)B9@S~NM1Ad z1|N2bX#;oQ`gQqlER)*-1|!>bDm68Rg5c%+!XZ1x!eQ=a+V5#iQvM@A{pcF)`HDg%&ftowmWt;8U=~K4`zKN&Khv z)sCd7E$(lH#}CQ3E(gAWJYJKnF$A9YJXdXrP=^KX=t+g-Lg17;&ANvnn0$frc#vv}>jWMYzz#q7 zb%$?sI_iAP^PAKBH}iuqK@kCIcgG3#wbm8>a~kf;=L~UCU#8*xygIF?hjvVx_d?Xo zhF(vbN(6IS>jh!Oybx~h%63rHsVpCT4+!Tdfe;R!T_;Rs zP@BK@VMwGh>FdyNMukVk(yu!bMiuOI-*#qPvZvVUS3njfWFozG?M#S$g*Fi7n`=`( zPqsA4J6mWg7zdpgQx8H2&Tpv+6tF>-2YkZsci&x4Z%VgwzHBq0$G8i2wp8#)Kg(}a z_>vfG;3_gYf&CRA3ioVKn|d8O{NUwa&+EWPA}@+Ki+k=J+WJ}L?bHY=-@$?Ih9o`~ znvuB)EA!(>Y)CpaMjl(2sN8NfZS?cq8-Qv9?_OzDv^_xwqh_o)Q z50mAz5A{aNZ^N#P4wLE~I>vL!K$$a{?J;QohluG$o}0HPDk_#x)va`7S?O61@;e4U zcoR|!1Fa#FQT|M_iai=}k~8WW7x){WT+Koz9&S$maC-6z8DxA}Z<@AoOV8X9{|5MA%CJZ@QJ^0}Oegf+tQ&6lzu@=xQ8_ znE*UvvC=_LHl^5nN8h*JGiDtn+q`Hi{Zw{=9KslyWUh+3r3|GX#krzV0_U%sK;XfF zcs;=?R#t!vyu7^pXQh4r8|mvWtZd)h_E`7-5y_m@+-c7r*my}6^7<*%&ORaRl;Z?p z*#EnXEZkf|yS?ICGpvu8trpw0Lywo|m&9J}B&*@f7I~XV3d>WzKcQS>Ep$S^a-0b> zYlhaD2z~(!SxXPXuKKfKh}J~#XEy!0mq9Y6h!1N0dHWm|hTN&4bcz#uf;jnb8>2FH zv~rorZ#aYPO`v@@HN;2lS@_!&7#wi}HDa1%P=DI0v_Yg<-SjLy+at#5;3OOki)n>0 zPNF*+&t5v~|2zic)8%xXczi;l0aOoyh}h?Mwdf(IGq6{8cy7&2VSIQ2rkAd>#Bih_ z7T>&eDHeI$mCurR<**I62$$85-q-cJRlNT5M*z496lXJeV6iyE5Q>Qs$g4D(vBK0g9UDey zo6%~|?P;*l!I!ckUFy?(XU}X*v@TnllvD@58-%>%Y72;r2Hm|_me0!Rc8&(-fj@6t z&1O47mwWw3lk~06X6X0KZRyK*si8}y4%1zYXZN_dmB~z`Us?lFqKd6HAI-qiNrf+^ zogSQFO?bfHS+#_-ye}LN4t!y;h|r{e=#|QI_rMe6PWSar&gQMq9wQ+6eGrBs0M&Xo z;R~&h2lD8K6%~5U_iMCU4=7A4JhdfO$Zw59@1?K_TLhCnxTNiivpr(-iBr>CL&Os+xQ-B=2-_4d!@{_0s&nS*KRY#goa7ELl; zVMhWZyc{sm8rl|8YVx=?Y-%{rpiPJx^b`^|co>s{@xGXkr$_RQ~4I?^9**eqtP9cPZZ#Dc|pRm*;Y()*76*KzWvCm=13c z6LrN2Z9MlG!*Y@z<9lU0pq*RFZUuEBkTiwzts`~W7CP>Uhulu*j@;V`I}8uRZ@CY| zs;LJEjm!+`Dt=RSTYcgGlsfHZ6X2*%o53w6j%86(pC~Vay4}D#EWtAjq>E-RO5i0F;jSc9^PL{qvWepvmoM%G)nP|?=#(Ec zW1BQ79-%CggXVk*RcN+ap=rLt7d$RxJIl*RUvJ1mAP*7VBc*HSk3L{E*(#Uy8jt@D zidNj}Mnl=)Bdr2{`&>#9k5=GC6S)XY#LRi3g+*=cF z!U>Pgc8}ocpKv_WqKR7a*JhQTDHsAxK z%nGzcZSYVp!FLLVM(_-^oci$s!JDcF#HmAldb-Q_O%|N)p8)-LL`u)eqq-KM@=@qa zi54O%$Q}-r#OZ9b;FaYmgnb8q>ptU`KcRlk0o7@~srtQoc*-cvw~KdnoAqt)pGY`# zuhtEz>ls5&3s+J2CS?Suw7Io(R7H^dn3(6JO!{g7XQXE#i?-o^X&y7Z3npf z`@C{}iJo@sjETV(8R} zqghBuNNr90yJFy_b6X?V6n+95!ua@W%MLzbfXR>xI1ZzJd4G%iC9cKGJh7=sTLesb4 z+g9f(UxKFS=_h7_GBWSueJya8LPZrzOSWigs?v zZ`xOnyPTgsJ!o7aFIfz7RrH0c8RuxE_XH5Xyv}{~xJE_IuzyP0?y94w=c_x0{dPUW z9fBkC>Q|qcmoocqgy$C9AHNFldHa>?lc__o@1x}7vkN{s;NMA4xcXte1?EpaIZOKK zJ2zY&Z;gK;mhg!+Ey+z|RiAag(a#ZO%_~pDcfPqWZztSvaAOow1Xm2|hC)i`Qrs=_ zRT+|)dFPzN}*8iG?z1(BB42b{P18+H{geq;Z}G!IMe!oi(+05}Tc)37n-pfi&rH(x(ybx?Cz(^9VqG;z z9f%X$t|e!auDyuYe>lE~;H;LaDzfoCVkX!axVL@W&|KnJ%nkLRr3^2LfqdiHYTe22 zM>llFAMhmtWHb}@Zs@)7gtV!vsoIO0O<8R5771|~rDfJyYn#g85Q*oz??}n!?XWH> zCcV)WF1QHul5Z9kag6luKVU)QWM8TCDy=g55d=L*?;>bop6 zLLkN)o6oCfkrnXDSKOCa3QT$5>(cA;;^Wtxw&J^@G9DtPRk7z_eS^)KLRo%I=PIY? zq}$=zj2mr>)!!a&HV3Nu+SG-we5n1dfbJNCKaHI3YKqkbl?EBy+a0Yp`u+*cbn4qz`GyWDy`lo=^+lie zlM^|klE5tKexbOhv-ux!D@!hBJ&*ezI!M`PeF?-pH+fe#LrFX~zIg9Ctj5}7@`mQ~ zrbl)^1{_Fv^C{PE<4W%4J9dJ0MI}hr^0L*tgtrj0yeyW1dmCGx4(Aj2{2RBT`P^Tx zn0Via)A}ww3Dx11&A6+z(xAb6ec`rpa$HPNnD@i(6GOdlfx#w=?h-TQ%7&OWgL#XH z2Oo(2va<_P=Zqgs64j34Y{nGYtTtS`aTYDVWa;T;tJ&d6%p}N9?7QQ0&x7Nz$dfkD z2bJvlG)VUE8>J=>tajm*P{uuq)270c&1zGJa?U3qETeBZ5`6I&bK5$F$0DsKwY)zR z%|74y<<>{!aI~TJoUNBspOKW8y?2la;VaeNIac}})KQSwq>(<|4GbnC!7DRhbtFa z+|ntlL-ylM^wZeedC0{8x5?u`*wHU>&8zbk9 zpyzsSEZ?foKsCM`Y;vtiuV8x}MNVz|KBI^?bAe;09vH5i zA$${yAI?NFmaC}kw1d+W8H&!vcQnT!;#56AQ^To?{YAV9MX-C`hwqZMYg9A81tRzNBYBJhLH6b+?uD1+%vH74 zUaMYts%V>-baf{5TcB^zw%Tqc3xp=<$0Z;Ot*~zUIT)i8VrqW|grLbc3iwq#_0^9{ zZItrm#eZ;DERE`ygrC?V_4&jPy~e&<8+#FBASMWOm(VNrkX=dO+ae0Sdv{e5=WXXV zlqSLffHsk?P)VV+ym zx}OPq#OzxH`4iv$?*68y=0znlX9Up=9+{;yT`}s^d~YpW-zp7^u(C1F%<)*(9;Bc2 z+|o_#TwO@~VEMz>>CpTb5fl$b#*P921H*E$T>5VwDP7dtI~>8Qds}|jIIpW@-tevC zLRztA0*6U%vD`^l=^bjPU0nV-OFAawvN;@5($_oW*KfK$dQI-^OSFFx<@o8r4r78w zY0BV_O|c%km%@e5`dbRGxXELSs`y>XO{FDXSdmJ>7zUL{9_EF@jOrrvdn3Qj!+KNm&34VaeWV>LwzWkyem}?g}QoL;&#hn!r0KJCRBl#(MA@5FB!=(hpOP#b6jD|`^ zm{fU6BjW?4(kD~A6}cjM&YeQXNBawMKRPRHW6A5z{rMWpdP=|8Vdm*`6+=c96XtzM zxj7fVIK6EHJ-?FK$}EUy0}P+0`^~R#sIHiY+F^DTJFc zMsMqkPU!M4ECayejmhnH7A_yVH+s7_Zdcd?4@kd7@S z+quajn&aHJSGI~bA2NJ-a%=Vj$TO=(;DWds!H3;xBBq-|#HP*M^nJ_@cXd$R)rH2m zqV*HYb8g#_FY7uuUU03<)!ye&DsT1-PTwAIp7+`r{+aINXZDKcPGPa^HRKQ6!{<>4 ztxYNJ$y#YWsMc6r;{#tvREzUxH3v4`8ZH%zQV1}a z$)JAs$Npm(aaZKBqArQ`%v^UKJ+0&ZR^PV03cGz#_1q~~n6v{}=-nQJBe=QbvWpbJ z0J@-DddXsH_x%`kFs$$F<-Mmxf^pp5ch*b~uN84t!?Z5#$y(EH$YoodE;M`O>FHs% z=onsUm~%&Is#dNgEBcn_Oo(?Z{;qOd{B?9Hd7`XwCfzGqOZPR*GNJ3+TMDQWwReY;koZQJ0jrQ>ltd*R%KWTB8P{{M>YXRSd7!G9> z!v*>LBRGvEcb%&_tTG;+KjEaWR4dfgx98GRE9s)=B6hy;8~6r)N!riUJmd{P=yOb} zQ{lJV_2(CPnbQP2HH#HN6~VVM&7q%C`Udzpo`Q?hcDRMpYr(F)D91gy$YJfJxU7pM zHV;ES3|VqHwXBpr`23@t>Z9SY39w)fs9G)PW-}px*Gj?%o9m^f<)%}2-hCyYM)Qr= zILKZfa5Y*LKb7DeIrX-~M9VPmW}kdkw=rv-wLwOU_Ub6d#HKtNtZD%L~L^E2+yjE@sk z{~tjt!`$kMKNKn!@Nat-GjgZ%zTCpG4zNN}tLNKWhp@)3@i*l%QDs7A_q8)tKT6gG zV3Z6D&*|T87t-eD>9axqdK+o^;3>Z1;HiS!c0_qhzNma^hqkB-*q&EdB5SEn8?hUC(gqc3KE9Z>w7HXPw{n>)!`+cs6A|(7;PbY6;n! z*u3}7W`_H%IQ{HLPA=}qEmn0GUsFb!lgW0%fxYj6_^)#}I8K^V9?nY5k1if>zCHZm zt7b~|xc~F;Mf|7xpmOOqtx{!TN}cblSH7x_1qB2?SJ2m;DfiURbnOiJq-v^!K`ZMA zH}~Y9xiH(97N%Uav1Kl16EldDHS5ssy;@n+pOk+Ft{Fdbe5BY$+4!veeupM|((?ix z9)QKU(ZTT%-~G*}E6CqJJ^EiX3+3cRk&`>^*g|CJ-pe5lfQ5!mm)1;Vd;3<#52w&m z`T)a+!vM^g=Tn?^<-eJU@gMZ)o@Et}FQOATeG^uN+ccS_8#}~gaZ5~LhTHpHs#Y9t zLVxNo9j6Z77B zUySmaCa!)Rwz7yJ-%#o9O)USYo-TWj$U*D*GHilfrdm?j+F63pMy8@G}TOj7d1JrHycKyz~q#Ke-c5tU|OVYdt&J+pmGauzrMf?DnY@|{nAbPBpF5;vp6N>$C`j(u2B?R zHtTnh%v1fwS;Gei)$8O`BXOvZ7w|qV50efI4;~|in>Xw_vwI~ze*WRLBi;iO+1fCP zG0xLWLQM6NmXV3!F!6iOdUS^cIUKJ!PlDf=%Ec!i$L<8{2i9KYuUU|j<-3m>d^kN3 zpXg)piMVp!y{Y`#UH$0V@At{hVrJ`JK06B!LJ+NCg)L^~9J8PmoA9qU{E64^rAxKB z+1!KrCHS6Y@8_l{if`BK49byq2uKG$i|YnL8#v?3TBpVqrG^f^KgvRoEl;Yg`)jW& z%n}Ww$Pfd=%MB_fp5iX=gM$!QO@wUaApJ)wR(0(wK-$47J&R|o)}x(8HWEL@ZP{Z| zA^{S|rM$STWs=wCi~`qW;!F1?-9H)*nvq*WrcG;yb{A)Pwi1LcNr?kg5 zXbq5!^3NQ2g)j22XngU0I2sGYQF)VcW#O3Tr;^#H7_F!`z*^t-YF;Ss~nYeF@rK4e|gqq0nG zX+FX?r|!=0lzEbhW%FsZ9{e)O(DeMLrDoQ|{kxM{Yio+-JVcG|H0kd7#zCt@N`qbJ z(6&1}S`XKl5Z_7ECJw(|QfwwBkOg0xQ-Q$t zsroqF_BBbDqGvBKV3_Tf(HYiq9c`8qc#wGi=inK{&`1+|-wFZu_*0zYXa`L2X4ZG{ z(HUjxfFE-Id*ePd7MD`|9|9!p1oHC+pVX+sYIY+k>Y9Mfne{=Up{n&mMq}RjZt>X# z=3K}i_Gk~@8`EMgMFX3tKJjAK`)`_)ubEKrDo{I-0t zS{jAj#MGRpLr9FhC~-^FgbAG=IOxmt<>Rs)} zuG3^8O;3!M2u#&y!a$wFQ47tEA*y1O1aDrrxOv|-bA#`S=^ML_NBBn0UJjWyhLFH% z()h7gMCAmJC5a=mEYn5~DpAw>X___d@LRr#j!fI)7RKA${;nds#3tF%sF3%KtP`ih ziG*tf#z>y%4(D-b<6~U>h<7g>ANbslI%EKiD%TyP6NowgQxeb;>Ht91?8di6(_&d5Y;`j zdyK{@$@b0@;%x(NY~5SR*%G*iW3JIcJp0_W^S*uweH^AqeB6ugvuM_VYpq&>(G&If zl{@EZiEXiX>%Bg#_)KlAgF{M8^oWp^yxxJU9cLr8go4Q#8K(vJ+?q(-j^#44I&0;- zee5kbl^M#%;TXNdl@exJ)}heu(}q+Q(lHrj`y;jbdmJ!IT!lM9c3lg(&+s20FB2;nnnNCh2ctbvr=~j2llqN!$BH*1))BSTfliKg1 zpWZWQNY5KYU&+pv-0$5|V0*y9X%adSsDSdudtaKCuzweK>b-7o_n?;LGErbDfuR&o zKYnTU>x6!NdGbtjl&>&Iawb_QRmRO!Awdxs{>DPf>gO-+?)cBVdeZY5-s$C#q zoJ?Le1h{?w4c}r7KcVzU`ZyL4QoB^{VQblb6mO$_Bsd{losM*Q|iy6c3LbN?Sg1L*m!H z5T-oek*tj`YSxNK&fwtfs{m*?PqS>x-SSY;o78D3AV7H#Y?a6MDWHL8pPeI_TRuv2 ziY0Y!z4^RvtL4_TJmomShaH=fW0>zOpY6V(fH85?+iI~_v11{kAcA|%hO3jJsvVhY zuC@14*uwB*cNd3heFCai!y*R8QBk#UT%vut_TSNp7}sjxDfCAWp(QhGx_4R3mBwoc zfZc{O1~JMhgp2YVTmOzRLyD46u9mFH#8E%!TDSB5na}jesvr8e(EWta*i7>k2Y&Oz zW!c2jwAjE2%TqtbYAd|9u5R2~X~R(_-*F>Mw#MYm{@{1sn2VwQb1R1A$lBDu?pxLf z0fG(si)#1!ka*CvTSikPtszR~%f^jbUuijCYI3I|GUwKzlkQ`iXlhv&ZcLYay9#7j zJ5`i#YI|VLa}BEAWBNJ{A1^AJ%Uu=l$(lb8v5d>M z{Q;N8cNe*#o|T=9m5H_Qx40XeL#Fz@HTrO;0#{D%!&r-km!g$yjw5VDOmA4L6o;$I z;=*$oKvb8L`zBbynwV7yZO!|c{@>zZ@h_J&-X+aEZ8ZMkNcB6t;?ko5gzQKW7JpZg&P$r(0 z?8(y;o94C|9B{kmZf<)Kp*q;a6G>zY@!TGqzVEI;-wNth{>rV?b;3^Jie48aGC=1zdx-nFF{J}2sV27z9 zbqpTvbGQ~DOx{_PM=Fo!OFoark*typM&kLTJZ_nC7mI3LIQF7u*`tZ)jco`9aSRGk zpfx{aA}srUt9@5d_Jj)zf#VgES16jUZ{N+mvrw@=GCVm?l%Bs_2T}z>8eeNkF%Mhz z9!;f$5puX_XMCP+rjC58DWeOB(@J@L^phwpCT1eZctpme*X&se@{hM(T^Bd~i%OgVplXG-;NAOq}5iy82yjfKx{JKdrk5`RQWtCihymiwN* zb2!<{K>r#MHF!~-ju7U)sC0zdT-Ok>tJ{enDa0pnGHnLFZW()r5y5E8>b+vVA(|4X zp>XR?6wW7|Z#I_O*y82}*@SjYSnmo^*t)^Pjph#n1~JAQ6`YiC(+>=-`He&xrLcvm zXXS|0gk>M;+~?-ckM|^XW3z;c*Umvc0ikL+>IX#KQVvBmsmF5jr065nU^~Rwx4NGZ zW(RAz=GGVA3`Nub=w<(IVCLAZkH%56J+vj;@}Q!oDmR+`jvl;A-@e!kLNhjsbkW$L z6B{&|^C1-&k`;&!2TMUW&MUXM6f)`U9H`Vs;o9vN>~(^VMBlk%%;Ly4dR=R)BOxug zLD#L)#PODE=G03F)ko(S3hhr43uYczEz_DouQ_nk*d90o{h0l6od<8q{-bwNmXKVD%PsRsHJp_NrO-BytUDS>evpt~$Kd8h=un z1J#1Mb|sXT?C5Ruz#!O^CDQAMTpoIbAeN;q$fECqB(hN0sQQR$=c`Wa%u_|LPT7;{8u=;-HanR zmg^RLeVECRbt4%r_%`rG&*|fx>H?ho-c%$CXtKT_cvfbwbZ!8 z&9ZBgS0Huy^n1r6)USCtVPORd-0U-^{=8r@@PcfF`{?t!)BB_9zd-s6NGr=?Mw znaf{=UacG}3)HIM#NCf{3`DwY^557k%^$;osX)g{UxKMsE_vS|I$B2TbQU0)h~@Ih z;lE%jt4zU?G6?mEvaZ*Uyo&p=d#smLUtrePuh4fMx@S6XP!hPuG zIJqssR>|Jy>VI;dav$OXbm@z*oK#iY+X#mWO#Ni&P)(nEY)TS`cWhKjQ4RN#TlJ{v z0w$L4Ix#X-ZE=#HZ1sfUMrCn^lp(=GhdpP1IjtsE!TBk!ra z5$sI5IVT|+R{j|^ML|qhQ(m5&Cx27+lQo$ov8FlHy2EZX$m%-0u6&Kdgsbb{$h)a?X86=D4twChxUd`lk-*4z9w^)M9JA39Wjg*?CwvUJKef<8iglFJAbZ>) zgpPR~)#h~9j**dCF?gff^?=*iyk4sC+>wq>hyq$$&K6j=ogIPlVTBEvY;yqb&+n{WR!+FPaSz3(N!3Ao8j)-GbjNo zFC7Q#SZ(m3-rc;ff5mKDJfA3*WGdus8bH%g2XNK5BH|+-^%nh;%2R*PY~2DBa-5gO z=e(y;Q@qIsAsl~n-o@JSXv!}E_O>P-|93vO z*k^EG-`o^qL_aEA-l4-bgPT?TXHNtZ>fcK&;6}&)&u^Ef-yfJ|eaI^9XTO9fsED;( zsO3Tnym_qwD6|nu8tpe_88EsBQDImqR6RIGcwEBqmh1Y>yhp&Wrva;MvjwGL*w{9X z-;PN~cZ)90PEoCYeD06-D$VD-_%M}a&BKJR)0SrIN6p_(T~o-H-C1n^YY~((Pz&f_oXS!aC{K{C0iV;-;Tz5jck{o zgZ~kbS5e^O#?oHSqW}@8K-uw&VvDw=A(EfS=5ZTiWbe29ttxyatx=g-G`QB8DGpIY z?a4AYUW7b9LK(Gfi7n$)rQh}R%61>eCQ}@+`VcWfeXIk3HWg~P9Dq!$RK{jl9+E} z@?y6hJY)>Bk%WEAmB>V}Lqpl4gSDr{$=HNLKS1pBTWfe#&L3`{m-4^90Y@kQqQ^xM z87{YVJp^~mbQVsrZpn!3V7`J2=3a*Lse+Xe$&K!W(2Gq=2joi7&^9Q>#}iEjFv=Yi zBx-*VITv+j(ynmK6z#Ey)n zxuZ==EPE^K$n$7_Xs6}5d}?knR4t8cs$0oh2rd=AC-PVIe-M*azz^~vJiE97rg7zy z+@MAVsBCo^cD08R`W>L zjF$7boyK@ewRX}%U&|Y^dI&x6cd#SFP0#c)YJ`MQKO!BvP-KqNU{vUPq;trV&N&hx zfekm@v$oA=_ui}s2$nK@dczmF-|aaD{4(^LyOeFl>!|WSG7XE4fT0$Idnn1UZTKFetzP3Yf>f=0)v-kH zgm738$8n@xp8wXXGuQDIAO;4Peh-4&CB5YzVE>|lxl@q&#fkiV6A#&nh+DojJ{yD7 z>#+N?49|x(GyKz~vt2ZCxWh1sjTAKCDH5PNq_^HVOfjRNrQjfor+>n_!o`+r3yRFn z;?4SM0e>CB^Dn_hW(rd-8uE?|%vS|~pZY(@@@&hw$&Bu`ni$Pr z;RW}@HwoPc)@1*OC;h5wfzc#uOChWmnhe+0@U*%wU!qWxpUZo`sr)hE+x_wo1L$hH zqMT$MB-#AlgkGvPv*QTJCwuOMz^;+r+vRq1;_+TPq;7ZWS@aZzY(!;@RD?Eew!NJj zf0K}x0m$A<9Y=f}0!}k?_21sRP)G2oVwGf*5+H7J$>L{~NY0m@zA3&<$um4}?u9C7-5gBO4(?u$gP`lrnNW3R zSW2yyy@(eh$%huedyybaVA)(LC~wu?{`^#p7lU11vzC7%Z#>$Z-kMoU!1lgeV)1`L zNCEo)g^+L({vf0?=KnoHN@24g_#u+bOp}mk{(-BQ0O9)hYoywTWjO(@Ol4IW-=;Lm z^){tb=o{BLl6(2$e%AO~w?1q4k&CM_qgf~i<&0d2x2F@8;A0w9gTPN6Jw=lgJi6WV z>{^3Gc%|Gvua4pzZi64Xqk9-i8M((e3Vj;Gkbu*sut;|RPdO%+mylot8>}y}P=tW3 z9?&B>J5MY+n7sU+;wz1Zd?Yoq;;xWbn{~f+2_BR9s|VKV$!&2@(bCeoi!Izcv7E7l7K(W7h5DVB4mQqo!w|w@@K*nE^?@`?yKC1oTo=yI`@p- zWeZ)hLKN1;eLT2n_#VW$9oTTyMMNE0LiNX_PMLK&M=MTKV_A9e!H;&;(R_jxzBm?P zt{=9GYwQ;J=@lr#U1bZg>@}a=+6x3J6Y z0ZCT@Lp2DQAu=LWtxgz!F^#4?Z}|^DGIARzRsE_>)0HFjA)_X3_$AKKHprszGZ6Id zccB4iMVBWycEI~`z=UIk$!AFZNy=G4RX{x25D$D(avVEfc{h-e6yT^=43dFc+4%pDWHzSaOWG~;xj3C5>7cIVAlN(Tb zEn#9O;*4<_!ayvfn7d5pnZ_TWy4j2J?Ko>{bp&;CEodzJUetpc4vt|G)>uJ4{~Fow zsh@4_NL@UMko&;(;b5(GSXTA}Q%@k9#%KRuIJ(c5fx5yu)WX=&e2}Pftnlmmx)H7@ zkw=GZkOAyLj=+9A2`l{IZQh!0(zbuRi_`X!XS1A8v@P2h^u;(8&Zs{9VnXQ#biAkasHGW2HFz_+T!Pu5!`2}ALl)ElZt=8NGpv} zi0AQS@7T%6(Xp#ZA4##yfctUh@_)KVieG@jvGrb6JsbeSu-q4%A&R!$erzAYdD7ib zNxTT!dxD@uha2{bLkK6Eu3VPcdY`nxug0@yM^Xt9YxM%l^yTJQW12%NDIDhpxBncR zQ`2(pMv~Sqlp6y|Bqa{-%zc7F2DZ)>nEnldUY+IDkN@F7Z=>SxEuR0-86!O!;7LE2 zq)=e=Sc$L<4+@N0g~?LPk%mrHrbf+zpo$hU=O z0|L(*eA8T$Zd*^+GS7}Dt7qn$(V{wDiWliV4dh^V{BbgDc4B^+Dtp|^E#aN3l4YSIP-o#HDnErDXg1lG9MpRp(%sEcucmr7{ zd|-MJ9={mXrb3k~hf=q`Z1ee*KgB@O;L6Nyt187>IwiCHNu0*50=jd^`;m&(F`Llk zmz5{3=>NGr z-B`!(T>K9Vg!TRZh=Iyz@;i|UKDt=DTQiKMy);38*5DgFgKjX;-}+g{#-OoeVy7L- zxlriXfvoMW^!{bzz5y8CG z^kmOuOGvd^P1j+zp?*=n+CKMiwFl{9zo7oga^kCp4~wnP;1-49YRnlXKkb5C;i2ac zcO{xmVhX$Do5q8!H30zNNnm1Gw#`t(U^;Z`Q?(fkevgIS-e`Z&AusmeIv8wealURy zqH$nT|DaV^J1bj8S&d(n?n)!U;2-`hes}CWvmR9*xh#?MitYwqLetlK@mK$i0_n(; zCRp%NqiD$PA~TVE!1S_SJRwf-!=lP@l)@6SIlb>69!nRnkE=EutO_Ylrh-9S&1Bgt zW{DeAPKwipweJoK6YGfA@YCez1e8=)7rDO|>awV~pSygWX zV3aqTtl+gMlk8bqLv)=O%ZYMOh)Fng)C7iss7LsrBD!U1phDBaQ=KmRY5R~)0}!(W zXVkSRk}IiN&syM>@tSzlHGeL$)Xhh4d~dw=8K-n1v6HhbyOlOeA@9MG=y4pGY5MMz@2t0{+wQ(oW)qNd*QCR_ zW*@W|;nxV6u6{5h`?P*VG>Q7M6mwc1MxBCO(!g9e28L#D%SpCp@JtTG+PPBml;3Z< zq_@-%(1h@RU3uL=N|mxn8t}y}HTh?!9q^Ybqu@J~_%&4`!1l9AM8qNu_z}KgfXMg* zl36EuooYk)H&TpZ9FH0}#&T9bbon;C8>?T7q_Bo*wDsVbM-_Exbu5w6Y%(T33!ebN zbTUnF9vQHjSUuUkPoa!EJ3k3_i%;H6vJ#CFu#3F{XXMRM2lwt=4ewvFu}4?s!mlp3 zI%(6ppKDK`hAH%SV^<9}&;-XEnJLecerFg*R(+4E^80#u4qz9!tvWX9-Xe3kDzBz^ zC4|l*v>tuFIpAp7f&faiZI(!;N|Bw~S9~*B!jrj?XNU2BPn|~oN9u%F_dio7=YLSA zfGuj<=7sfInK=i(g!p+oLd@$kV{w$;F+zC{I^WvHr8AU%6{p%$&PaX*j!z2mIhhc% zduqa9?=%;h4<#}&cdqDYW(A79d(jc$I$CpsDtUJrWwN*u>PK)6NwapDUcl4|ufjLs<>&puSSbo%jifnMKsZeGX>H@;)ZZ}Sjq7m(7W*1VKXu8TfN z##s`me6#6yZ+bQ9N92+>mi24v^pL+W&Bnr9C~)tkVp&^9Vw{A-#uhsmV?<8k8lTCU zcVEHGMn)UAfJLE+{~nJtG-CnF!=}+)KTlWDPlDSGJts0z^$2^Q_(IX^`$f21KYCYQ z7oe2kr|j;gY0LoE;!S6=z8aFAwKSuBMZBkkq17M4Bn7-WUQyt4KAJ33Kkg>9$(CVh zQf+yr`7?y18$dJp1a*Q?q>m7=V6ziTNdNmhi=|q4bxdO|t8^`9J z9wVvlhjL0VOX>jtbh<3LuCQEvJ9?u|^5PAkm}-3_yme+-Oplx$cj?rL5POEuWB6q% zSL^nK;7vI#ec5z%-pVWO+~UdFTu;cBz$&+c@q`VWPj_);FVje2JNH^i_>M3{cRH8MH1HRzfLOrdGqobM6#PjW@%ig+ zlnz~ruhv%(;`wjG`{JE)x=IZ{18#r#CW_3vFc)h^!xJ-LJu#?$mZ78PQ)nUX)In#a z(c7dyPOa~^-9CaTcHqjDK5+h1lUj76$TQ0DHfsYaXPe5;Yb;2%0<*QMV`^EK9P_aC z^v58JLZ|-hP03&r6o?i}z8hinZ$~Z<5<(R-Jbcbd`Mj>9E?%TrO=5P|EQL*`B39po zwN~yDGm;AY$w+coT@hSsASQl$B|y@^2HLsM>mvNdgJoVU?a(z&T2TS}V zaM3Fz5^IZfM%KR8BC$i8Q6ZT^>Oly)I)^Y=(q z7SH9qt=suLbPS+ArhRlcQTN>_nFkW}0J>8-<(_$S+Ef*}aWudLo+8O3UjbWMJ9`kr z?b}3sDGn-j?|FI2#9SbL&@Y&h#ec{d`odYIx$NWlnRC*wG_v*df15>ODJ+|RcZ(w4 zK9Qfj*L>WJ$^}?V5@JL1tAnyh*07fF|0!LSqk3Gw#LXZpVzB~t8DS}Nh$Q`C;TY(Y zAO5M!mB*KYo823CeImLhf0$<~)Z4R>1g=%u(Zx7W@|Q2}X?akPqfK=i{+!z~O-w%G z?}Lwu?`TIy?|x}#B;w`z$_mx2E0_#5*S?q|G6jLGg+iW zpYPcfI=1hdpUKTtofj!4O#pxMIAfBs{0-* zVtf9Gj(QBvcE=&?p;Yn%;FsYNN()}qgpLkXt$YW%_%H&ymTNGseFy7Nl((6CG3MCP zWGofESQX{$f)qIkQCe2?9B^;!xU-N^rJyYFz`*`V4N^n#mnlts^LX1|S!qtNdvnZq zskz`(grazIZk`>b<$nMV@B;>F%Ly(pe%~Jv&`_Ht@RkasF8NUGQ@=X;eZa zI3FkQ)gA#+>5N!$;{m7=z*hwRMMZjq!L``AlH&#k&HE{Nj zGicPp2b>?sX9e!@5N_9rHS$_N;MN@?s$gcFT}H<%GDM|b3eM!gh&kZ%dmnd`+&wZEY&+d%qkKsOFni#v$_135-$egusTASprS@o!j zm?Y^3EGk)+TLdwzOtt%jg<9r2FcD^>80x2p97^))52FtJ9m#au?N5g{7%mFYuFIV| zFG9mt&nw4)I6`|ZRvZ~(pYALppG{G4x@fEEHIj6O7{Jn4);MTD2aU zlBmv3<;KVjha1I5GF#6}wcEY`1JsP^ zOa7g9ItQKiKI5?xOO^oS(*@*8_X+GyvE$_`i9psPcX$YC>ai^DbC@k1AVEobgrH!+ z;OV60$q6Cf^;=*@mZt~Fhh7AXP1l(WG)m%zv#31vFuZK%-x*w7uYnD(4VqHQO)2H@ zc9F(Ea}B9w*$h@U0!+$m;WTmZ4I<8HOHRmcm4G~4feV?{8!LQ~dm%(~;(qMLdjXdDLye)auj(=i5prS|q0A?u2%cmv-mudW^()aA`XajaK&$W672|%5HJCL*onaO z#085f?XiVjd}d@3VMN}Ui~;f6?A`Fj>%fg~t8KGH-+SqFRB{6rqcCAEb={52ocZ`? z5s_P{sTA9K8A-$G+DCLIoOUzau5=ZZfsb&9-&*#60eR~`bVz|jE1PYssSekCiS`bL zp*8m4HMM08sCU=|d8osoz925V8;^YcQN_!GzU$AsgejZ{ZhSZQcFVa9&SAW^H6 zBF>k!a>V|DmXh;0nyv8V3*SbxB32nS$rP(S;+3TuZ-sS(qWeIc{yptMOF=7el1JnL zGM87{fD&^i)-dWiHxKlN;f!{;DUdTKFO{HN9N}aVO=)ECG)IpmIihH=!;4a{jj~hl zppsS2csL5n`pua4^k&^3!GsEOpa)AvVJ(Eo`!{{w`d2ne8WnX~el)CH{0`RpGOFo? zmI1vBTz%;4Msu$Jz~ia8w41~~9jC&tO?I~!!k*yd{}ZI%wYS+d0v+|HmcDE3f-vw& zxL*w_r3C)22mBInlm>PDlZ@}q0_zQ!iwci# z)oszh#AR0`yO1sMWscsNhbHG^m6Q9ZJL9=FeT5>PM}Nm_kK$uxxvd|I(?T`xxib=H zBj?k!jtsKu(3Z^(ImEmpm+aA7dQLM8H;*ZfI5K|KE;l-2K%oV=GY{!ulP#DG*Wit1 zW2jqK8I2iX1nn43(sTfaqd9i*ozEz|8w$>?fWt-@6u+IPs0=zU3ju4j;W+?EC`p?0a3owNs`_&HMh?r{!xQy9>+sw1%(es8^r4dhzo zZ_)sIW|?VcsbOS)!-q8A^ZMZ#ajzAb;W(b?o5iOLR}a2s# zBs;fIdCo#;B<*J%`^IYr)1=$7uJBRMd2Zt98m1j6G^SES9{4m+sh*pzcMg?^@8ntjYF>$J#s6q zAasrn3IApiNKL-6lX8)E6rx$TcP^#QoTPQAHkwu2jnZs)OPu+Vi`!62HXhYB+Jx`}^>Dy9 z@8nZrY~>l~(Ss_74Esan^+IV8LiBhXQ8~7xLo15qgYp{+m}&ys=u+GqojAa2hcl?; zLlx!7@=LE@Kt2lBaq#j?_pAlHGQF#PS2kl?x*#9{<>#hcL2=emsdgT2*(Q;&+DP+r zR)~e*A%WQ(n{~(<9z>8lg$^yNg^Vu+Y{a!N)c>q#AYb|gw!TWGJy;&r32WVWDqepv zE_2D?!>KwZBAKcg{W8sm&HXHNOmo|TBAKl9ni*lTO(pjP)K{XryAlY*fcr=>Sji%{ z^YKre`KfioA?JLx6`|Eqy;@7`!OmC~>!KI*uzdNkH=4q&??3hb3^TCGui2?FSol;u z@_SV2=UzbvejYio*xY+~pXv6FJq@AwO@a-;+wxeL3FCuCb+-D4Ts*-ApNQ|U6-pF< zgCxAkKZ6fG)ssO-=ML!bMSEpUjPnBEe6H4IZ^+vf=@hmS4qpvsiFdl56(jDHyoMu| z?CQf$AxswYV|s!a+%VN;b**kMjptlZ>-ksP?tA^p4bZs>No?+S5V}<8VX}hn`miU>{dlSJ zbN9i^VoN7JcKF52HLdxFMXz)&zL;$_;pb*&3{XK1)O>OI5i_*=fcG3auAds;4Bs#XHJDHu81%n z47!CMc%Av!VUZkiAKno>-|hcej*)p>l-fdzFktXG6SKTx_Z`zim)?Y;@Z!l6f>bOW+?<;%H(5kWPokE51o)x`(-`|dMZuy> z%buZ%G3ktq(u2pI{lqNyqMn_O?D@NGlkI;eX(ULU{`GAMPZ{jB^pRsIhFT2{BYLDk za(d<`>u-fq^nJ9$!pAEsmLXcn*uRrpvD|K8a*hL zU|K^&LuuLPno1klTNQ-byBZaM2bqq#6{CE3_@H)^Yp*-kKtNo0B77yqd78}&iV8Y< zv4ekzHi(zhxWgUYUiJVx~@0WlN>lqj#~|ACcYj+~lo~_9UyXSlTOO zmByZa7~+LhavnE&TCKBP4R~MOe9tiLbRLNLt)mam3+Mf~@t-0aK^1QmSdEQ|nhW|- zu7|<5?JWgrLq3r^K?$%pZN@~IaRG0p6t;IrtpjU~qj?Ex}U0iWc zhV#x0ydx-JwebbOIsF1SzA;=^c+^j`osSs14dkcxTN#JfK9dRuJUQa8zwi z{~IzQZ*Xvt^=Tky$6=)lOgH`uCX7FyeI2tQs#${O`b9j@&F{HFRP@#Rq1WL2&&!*l zc1n1l&J~$lvF7@Zb?u5#JWksCMHQkdP6~pUKh3tyMc>eG+SSeW2Zg-$7N>lk8{qLR z5Y*nc?l0;1<+5D&Ti~X!Si9@TV}<6C@Rk}{8RZK_rAX&iyr+y|JsJ5;dsG4CS_oQ0&*A%_g{FnNGg0R0f$!j{ z3&)hF)D~jXz$|$Ir34eoIFH^5>%wLyPwFS}yNAYe#>i3KrezB_t9$`uVn255i3;Vj z_3*P^BGXLPAjj#@;Rmb5o{hF^vl*YS0RUD zOm$JW-0kSrG_rOBY8uv^tD|g+r}kydxQL|f6hIs*73=>5V>EI9f-#!w+%oHYv{zKe zfVA>trU$+Z-G?F#>Y^KKc(|F#2_tLGZsM~i$7XHm|LEA1`u)SPA)H`hraj|!^v{wk zxmNA|-c(667Sulhjz9O5Up!cM-*>tWZ}z@CdzgN?m{bXZ2`%J&__DzS0W~k+G=tFq zgFCsz6rRF4%0O73k#$w?pM=(${a*G(P|wKMLrb2BkvGU?Vl*tr2}}2&9e!|q1#>T-DY8VIM2iS-^~g5 z!s&)p04DzB>M0^_+8sxy$?un<1e(}~H~He(bfxeaaY9W+NpVGy%uKeTRb%ym+F$VG z+r^QqimMehi8iF)r!i9GBJOcgJpbZ}Q~A{RGnaI%L?v8M)19Qf(IuUe>_>eweWC3^tnSChh0zl+8)q8-UQhkT^S%bd z{W0e3VZD?)4JhW7T|MC+;eAM!q@LUscCmW+N%p$a1w!VxEkZ>cy3ct)@5$|%!E~@O`}Y5; z*L>^uMEdyuqSqwA3nhN!a?qp@fctz8E6~xs}quSbT}+_NHQ=5%r-N7#!aVBT40SC?{Fy?_`-Sobj8VNP*;!* z`435VCuZ?$?|xMLMuL+#0M5|PtPUL>An;?)I?p3AaR-QMt4~CcU(HSBh{GXS73*(# zUYvey6wDi=4#%MpEU)KHhV?_(<$kwI7x~HiPE6jIYQxRz;d?~Zfr?b4_b1)um5!Te zkU&g?Sa@zl|7*2#o)FkZNq-MheT+f)75$W=sz(I> z1hIIz zcJ5}PoVlHqAJ~Znccr_d*iC69hl+~mW8hY+`0{8$dO;2teDWR;Hm2e-IZ+Kp%?nUE z=#E2}tk?`!HrGt{HK+OMCrpVwW6wP*B7?}Bm0jx%IDY^g?FfZCWbLYR8X>}h0`kUz zLG-Q?L^KRy8YXlQCpNFin;13Ilj^@ zg(LjV#tD}i4?=LZ4%wExjED!IwG8h8P)(79WDH~2NUzl6an!IYX@dG)>qCC|ipqcg z00V?p9o96JBqqDC_c8yrr zAqsh9PK``?=rSC{u>lO-4v3_YNiT)Ctgq1qgo9(o>nZ=)wo|GWH^c~wj&}E(lsnhy z*F*=h_&7x+p}%P%^y;k?VAB667&qUKzMw+X^(Us(O02q7LH>`V5}mp+?=3sR%;hA0 zfu;;75~r+p_h^uf|Bk<*G2+*TH5Nw~qrwL*@B`J>eb?y$J7|LVk%xL$d}1mc;Ui6( zvzwKpqA^lW-QtVh(B8|az2apMcJQS4ZKL7hmgWX&u$ z!ym!V*Qw!|99h`&^_`-(-o}ufUs;t+KFgW6BEQ_CvvG_(b6@A7P-#rBa}sZOB2I!6 z9l@lHJBOjpCRM8oP{*3fge|*Cvk0ASDDhZ_R5R&VL;tHi(Cf?9qIpP~J`!e+N}{3u zg1|uMDPHF-5KM2tc1dzf!~deCCf!q3Fwotqv2=d=aPG@7%j@M!{AsgYFI**PzQ7CT zkn*4r(HA~)a_ZDf%F`FsF^FMe$o2H04#o-KIu2k}+Gfz#$FLx-gA4Q7how_?%Hisc zX`8u!Nh;6cW$gwz$$Lraq@d>`6JJ$ix=>JHZ5{4_9(FnT;~$R+Fn83y_oiv0R0B5s z#4aKeON8!!JaeGY8QLM^q?-i;G>(!)cyrLfQQZ_EQa!6ItdHuhA*e$&%ZGQFR!$t8 zs{T<9f|Ed)@ZSPT2jwqbzyeC9TZE81$A1NsNFX0Mp|R*S>ZptS1ilQvU~}hkXMdrZ zO7j1WIWnV|JP5ltResj+;*mI*dEmWi%J#GSZj{(}ZESxA9R|N8=`mnAt+H<<3SLjO zmsJ}+EhD4OC)P2QZ&tU|IiB}*+=42ZvJ4e#*gSek)+QdYHlaWAi>`_wEu5l=cvug! zg6(mjGW0qjKbWbu%uGmY6gL~SXYL7*4dC;$HqWx|KLR?x)Gk*U` zEP*@c)EDyzOqO=ld5S6ZOyr4#rewBo!d_PFe`mF)m=2#d!xi7h~{iB|&$E8n_q^k|;rCw5H&=8k9XoElexS{j#6 z)9T5=+9eo-5}PH^wT$ncWs5HFcqvPcnTmp27`;+(o;w=&LZd77+F8L~h!;1dwiyii z>J|KApqE9{e~N>ckN<0VD%gTXl8O3m1zw21KEXO^@B+Ti#hW~l4|Sis91v-DoHiUB zVY@8USF%>_#KHLCT)9@6rZf`=wuN@r|7{#yMfoj1j&J!q`9`7Y#a7*hSrWN z!gO5Ns}#RHMg}F4Xj{VH8Q7nn5j-tR^`j0(Y)a(N{mMLZU&6s+Q==khuCot}1h8!H zbZSZ_70d*v$bb1~!K@cgP7CUAzP^AttW?>@vCSSci;E8CBu0-QW8OSE*f%_-rdq%F z{{LL{BXjWD8dT-d+ExGxt z=B;}6?@}*|d8T4n6>m1ki_tIhd@Z$3r$pJ58>1gE+58xxRkux&o)Onp@U7C7E{nfk zO)xUMJ2?iAN|T1jhF&*zn*DCO%pKJlP5N14kb_-GObp+X`^v6PLl{?dp1jh;e<e6xz6V|LvX$F$e@04Mkob@!4`B*{J$>6Kb5aJyqZ|Xr9wzs}iz>$>DY+tB zXU~ov$2yiKNZEhYwhI{sd$CljYQ$&KN!;nLQPF2;Y}$wU5-kGR%K>rTGKa zdn^yDLeA8*r?p5Xgi{yc%zv>$BlJ)C=I+6nJ3^X)Dq^{}{t+;RSOY13nn*p$ ztN-xu5aiJ4iu$HVU_=#UZ)0?;snWCIm8;}PHGC<))S2SRNxN&0HIR$Uqn)o_z>A$L zzXypuN*cBqx@`pQBl|Xt>{#MKzQQ^$5rOikxyc+WN_|7<1s&I}l*F6WQUl{b1MU)O zFN(R?zf_Weztesa-}-2|EFp;o>QRUVY6N`qcicLIbv<7n146Ome$Uthzo!i0`m_n5 z)`f9RUJAYynH#}-bz)WoL234w2^&q=mqxjd{YY(I*%wbh> z0_7Wdq+vDYPySD;(@%LR!N2FFWJwyQsycW+7158U=k&cF9!WH(&40J)k?@z>5Uw+RV{W;Zp$ZikY6wOFSq3a<(~*u=~5j_(YpvXQjl3ZZaH=w;KwvqacVv`D|Tgm4Os)c zMsr54Fc5Ps9`xo1;k8fEDrN95W zOf}f=Pz(4g$GM_66J$mS@o^Ufz_t&k~X1$+wb~msN{eZXAc_a5-03PPZ zq{DAxY;&}_wLwtd1xK`ms?Qtcypq<+#ixHjLqRH-D4_)j2Kj=dunBh6>JrFgC9)E^ zNVv0VVboy4ceodqT6x7R7Cs}Wmga%gM?7pWH~-D=v#8*v5u@pi>jLk3^DezhH{L5H zn@$ZL*G|cZz!GM+rHu{wNCBFagU%u+o7$5`i-;~)FMGMGl^Eh4@y&flBEEmN_#CX! zKFKv3j_wURP|8xre9;@b_+t44ySO>o_nm|Pv1>?@-1zio<`G-g4pfvN#kmJ>w1$l? zC#3&b;S-xFOEtIR4PEZte~S%Of`HL`I=!d5`uoE^XIw!-kH1w3LC#gd)(JN=t;g^V z&B7_a$;*$3DJE-bvk87PK+Pl0Di;_@7Ugc5pA8MHNVhu$UZX|~hbuN)(?mZd-q-=_ z3YdxV+qeL0(ntL#+lC;R|1aBSLC7?N=#*g{OnmG3k=Trk`&f8BjmGo;VehTuqWb=| zZ@#u7A|=woAP6HM-5}D^5xBC8Pj`+7B@{WG=*H8X?@=B7g8;ZMV5O?P7GOE`VZq z1|pe`FJhyrEoWL9*lfvDDQGAQx3tpmlpci^HeA<_c!b6ngX{^)~oA$SBIS5_5h$_ZMF@F;#=(! zM*ix&_t^q$#IppYeJ+kO6`|k(#StOeu#hB*RNmpWj$=snieT3xoP8l+6_K!rqh$Zb zu`cZSle@jcU!5BPTrp=PBbXqvSnogTIS6X-(6!%sP855d{Ufupx&;BElZD|cCBzGJ zJ&!fq2UqD1H&i%U$&~Z_HsM7kCA@VX$#W-+`uuzx? zeRQ_b`3~mPg4;SLKNPwDpHPj<&9`wbusqW-R<_DGKcxl(`5-~*9B_#vXW~nx3`pi6v0VbV zTKbGRIZP}}uPW&o=@w-MaGuOyEvUEw+70lu%$zdq!LhSYIbHGGYP^IjjCxeYt*YXc z`h7Z53kj zK~C~AGDQb@hprAw^{%2&4)Rjd<$oRWU;va>O)bWBx1+k+`{j74NbQf{B7aJ0lWxW0 z;R)tS)T%?CWIN(}=80_@CGS}4epKI7zbAkZvj-U6fMJ>+V=;*kDWgpkk1bL3+Q1-}@tHQ!E!?}z&$y&DAJ!x0b%+^s* zbK4Y#wz7`eeUW?sc=!fjl9zH!=2FtZJLpa)0~sd(9rR5qvrPl1j_IlAF7kd zzG7)Zm&Mwy44AsDw|@K*WSm_HDQO?|^XF9|US_bETsJiW6d598K#^%&wT+mFG<{dJ zYg{tqA|15F3df_=CYf9$e@zg&`*^$&(tPLWPvDL1b>5JNzT}f_K(??P>!wB{Ran$0 zM@Gl`!ibb-irn+lEN1{(47pHd8sc(AF*}f>6b`|P#HpJK&ZJ{hu?J#8UWhD=UJ015Z%GR7T$B0j^AQGvJ6oM`E_Ig7y9%>}J@vnJ zmY@rrC4#hEN8TV<(8T9E=ysY*_0(xw@C{PWY7y}yr{04q@ZekCZa`$Q!-WHZrCfI8 zg1=3sP8;-x<%vR(h>HuOgPux`9?4YP(aaxe{y=;zsevi)#jIa9Ph*c|g<0X+_Q6}9 zA0o|Tc5Z2x+?wh^+MKd^fLAjFZT+RUsHAA8$D*})h*ED?j4A;I5x@&9(DQ{MTI2`& ze0|RM_d?gD9xaG9mOL4df<07FB63_>_P)zIs_*Z@!J9~h_59^UMTNB8q^C@Ma(+EU z8>ubLUVeHe$OQj{nkq@Dp91A4{hBV!@Qlv`^!T2F#tvZ*1Lb2V#msn0*m3j8xh9rm zdB2hV=(&ScFtgA?sVa5V+8*p9>Y?P-EM z$c;Hvaw(!cf%@^xleF_M>0?_0)e~@gOqt4VZmh1f1&D3oyG~d-QIo_UB*fggWDUxA zbisAjMY|N;x}9O5XCtBp^zSnQU;{J4lN0mu+;qQ`mDb-dV=~lI5DOD8DWi$TKY~BG zWNoh&*NqD#sFKYpZUw1 zGm>uEwM(=*d-~1V{Di&)VMEFz_%8KhUw-cHt#CdNk-5$3j-U^VVuIt)wO~{)yX3-9 zh7B!HG28A#^}P46EOI7nN+H`FrmoLeu(~i9cYR-$K=2(Ml8I>iE>@^oJBM-3T?~zp zTtHQifPcrd*b2>V-11HQ*s(QdD}#HTyvECl&sD#YB`_#A5LO=Cv^#Fa^AkbT>qf7t zYv0nUaMpdzY;mLcTDD7W0!ItWi-y3vv;|a?0idcBJz#Q#Ty{0pZN~^e3fSxGbZf82 zUm<1$ZaBaRc*3@KAnxc6`CGT(1#}B-4g3bZGQBW*stY>s#w%sj+&j2MDFAWpPjg9^ z`GvVea9i$|bn)uy)hGD5>kUo0Vi($lg~C-D7U3-IN8l9T5^=WP)SI)?==hP;c(_}4 zVKgZkZ~O}wJW8O^=R|p6pOiiSIjK~BGFP4#th=`=$di!yf_nON(7%>?;7cz+2<`;2 z7a$-Y=!6AQ z_tECrQCF<|HXPr+a%sjKcm%1A;=;|tee|!aOajleKU&4Jfb*S*Ph>_wkKZCh5e4e| zV%&n@s-`FJxy6Sk-lt*u$&IJVid9`Bt|gseCO5-yfV)N)rf&7wr1n*J^4)EMWJ1+o$0=O)jmY7T1w?CI9bG6szr?n~qcN-5Rtwvnw5$*_zTr!d*}Q}Ytm zk%%$_nHJ9KXIR^~vD#Q4_yC`X`JfglFzd#;QZ?&H1|(X7Dy?So;L?r* z^!@vqJQivRCYErw+p8cg;j_)RY;b;w#67$My5zaQJw4ZRN^Yrqx10Q1RbTnUNoAhk zUM(OBZXPeDlwTI%!JQm(0M^%~fN7hUxZz(Um2$?$rgXaB)sI%Jcdcm_3)7nwMYg^^ zBdjSHa&u2Hw z8z(=zk_>EeOxTzwduactjcWCiT`FDi0jw)|c3O=FH01^#ki!5O#OT;IH6+yd`YsCn+M? ztd>{M_tMLGE*iF3^r$1)P;LhPQZzq7Qsx?-aOSHFL752sgk+XM#R1=5qB%8z_I0T? zl^l9Y;yhUeKZT5j1$FNgi7qpb%X&uXUVqm!66Id%N3DoYZ7nRy8WJBkvnV>gDR)kX zh}Aw*>Dsgd6abDTPTHlG!jW<67bjd=w#DWi-%1t`nVHq}H1fVC4G^sDJ8(F1m}FQM z=bo~aZ71V3BGZP@bZx7!s88JBa%-!wQo)%o^OZDpOs$7(c+_YBhJuQ{G-(LlEWqT= z$%vc7>1+@B#J!(U`%Y7pX)O_Gp^;L+!||3f*t7YqM(eV^c2BW`_RfLkp)2#GU=Gb4 zIY$=O{{Y+t{=kjwXCw_&9!Yp!L;$(yPjiN8i)fF_uJafVbR>SzLz4%WELpgB@T=5Ry?rdG^ID^C+mW*w-CZ*rH@4>w6t@;#2Q31@YOkuaJTUsuEM37jYT9 zD8;AjtCT~@5gv^9pb4f(7#E6TgO7x2xFG#Z{-|$yoKDD~@zf;Q<48lot?HWY&6Ehj z1KI1H|2+VTvB1_r7g9zg%?R9AKwT;PE$BM`!R80Pz85xgp5^=sCp_!Cw$X`mycG6z z0HuN|vd2&DlBtR(UHT>)&1pJ$Uun)d#&$U7nY&DF^o?x&dYQ&tdQt=x)}y~&8Bc!k zPnvldW4L+4v`4Pf@1nv@#fz8~i|$t%^E37Q$v?Tp3&8Nx6se=TTh)}yq{!K5s5zNV z0Hm(?QNnyOP26bryX&OkH;HbqUJy_kp5U*TNM~W+MlZHl{^`r0WAlVRUgZON4C6(m zk0PWXe^r?T3^&tS>1(bR{9@X=lU0OSWHjL{cVnBbLhL65t$a-9g3JD+HG@|$P3-$C zI$kr4(7yFg(UWxaeZ0c?cdU2O`+a2sFYMH;ISGZZ#)dD85B+?VXQ!8tlBvIW(pu3w4S+Cy)g20B zr`h40j@&17v$7Iu0C1UYx3Qy5PE`2t;0-`OFt3Xxitn3PT0%jZKZWRb=xA@ z_46r95(+t+V|%S2?#q@=Q2Z0VaHKzT8dM5#A}2(PdZFqF%G=8zYA=^Pgc ze!LyxgM|;w^I_vOfS=I3U*15>xRHbHg$B5nde%JePnK?wkM6&iG$#IG(g=~bOU5u# zI`x8@nC&IqFOcpm|Jw`&lp4Ww=BD*^EV*V|5iS=X^Dq}0+2ro7ob#Wcboag#%U=)h zN`^clQ><=kH68isTJB$e^!`5fD=QJzgne`Z%Cg|ylcYp=)JYSMg6==c63x7Lme&N> zH6oS%n|6&@=&3iO>mPiPzw8>6rau<_cmGDBIEj68+wY)ycT3Oe`d}PE^%Zr2wb3(=(xa|?Yn!fh$Un=kaF7DlOAG(O%H`eLDQo*S z-TX1}JGON5-Zj9%aYuCCeL2Us`qLd^noAD{FCOoGI?bm*@z#C%_j9AhL~Fo+>^glA z!(d0SEoq;Zsl2+M32~113@iidhD%VRouGxM8_2~X9^2rRp3YXcM z?kO^>)nQ@(3=xI zmnDuO?_I;WuVh=}c9#3ttZuEofK`fJB(tGtD@3Z>jP%v}gBQ`He>_xc$sc@ctT)(R zwtJFCEz*j;&>}grGOMywqi!2bw^{O@FheML-g$S5^493)pO`_?^n4)DrCJ@X#Ccj8&`wA-*hDQ8mUv@@?=19@j7zz~hoQ$ICvW z#{#Mwg<9}i?qXx<=9eY&IuJ|=@fH_O7T?uf6eDN9+aI(CUeAcpGoLmE1FmQa*K*tHZdCg>dU8~KR$5OjYfhn7nK9A<5 z5P{+s%W$(fjQ=qpIT#{zg{*n=U%&8t$>;!>30RYzP)D>z&R_gEEe#gcbh*kNN1rRw zU6t|#WQMq)GaNqK*e*oeJwYH=G9jq_AVAX}8`ZxM1>VA&iF12iHTsB5U?wR$4iFeP z_e6DWDj;&I3|LX&lJ3l!i7AF4VGnt~^+2t&Ki&e)+mFaWpw<_S>1L6n|cTcOeb{{y@uxA#i237+L5c| z;TE^caB1(lz~~~&y|qikH10$s9Dl9KE69mU5foAB8&>^HMEi~}&`(f*UhDzS0lf4N zVVAgA7aFquh{N_((_U-J_7-fB3yyBu9bq#ohh5DF9b0$kFkAO9|A!pi0WW^E%l9Awe_2efeOuTV&T6htu`7YhTKX$M7)s>&!g?2)gge zKe)Wzx)x$zLL7(A9=^{%7d7mY85i8yBxvD~N%(J_DZDSIpRH($PxgdspP3iPwndhb zhx}o|S6kHpI8r`P9Wm{th`f5EU`<+=INh8q8anQ4F1xkjqoU;?xL0M7r5?1tHhfom zT-hWeO@Zr$ItcN;r7CSm2Q4x!fCEpnYAKQp(OCClgycvN2IGpKT4kam*G(DYBrFL& z36O?-n8zbf^SOR}R}0h94QJKfL)`a~q!;s5FZ`T$-U*YzwnWDk1* zeP1~?Lzf+?8=5-Qt?Cu74_TsBrJHPb0^%h)oy%p6UR%W?2SR53-!VJYL<(3bon0B? zU2$`2rAp5YJLLNGGRVq~U-3XA04qul`v296lJx4A6(vHfg&wx=g1IYaSZIn>{loD8 z6w>>E0fVYj!QD~0Zgjr?a}PwxtI(ibb;$qC`Sz;o7mc(|71%v+UwzxIGViTYnh4iD zuT8sW`!Dku!VW4rZmwr-BHt?9j$4`QG<|Y#QYvYnXtQ#qhMy?#E(7?H771KyHGk`Z z)!TF_8=<^5;Glpz29kc?p<_0j$GMJv$=Y!ee`3>zQ3k;uz!z`MM%8YC&`W%V2I1+G?L;JMPe5wUUtb$u8;k_#=Mx*b`Dj!&1RM_C`j` zgamWxAqieWGmnG#98w)A<4*d3vbpi5=1k=olq+EqN3_=j?__8 z0!3wZx>R@)$n$(W0b*_nGp_gkeIfZvJt~9m-_U%G;!ecp^((&z0@}>Cm$pVHr(gLq z0ePr^z{-C9pUf4=fqFkL@SzV;_S2SCgV%|*pG$^NMi$rXww=eHclW@xDlJm~_wwQZ z-1lGHEL@F$x>-b5$PzByEM9<{h1afGG=FjMg(E`s-oNMjimsRp`rgC(IyXYdbQx9> z=edxSc%JnVUVQzveWNo}V6SjRS-GsG`Yb(>F+N9SM98O|9}AynpOOvBUP4%Yf7JUu z!WAyl58bgt=HKTwtX~yG3>I_U`xkkNs|NUA=W>&N%9C$5g&vV{R^u&hd_sRZ*3O^upraM-l5UcHcZNDX4=CI z=silCxR8VESW{H(K^O;`vITX>tOJ+4|EasJY}9b=6bHu4gl&7-6)w#5&UV|(v%BMd zKHxi6`9o6t72gQ@d%3N*wuVk>Fu`NH;)E84j*R@T>vw`g-k7}bM|8Zb{NqEg;$JbL z-n$#zAcvRBe5ALh;`>-qC8}}O`zitI?c4$v$!st5`_1{cE{yE$byip9D7ONqtcsWVgRtu+M+- zL zgPqb!gaWKSXJk`~ms}Sn)pz(_9fP;Ky8N&Fw!ZX*VSf@814!##ATc8t;nUJ9tuV;w zMIrBldi_$tC;C@7ilkhl=$d(i_0m#PJ_dt9h3|uh!vb?XrKXr^`H9zmm+)@F2`7(U zx!?hV{+U*4djD5i$$Y#jkV|*HbNBp_mDTjJ}bGhA#@&kCwpVNo7`E%sHa{IE`2D0xB{xDu?All z^hirdpQ|imo&+h%H!25^F{j;m2n@S=jxe+ojckGnFcHCGEhmO3|7sAhu3+pOc`qg& zBvjQi<6G8G#Lajke1TEjnnJku%W#tkjY4p!*yrjeX?fJU4f~lM35l?;+bHCA( zr86|(peR4h?Vz!^T|ng=gE>@i73W2}eZts?J;Im5(51!lq!Q)AG;l{Zb-h& zH&rcq8l48FTdw##{s@)Y&)`S~wKN!>cj&OI*h%-;0p<}rMV-FB@0ASmWKUnWuZkp4 zd+dwSv}zENP_pR0B z^>S^vz3!V;#CbfkwYiqe><^t<7n|8N9~Q1jE?KvM9@l72^Cy?p>7nC}6Gok5mRC-Z ztg|dKy{PP{3HhbQeVSgMLr%8%v{x->6px`SZ^i=7cUt|5p8SBna1)}JY*w@U5OGeJ zaMT|}TW|ytxWM1I8C~LU;EBgLx$xJakVS)a`0&4Ke~ipeG=Z>i;YBKI0dDa(`9?89 zAC8Mx;Hru^dRJ3L@pmeVOXU$gCIU6NrSRE?ox+5uaCuHB(e+7GtR3!pf2S}}h@BiB zTno*!(=bzAeaJJ<$#2B68V6f!J#8Sx=yo7Sd$R)HD3rALRMB6EQ#NPUVk-8a6v+L;<+FpAH}H^O6_}*|II=Mij7BEktUb$HFvp$;xo}> zf?E!6=Fzy%rRv=rv3>Aqf92%CP`k8D3$L;mb{K_yYfZ2Z%Ft$_(S~2==fV~KK73nW zxZgKF(Zcrub!4AyGpHI{$cuRtyk-m)cjp9!q-$DvUpC-aX+Is7s7dyEMzMtOIcnoU z`#n|Ib+%2^5IY9HTtWdByq`PK5jUz$?c8*w7yxesa|a>L(AOhf=2+b9da;1Xq>jb1 zoPHokYi6^4VFemHGg~|Pu3;CnfaZ+F-ne<}W^4!&331oS&$;tZKRxL*$u@Sd$U10R zVQ&{8-WIfxHE@eP-fw=o6BZO9Pbm%VBYwiYzGG)=m3(IP9@UGsYFQz|U(D+xn#uP4 zYSi7v$zTs){HycMqyCk$HsbM*7vOXHY9Q0R4g`=-M*l+qxnd=Vq@COj=-U4AisKWP z`827hm^8d5zUL~`}~{awsPjs4-?)Ny`Utfw)7(-Yvw^KNg&)T+A*v~nyt~+U;wt6gs^`z+&?Ze$~4!sA) zIcw&6XieqCKQE0sSRAJ5s*B68N3*uffa;m`HD^5h&gp(`)yyvx%n#nl_X;*Djprh^yW z;Duj>m(jjUloJZfn?s^egw#5}cmClJPqk9=`CF8t!U)%`O{%f!S`Oo%M${aXe;yt1 z^>rdCd$3x*{lSwLqWV`gEBWM9%&A{s{`|x?D9<9~!@y2zQjX>QG2wzL2N&ZT4X=Z4 z-0giEoZ}jBABZnrZYdbC$lZu02s3|FFl-AP*3Bj4=Ecl^s9w7TR_Y#OFIaT`Qk)r0 zg??9CNnY}lErY+x7}~dNt|#B_zewS_WpqFU-HO)JQtKuYLY+_-=2$|=U+GB37C~zq zw&MjXK0Cx2-#J&?!&Rf-kn~m*{=M7hXkW%@2$(7rB7j*xum{&K0Db_9np9+M>x&tO zLMQd&{U5lm{M8>2zu(S5B|d`e&6z)QTV~_4Lunj@G#*{YED(zKDQ=aCluBJI7NYcxlnxtZQ%^70*!!Gr{$llE7jdYN$H9IO*m_+J);nv4Cw>0W(a5>4K!L zyO$K7neIks^3YNBQFyc3sxX<7{5~(Nf%rSEyUQMtmnGAe&VpnYd?!#R|f9>Rriem`vCXi?F1pQ=mZ&i6zbkOcc9i< zKr;S$%_g1Z&j-2v8~CJmgh*|1a~xrzbJ2_Ubx>U<1Doqq%}1i2J>24T>%Wh!$CA(- z^?!aYbD*?Pjt|O!YCsby^xjiAoiBlioHhB@j)*HK9w0Z zX3=%b0w@jH5^dq_xHj$pj4;I7?dQkJn_x zjP|q6tAh@6p@nLHcHIN+Gkb!AI@~O@@=Tz!b~2^q+WohiV}*R$y8J;s5az0=0Gl}n zK%-`JA_M%huww0o$i6z})EATdZOa0M^1Yn7n2F6v^p|etDzHTjWt#^AY=5k#%-!s< zUvl7L+}L+QGm_v_)iC1&OYod>s+Qk|Iw0zJve`WR_g=GZip_}D)H>;H^-JDxN+v(W zj3qVR-q7r?U0~kzs{PcrfLz9~qWTKx`)35@m-+bm`6POw$VSNAUip^gCq<2vc!Udh z`#sWe%3)c{zysS<=;}FNA2#I9c<${prm%8@J z$gO+Mv#Ud`o>_yh64zTHx**A%5qUh-RIhkMTGh@(s#&Th>bNy~EuaJ*@XX>f(%IO% zx^nDp)j*vBPjC_@Ta2plkQ1+)o6Dm7VqvElOvYWp6E-+3g^UoEQ5`DnbKu)P*`W73 zTjJr{sn*%%Z~5KnV`)yA7r|w$VVifl#_~Om4&+Y=PG|*z4wmN2TAZD*9KVy77J2QN z8=uvxpuL=5bpBVAta)RxGX*SCNKWq#7q3`rJOcl`0$%6UaA2Co&d#cgKU><(FX5+q z^fB=bZl$O_=D2;Z&$TEuTqvZS3NB-!8Vk-3@xvrZ zALhEbtR~-wzCx7Q<0OK2{2Z_ass@S{OYK`@U6H&wmOGQqS%o zD^&2@#g@qU`1lKKL3YagaQ7(E9^MD`Rp7SAUPjchP28mNX+fT>9-7*2vB3JaB;CAe zg{U^wg`BtIS?&SIzwIV{vDFP%4~+Ri={29C?ENzC;npz|mtH}B&;FOp zPC|COP*s_@g{b=KXlp1%C;KuY=ZI+uwkd-o>Da9P)Hh>3=A2MeZ%uDIEuW^fXAh5@ z=h{fe_6Vrjde7D(6QH3^vH8Ju!hc>n>Fr7qFds2P+A*v;t+qtkDCRE z9NND9JG()#KZS>eod)S!P5R(WXxCZBu@Y8L?R67_7hXb#d5dcR!q3l}(ml}qP$7D_ zvIEJ*wiaKd#5l~M+BLjGRBn`m_vnNV$TNi9P7Vkww_v)~Zszwjk+~7W>atZbJ{TR$ z9~_)-$^<|9vs>M6XM#7z6}fJ)s`~XIac7QxJRM&?w-b^|uAVtqn3Ipz%LPj=Z)!d9 zXw^9wgH;VLkJ+mhHw1%|YDzxoHO5s7A$Jh#cvmB@*RB^;4QVB!8YGGaHdOjK z0}c=m&4f1k0t1^_zucKIgl%U21Y&NQ1vjfdY`l7$4-T=*M9dxt&U(U1Z3t!`%eOcy z9KQ8POk$Lz{3dvK*eyN#No!;?B~HxRV|Mhw)V9CDHIWk&Jh4JRCE&AD%dmxM#O!U( zxVCYx7oiW{+36LRWo_Y&@6F;4@yc6!>?YYIj1Q6ZmF$??oWV0UKLOl>S^5_DBaJ&J zaX1wTAv&43?oG8Joa5vaE$14=NcrvkinEor&w1yuQ*b8bb;_rxBGu2p)2^ZzWMU0X zoJ>9mt{sowVOI>IaV zr?Wk7$9u>G=Cdfc^S&10YCiK!;+>azxE?pR5jh&?g^)cbk-1JAGQ3JXcYZ;-9mz#xdS{G)s{WATc_3_)sbel0v~k2z>m93 zOLsV^M&E>$7u-&BH!Q@vu?Et+&pP-WHIz(?Q#O*3dEyN4+h){kplHAYP=JihbV56CWpDtV8_ zC=T#SJ~S zpGd82dO)>AO<#3cHhDk_y*OtN!5s+ZOgL?gA_TZ!4h|}KbXO|M-g_^s! z7H=o?98tN0!1B=dl;FdA1--Gsw}p_oKk~8yF+CsU#CG|O9g{g75Pc(|p`Yt9G^QrD~!|hyHNG!`S+zpqVMRvT`f?BJYPaK2fhua#L)Z7r&&!9kIqD(CpM$uWOVZZ|eU zAsA&HLlCkv9W98SbV4nAoy?y|Lo@VOagc=tw z?p4>h=(egmhoYVgYOBGEMzUFkwnvsL_LUi zHPE;Z>M%FUmP(`Dvx7-3&Xo+mFZOYn8?2=;Y_uwfN#SCz(Y=;tL7HPmt3P)SVy+_5 zr)zsT^$yPQMUfiE>D^8(30vg2;UiM#0?VLhaRg=>Y^-RvY)}f{Vvjc-<)q(AyWGw( zjx@{ht&p=~YhU$->ZC^n73O#p*o)tnV6_4@#TAB9)DqKLF1>-+R+GeyZpL~ul#tfx z;@O$f-mpNBakWGXqGC8>zOu~xZ zE4NVCnp0yU>#Cd>n6_7Qr3^_t?pAT!+2o>=v;wMtz4JzLUZGn8(H>?jNB7J3(Xbjg zY9~c)Pf|?h85IwImR|Q(|6;jsFvHUo%?;<6mT
>ImybC3<)jCvcL_(pxhX-xmmWd^&g93hvz8uLT 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 HAAkN2D~mh4 literal 87721 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箠=Y#Dhm8v3c?0~_9g8rCI@x8pq>tE8dQ5sQ9{(u>;yMU=KViJGkF5}*I>tZ7kM=sva>KxgG;X)y1X8{(( zO^gvB!$Bi#x<$0lITYsiaHSZzhlg-y?85V_EIe$|7 z3jYX!-*Jz}e}&w;!2~YTpsi++8$Xcr!(&BwLa6#fepVW8 z3Py=b49SP-y85pytR@i6lKfbGL8sMP&H4UuzVin(U#e4IU>}JH5?p=Ym#+bbzDO2+IO6j`+Asw94by(MDtT8(VC0jWfC&{?(q7@p+jXkw7Tvp z_>x=lP=ntz1L+pKMjE=n7#r_hSXeE$pjKJzb%&w9Tra5pY3xX?3iD)QHJ9oNC_19~ zvJi)h+Eak#WN{?JKR1PHn*Z)&WJ4;7L+;7yZ$Ft^v?O9>K||Jddu1d zsHy6IIo8Xqt%)1$ZZ-bmG`6W8^wf-hPM-f8MDJ=%8mo*zNG{)>+om_!EpQwa3#q{) zpGH=V*7AIvre((x+rinY0d~r8oi}!0TL)$&He-bhrTj0 zKf`(;oAK8)A$@|R>vx3@+#L`Wx`=)JWBA^*@A;RG+djKbX}PwTSk`7lz&-!5#x19PvESW28?)jF>?Hdp;&PF#F37_zhXzI z5W52~%d!4rZm3x-BpsK~$1vu=?Uda&<;)J;(r$1!l}Nu?vnqu{=XV`sMgHsk3v=VF z6v&(DT)Q zXPXIXZ;*NZ`-`kBOPXF)b$)ECkKE0%e1l$Wi*(3*b`#$4E@B?ENz%*B$Joa79ftBtjDI|lKv>cH4`=ss;1Tkl|e zItH2j)UnAo4iYGkhczl4EWjw01VUWxmU~XrN$h%YP^U<-J}M>LaBjlqA*@63rsK0l zl5EvI^n1HUH!;5yXgD#QtzY>J&P=|>eX~8gnAW*hC#Bkakl2A`X5DLhFp`3Q4|ePL zJrYO=zv@*~?{#P~J?Rni$19s*i@ELEY3qu^A1$5vjpqsPX?fXPWy_`V;AHL>_W1Q7Nl+A=T)B zX5sg@a#$f?p$@c0Oywe$7li`qo?f zqkW3Bbgxh4sYkP>(^9$4GTT_lFsYy+m%nVnzee`9sh1yk?JSg=x3VuJ7FLAoGUSG^@}f*NQj4^ z$!tX8cuW@{8xYk~vhK>C)Er;Ru}s!S&)T)?l?hfE^XEIaP5=W>UF>DtR@|r(Yfdk# zF^HSFo0QDRl}avb0*ce#ugMR;t_{-1_30_pSUpHNq2x44zLdto=VLvZ$^zm$8W-Vj zlsn$CO+;NAZuKRj1#V<_M0Q|HN`#w=Lllpaop81h{bI?3BG1q!L7N}Of^uGmexj@qK z`4#n}_m{{dV>reBVs6iX80K(zkv1p`n4t4mRSf~BqrdW8FZp1@^`YXGc9v_;y@daU zaA$vJtm|*=W*feH|={KMJ`dr$d&iQNntTOmg0%qFCsk^J;QR zZ+HGjVzD#x1r3D2&Ip0aS!_qPVSlv)nqp>SbVYjA&ABe=*y_6PhR`AA z1qix+BCV_r|Lnncckm+S4q4A6&_YF);$TGGXOMz2iIaT3EcwHzfoAlEZQJp24b^s_ z%O9O{mrAXYjb8bn8?9oBJ7lBRI-7jRDZl9UNxyx^l8}tWGRT7p9a~(2oB0ZS$RUGD z@?11D?4i%deQ_?Sqibi>o4Bu(dK*W*$r!&%(K`KfT+)zgwgbFsY~z;USRa^NW{h`A z9?=(kC?{CWzH>)dF8iwbTf)aR$oyKyMF)00HFAhPh5~Ws`*lGGf<(h;uUf>@z^6rL zRdoFuqe-KTYNv7M=yzhxc$m)O`~ULyqSuT!%~UcY6Q7WM$@^W;=3pe$XHY-bk4gtT z>S0>6V7tbswj?q0aim(XwE2WHDc&zTgi2s;@hI9GRoxosaECvphe_Y7r^TY^MZ-&{ zjeweek68L1!0RI+c|b$kBf%>D2Kk-uvkZU;zuiE&mS0W|aRf4z+oia*4I3z%Fu>Wi zCxpWO0&N2HMmG#UrY26Pj#JKjczv>!*CW^>m1Kj95&m^s_=(NO0a%*o0qqK;q z7`|at;_q^{`sV{SmnSmlc6ru;eDfK_l9DQ~bwQ!gRANL?}wC@gC z>cUK8fTBMYnOpujTZY^3??R)QcXsO*P%jc@^)$9jc__-0USF(H0*?kCI#0Kvo-Ga! zd?h`eH?IoyZJcCGDg*`RInP+JUZ0#tS~Uvs0_lLz4<+iXNzl%+4fB;nP8f=gFS)(C zzGi`ELr}A=cY+%to_jd5f_qSeCG5$2z6qAbcx!S`sOJE&Nxg|SQ@l?(js+P|;>*O~ zzdF!TQiv1_NK4;1j1%Xa5NLXe6h8uaPEZ!Hm~>_D?3KmufMrDQe3UZ;9ZWb~SW1iM zn}+p{ypb1tl$@UeyRR{_FmFSGqK8z=U&U_r_|2oRW+opkcoxH~Kez3q;gkkS4B)x=gpH-u^`ESc4)5(@(o&wY55bK$39GOOw%(JIe_oNO5#T6cv;AMo<)#}Ym__1yqS-+1r}C};t8*WHDa9CbiBAEnu{WJ7>q0o4Yk zqcSYNA#)H_p`L4 zg#yKEzyX8_w1uIscm(fjkTs{G(y4$Chc#r!v!|Ku#W|R}M@Op82G71N}aztWj-I$0;q?ucP%01{0TpJSzP{7u!z(1`6a{T=)`~pB*Hwk4Vsh8&`1i z05#2=LeDcu3IFx%&qr?}c=FY*>W?em49{-l^Iv;=0ZZRv_IU2F6m#EE7r5#a+p7Du zFR;wuh5lKwf=Req7WS(Za>I_ex&EFH*HH>n7Rn|bJKW_{H(NGm9Xb{kBuqHnkAIo? zw55{4rAocNoaYpAaEA{9Kns3$>n$8F+EK#$%hYMk7|e#xKr5fqy`a_17_h>T83*=f@6mmR#;hJr9K}sL3Bs6zYYf5Xwett(=&B8HP@spM1YJV57 ziREgKJrFO#y4tZ1G)_YRFA>1l|1fgX81s{e6|}DOSNppz?h@ zql9_1swul&Mg(kodJ%y{8a~Zx+d?fTU+cI+vr1e_qsCI+MNy`Bxb~`2Ope15(;TkH z%2xZ~S+Hn~yf9qFF}he0+XF%fAtD+iuGv? z+IIvsIu7lb7#4bbGki>-UEh+Mrc4xlmm?8LsHE(Yn#2DXA ztixG5;v|QE^rYNG{X*%?@SGIFmR*)awFw zaY>M&uf}C;5c%wNod?O)_O}V zVpX8lGoQ-MgNzO$@cagqg<2zWn`n?7@Htp)U{8w$2JgCl;md^kx%>T^ngQW_$>Q(zC)k@p#%TVa5Wyu}C#oSIW zR5Ir(HjB*P+qhYe82-k6jA}9FVsr1WVk_sEkZzXZJIbn3Xbt-_pk0$e(iwmnlJ9H% z8lopP$Yx@dl+nn?#B%!cel^C;2*Dk5!8IW zsjYLEIK(ZkA5+cohH}j{My&GJrgt1(wM1ZLqabRNI^x%?Eb08CdxIHe=c-aoxegHp74M4tm%@528%_%&{r$ zAChd+J5T>yHofSV^=0Q$Uf4W+4NJc)Z<1B-al`HWN9JqO+m|$)qa+`AfnrpQ*UZQ# zx-ak#J8s9-r+LkI$*$X;;^Xg5%LL|{(eMQcA+4N&6@^|ezwU~(501g{!>09;h#tkB z^32c4#lG0NJH`v4N((VXg&|3i3`UkXTYO$4VjFOcN+>j`csSVglFr?DA&r+sI;3N` zK@8@r;{vvGmM?GHeaudJ&b^%A72&3_R-Eyt&+GZ*xX&%A@iPURz>LDUGR7Rgm$k6? z?|N*eqD%j+9-B_8%6^X}o^C)ni!J8n{KbExu4V%SN`}}rK<#BVa{!Kh(E3shsR18YE7oyG)m$mnMg_G*5V?o|57o|!jhmw)u zf-gRx8f1|JtOe3Z!Q6fIey^skbGtrZvit0^0t?&@S%9E9Oj!J7id!>=*xNpA&yMHj z^V9t)k))4oS`cHh(yhkcKceOR0L5pe$N;-K(c1C4wp}^@9s8w*=I|Aka4$V@p*e)C z5&=j1*A(U`IC-_!Y6ho(WxvNUSQmT)?#q=6tWR0u{36hO(&XCvfFxW&&hP?ipOQR* zb5MD&kw|=kG|oA!P?PWdFBNKeQD^B2%<1iiU8S=Pe%zL$0Gbk8H#7}>HtHE9_?7^D z9o-|^yAix=i!UC-YPHBWzm$O9I1(2rzbF5Qv=+DE$0!q_D2{%9EsC*SwMz*5ZU{lj z@prW^I1_OuREBH50g*GQgPqCfzKuUtJvuw@fY{rrK7zg7QhSzCtBu@C2H#n&7v&F z*^YwUhV#W#1r4h)U4_TqcNBfU6Acc)x8)_Q9uyodf&lz)aNV4zekrqY%;62gYR`_Z zdT=&;xxwGvP|5d-Mvd+yIrM&w@l@%e23eLKI}Lr~*-y`*JuEk^4>FXmc=$BZe9j|P zC})l!0~#->DOI~(JDk2{^I=lrc-x3!J+6mzS%b_VfL2F`O5s5E?wHGD+Z zrK{|o*?Q+Jb^+LUPeFhosK`K{qwYJbsE`9?C!knQ{w*NG7LPDqF6)WbNeh*q2m>m^ zVRq2n{Ka7w!vNSi`n3+A!uHa#RC?2IG)NBuKf2IE{Q8xxBJHbDtB23G1#ERc-J9TC za(S`wjSpjo0(;>~5a8A45Jls+MYnRqOuD}*^e8v`Uy9ZcddV06DaN+>MlxS5LP+;m zXzrEjGE%=GJrD?n%Nuud1(p&XyBf8H!7=%Kde?vz7m`z7>U}Gp!OtK(9m24{fh|O zw&g<4?*ulQ_vUJ?&@FM!zd$&V!T%E=msH%gNhtcK@pXd7e@5kKmflmzyz`F|42$Zm zpPNs`Zr9~bFm(%;$Kd4^HHy=)R+hBczY$zWOXIXNF$I=jScipVrxCmMbY>SlRfy%? zT5Z?LWW zD*_kEZzq$Jwzh^AMrTAR94_!r$Hc@8iinDyKZUDw5bGzG7Jb}4km1R~l)D|cC{$tv(UJvINbkh0 zf|i29ydL=Tr^ajg$;>9m$50+yYW2;Vmz#E@f5Vy{_ypAW8#A7mS=G~?c$OB|oz+~^ z=6!~y-y{dTVN#6hsus$1w;CG!WspG5i!8+r1%0zRG)Tb1^7!udRs$s3fZ<$L^mbLp zBl5WGy_sC(-SORRS36lSR1?ryhX&Wq%gyOHR zwq`vUPc%F|WFK$&S*`YI&1~hL-`pz0mvjQ}8h@DFfPe>09WjugZ)n@EY>EHKhXgdv9v*0%WjWaw z6@pG9{}MX$`xl|J%b1(v{SV#gbN7bo?cFhB$h1miRWav0M+g-0TnAN!c%S)SAiDYp zUBZK?bfPAPl>gWwAfvuk-9K0LsFTk(j{a!sKm>W_q2V_Jft5f2h7&SzdoGu@j3jLK z#4LZ&tKtFfo3QF&n~bECL9 zghh6OekM#hq`-!iuhkgmT8g&V_(ypgNb27Iix)z}tzTXUlRY^s?K2i*K1nhu^Ok8tJ4uSv>7L(<|x(jtWP7 zM9)hVP~!m;1g--aGVUv&ZCr#8cdfxGLMjccI;!|oW*A5lE|XT_eKRs5Mn#maZMVyu*$%0!X$d(B%&}D*ES)ghhLTSO6qUJWYt!Fl;_mv!l=>GTO=t=I z&+yj@G#t6JOf%fa1iOj0B>lgU(S;tRaXdVN!~qiNEU5$})xZjBH|3Je=N z*e^wc58MsN4>4oe<8b5x*6jc2ZqN}-%gTpQ-1pVKyAYu>keMyy7%s?j}uv$lB@<=k0MIUgYq`@!3@0K6#`09;0i}t(Bu%jiGo$su6 z%A}pGb2v`P`077c)cTQnm(v{PB{Q@Ccyh5?kS1a1Lh;oS?A2B~kE>XzD18r4y4C+H9zQyT-^Xhii&~Y#@G;eJ(OgITOHTqw%w%sS@Por_#i+2Da zhYnNsWnl!apDRN{64Ag87xUITWshRrUt_Vx4onFX|c0;~@ZPSq$D7*efIl7Tc@ zhBARb5P>p2BY^V(r#}PVZ8yJ%iypXW*D-QT`)Gm4jHhUoqqcV3l~%D^sCWGtKK&8m zl8*Xo(8Z{eBRTKFh6cd|-ux6P9(XGaO+mDs$6YM3yI?{>2kx4Ovhg_M;nxLWVTa4B zcCLQU91u0WR*ZEi;+ZMZ++ryT$%j6idG2DkamQc`bluLuGryf|XKCMk#h~E{J6(V= zF4UQs^uGXVAwrK)-Tx6#d--@JRFqIRQS^{GiCYuA2KbDG{SsMQfhc41c0htd4%m=N)26&U0 zvG**E?aJ1yN}yYj?6MZrHNqMd6EGf#0u0bazd7wwoGhO{{S*jzoIXzTqZriQTTsJs z?w&ziVV3@w{k;>wfZj@nZdo{24?Io==ii(1W8Ao_Fx7R+Tkwe%vP zr!zjV7IdMd8Q9w~PP!GA-x?@d3DKckh5W3sd|F4A7 z*0#tpR=|Rycguo*J{@2B+!;cid2Z(0Ij!t^)Pa;&V-P;=12a#`{p|X{?%B5P9Im}v z*^xBew=Uz>yXDRZt4ne>HhMb|a>DXaT!_lujEiV}-tECmA2T)X|6+KcI)J>>gqU4e zw#xe#xi&X~=VjJajw_o~1)JGwoBXzZey8YjI?ekE?NsXe`i8ljvWNQV z**u0#*9gJ^24|(G&&hJDY3}#I8m@(KKyy?3Wcn*Vk8zrJxGjrlZXeHtrgXNS*Y-Lt z1`zO$WGk!SwG|Lwb);L;{*X*)l^!ogI=?z4IAwKNB-=z}V7b7y-hWp#rxX-dsm9Ed zdtr`4fr82INc2qkeM$jPYh&zf74zyXhHZGwb2@#jzyGhW+n;$0?y-lk8^)aGmUd7v z<{Rj(+8>hfZfd*Bj;&k9Eqi<;WDvvE-B(`betkIri}W+}!#ACS=qD#kokJf&4g_=m zKf1@*=2`D1bE+%!%XinUqBB5Y04WY8M|}IZo1$Gg^)4!9p^TQV{%k76L`%q9VxhY7 zGKwxdbJ-O@ILjejwLC2sjXvHdTy?*w4aEXb!8BaXoAJza2pj6TD`i`e~fUD(7r=ZVtV<9@WnPo=nrtbP5IimH6v5pqazs*)pJAk?!4hI z&ZUUM=YbfrfD#s_@*p9`2h>VP7Fi>*hc+mntfbM&3y^RvP4tXJztAnYUa#MK1)<7# z!N_!NgL|u>J)?90{+{As^YOii=BwX$^v0mtu##hs*0G+-FzA$;a{ouSt>4&&4M-2+ z`QT%f3%hSt-VXrSTI+3;qvZj%w$cn>YtoGQA6O2tHKuT{p;Z7|gZ;$Tc;2oE$nSaW zKZly^<2u9Nybif_Q1prQgz~Of@<#H2-|?@!vhZJ ze}l03yE^_S4rr2bh{ksD$77|w4+wGpz}R*%zc4m`x^IjGezmK6JpxV9a)#H0C1m%1 zIv)HxFO;N3e82pgv4b1AQa@nV(BzllfzZ1jh6e_NiP!B%Mi^Yb--m6{9gm4r`7EP! z-}p3VR5kQr9@enxKwSPUf z&GJxjZk|ZVzfJOH;&kmRkkZHalnEc@bHe$F0=ja?S#DH~TB`LN+rRhxb=W33TPUMS z`kRSdBPn*(Rwww+^NF)2%)`qcy=l3jzV1g1RAV@pA?f@tDBJg|XHumSo%LJqWZA*_ za(BG-C>pt}7TXnZ{&H743ucjvWu%Zh?@y=<`AZk&C_}4;CX4T4zOpg5i~5FX>81EN zxN{u+q@$XvDc(WYO0o3Jp8!an*onGBlIQ980-2Y{-ua)-1~T{m2WNx-mgiY?%zf6F zY^MwrnEo!`4%EK^njQm)tKS;#v+uX81RyO(tm->IGP8V1IW5?(pP=^_o<>xx_t*8X zr!7LMZdu;r+v4!}d~<|tN8x8h+N|sI=aGh*-y>}Pb5+_e4k$wf!8}T3RYplq*02N+ zrPJi40wOk`{`tAHZW&aa4S@~!f7hn7tx)MjO&6W0BE|^DLm@TH+Z`}2 zpJ@-Q00!-682$j5r2V;R3Pr4)%KEe&!?(UloB}>~6Fjl0Q~F|I1aG4NMsb8p4q1cQh8SWuuCmKftn`iZ>2hI zL7OwKf>K>@j@`lvvoj>XzEtu1r=t{v8Q5n@LVEM-t0kU8HfTqgdF$B&yMkSy@t5mS z4h_Jn)aBEW6T`e;7Hf!U6vU*$dOF<*Dk;N~cIE`T+uPlOgpv|bz#_N|e%Qhd44wb? zqtdI*^ao9zBhO|;NscM_tkiEv)_<4b5U2htHzuffCESb zOytDDPsC3jSgK~K+KTLl1Z5HqsSQo2vVRc&%xo)y@Hvg(Ogr<_>Gg$GuX%nS zz!<)D6CccqRq$zL_e=;dVd=6Fp&JIk*@X)v)``tvmCW~<$4L{r%bsh?o~UG?-Vr!% z%^h6hp6)3 zP*J4mu{{u8e5jiUgh!MBDDI-5S@%7$;jour)+Tb$6o!}DI_LF)U%7y78H%!ls>@r*%;T>3?1j-XAKYkdoM2;r8Vn4|ubx^)GOK0steM_ROXL0HP8=yCtvk2%<`gbUUDi0nZ z02}np{4R5N4X-m+q*rQJ6ukGhC!BJCE6QzeZx0@|-jxL7uhysHf!kGNC*l-1@x$Wx z)`&katkEZVQl2Uv0luuv=~w=ZV(_<)E%i#x@o+(TO?v(&@U*81fRKS}ggKcD$PH{VnTi{J5hIvYi~tsul< z7#C&p<0%DNxs`q>&==l*vHHj zocJHC_KE@L_Ua|I;&^WpTlSObj)PY0e|j5N;on!A-)lQt^jFEQ%pK#aEL^hXjkAw& zvtx?(In%%!^-v@k5W+p?ai?xz>A?C!bX!q$fTs_1?X#|Caazt$2_P``8>v`j!o%RD z^VRAQy}$d(ReZh(-#CrM#Hxat13dJ@(rTxjG{pj1$$ z*nxqD#nUf0^NJ0NtV7czOQrpM)Gv63XJ1$Az+&XI8x)u~Otypm?F0^u!Kw$!s4>!2 zX~M6F&Ay63>2qqB<@+pfhYZSxaE|d~m0~r}tTW0`*x|NJTe;pF+56h`R_H9qavZ^x zqV2u$c;uX{=62ven|A1Ens#>?>P);zl8eScyp_N;+m933K@%5)D?!NOVy#*>(R#Gy z<4OmHIiorek)n#p$lll>*9IX(uJ3l3T`NH@HA)zFNfE;O?=80$`TkS8givr@OtZpsFi0$gRDG_pBd>6%2dC#SIMfTG`B z`qJ#tcjExHmE&DQ$!&wdmyR>et&1 zQD8V{-|U3!emHniT?&jZpWyI%&*nt|S=_X0$UC*};kMJlb(bfkSNTh~ zx;MSE`N|7`qTJ+lb2tE$Er^hRIr|q=tIuqVxzfr1 zx-)xj8OxiS)ixIE&|~zaFE#j6t+abDr`ftx6tXSHq_3S2cJi5?+DVV2dQJFkWc{*X zl4+`Rz)gQ)g2WQje7ZGmC%vLm7#6=tSmXNi-@^{g)Em|>wxabkUqg8?I`s2|De zU@*A7lD-R=YW+Cg|C2)S>)-!6{b~&kfd+g4GBmuS5Ga*TBKz3Yp2Qem2b`mO& z3=T!4a`~+I1^YT&+1rl%gS8=-V(LVl3{F@XE+0)gt;ZgQSP*e=Bq2E-bBn9)`lCLn|=G|s5^=ssJ#Wnj-0_Qp279%rDk=0+3MFu zLYJKu#Fb&mQI|j#cLTCo5 zQxTQQQgf%Hz zBaa2d2JE$1x-8eg+AU%1JguqQvT0)a#wDO-VPI9C;wOCY0>C*ZH+b zbg%Y-h--_Quo!R)yXjb$H?5(n$+g^pgKn{%v$oAn$Ok#0Ck^J|gTCQRdwI%QMHU1V9O3__d#OxA>ft>Mt} z@72xyRen?ME{TQ#?%=YbVQJSa*fvytd}j}7oxcg;;Vo0ntu|pCj(=nH*q`KW%320roF-x@Q_Z>B}Je|a0X;NwWM8G zN4zyoU8o_1?aa9^=eUJYY1i;=qBsR;@)!>jI!9>XymqX-+??Mx+@?uIY}?p|rw{xt zQ_0z+ex(y_A_hX=(k}!|?U;C~h_7vz`RrhxgBPj$WTtNh-jcm_F|tXKIptdD0`7EGDnBRbtS zCJQ_?*}~`a?bnqx&RG)$Sv2XdBVthUE2kJjz%@giK1Fj{K1z!v9ns+8g$mUUPvIC; zeaqsP4);z9nCDy^p|qggM)L+fk`i`V;eQn7Fak4Z4zTFM=CXM>yFZH_f%%VQ zZaZW+&pn!EYZD7ld)~?9-B-X8>4W04))@`(G=I94iG44>vFle;M0M$cos%rauPKFJ{*vB24ZGF9yI17SH^>Dt!NXN+_;2z`52~ zP9Fpfctn}lr(g5*bkv+%%A1K1M&msLOoZf>qeiyfYqmY`kKN&8mFblO6sI!@CnPF81J2p^57IO5)}t zzLwT@y+2+qX}(@AZZ)^0_)M>%>)U6;O8U>Fhyj{Xku4JwpgS^w^a zzvHpWW7)84%=r=*=?^k$@Cu5|yC54tn##A#fuFS+IzE}#xG3DgltJoVE3NE;Bvg-i2Av5S_j)$X_D6TY-8&qwPis)GK%j$- z_R{*+3EPfwS^?5xV;yrY<24@1WtxxRZtKp|zy)hYQcFBLoG-ZZUrThJ>Pq|;|rwFdr}C#sA*$1zgJ8mTvpFi%pK zCCt+N@2I_UmauTZ;lf6Vj4gxqBiy@nU)9$XiBUNxV`55ISp#?iHay{PHGL=P0St~9 z=6FI6GU~mS4Wmt5Aio^Kv3u4{P8H}96I0IZ*1mCRqT24B2yCK4?Tn_sh2PhQjI9sY zbmN9-JK);NSznqo3syPLqHV+AF+sh@m#C))b?|#^9Qm1Ju9p?+ z&F)$?w86liMYhLCgDytXm9*ejoA*igGW3zVBpXVNOM`-h6YeV^uRUaN%$cgG{Gbd@ zggA0Y;-7bc^1XWtx7Y2aT@>q=EH+QLiO ztXY~IV^`+7942m5IZ#u4A4kbMck}4V?aam8ES{0sA9FcT+g6}GiQG-LM*qpV_15@# zGDmBTem83JR1JB^PVK1ORiOCnT28<+OU0g%c~j|i9z=g7hMFV;@fWHBXFUGeB8)!9 zDf6hip{|oOqd^^y*qUG^ygW)5d-U$N-z0Pc$n|Y+uM`negx>&!7O)dpuxgI;j|!W$ z8qMRuxzZZlWW&xbx{mR=uCJ-dd68lfn|m&{%F~7wvvWjvvd@#$yc@DHzZO?tZxmzA z{XX913D^7`O2Z?#qK>V@IHQj@WhP8a%I*dlMh%S+6S!m?cg9n1)_jv3dA#e`;QP3$ zKsN`@Lu@AZ6d$LLXm;>X{4JN-Z^*1)_U#k#yIYY=m%k7PM%I!Ht9tFbtmp0Af8C%S zT48)MprI2!;V_i%jUJ%`1Qd{9hDG9N>F0AX#p9iCcI`t*!&mUOyHHlLsfR825m$9X zkGPa~yO)fWSuBCaI{eE^)Fb9#F^JS`DHFG&ZrNTX9>WwPNCX zi2Ul%H-EJyWg>OzPNc8t9S`W>iItr`CvJOG|MqP>MkzQq(XZQ^FRQYx3AeJoh9yph zINf~NKeG^G0=~MDT2Mc}qi=j+F>zV=!jtQw*Wd+zt-^0P;t0v;2HxaJ|18JtjJ4Oy znD;!M!m9oK+Eq84sBe4)9SO+|*CAR9L*}QkLk=+J{WRYtieUOm=eZkG^rc!#H|o^b zP+ChKh^l98*QrV4&)albB%)GQ$Cf2-%yXIEk(_J6zE7DW)Qu;xB6h9tbX<;6>ew5s zRjeo`xN>s-Y-Lmo75uW}Y7|tPC8JxbA5WF5*$E>@P_FxGfhhBLbA7;e-k3k@NUb;C z3d>RZ(8(M3Ybc{Q^$ZFR(Wk#4azT_%#<7lKsFh>o=X;?GhDPOgBUpvso_2EyAiGF# ztCw|jul+SdE)U~+-MrZL-xxn%yY14mgC?vwjq`erQ`KvB)~Gl4E#wE9l-5$y%L+)? z-?65z5{gAruG0fh+7cB_th%ow1aXKdl z?vn;gRs3rV6~mz=Q>GzJBX=jXL?^C5qzxR<6BLjzj7mbpbto~-B?Qkn=^ESF_UC_A zJF7{$KBz!^LtJ#!5{(svP+!UydorcXy2j5SbAIrfsSkxF)b(i!KYIFBBISR*1D|b-0JU~76{D1j8)n6& z9nk77{rU=m@V#~Y>1<~*{=hgKL)Si%PIWie+;nw7GNxn?)vw;JAT zqV)%mnstQR-u_ce)5D+Et`E0}NIOKQxY|G6Dj~Lg=wD}wjIfO>vz)zM4`CQ_iNRAG zrb=g3vFM&V^&H&d0SlA!Y5seeU(4lI*ZTlkdFAlbmQ9U1V>_7@Wx*oZgzJa_dk@)N zZwrNt-k=k@P}3E)qRvn=Ya54}?;A{p>}#cZEHYVSjDWL{@?~AC^aNE{E9gP+T?@ZG zaY4JJ{z@QhagI}iE2t||JYc~pxhDb3vtO@B?R&_VN2Od3>z0-jmuKm2*s+zsGEzHi zQCy0L;eGbJi;3D-pfG&gnNY4o9Du|4QcRM$d>xO!+CusxO*WJu?}VEL^l>NH*I+F^GKwDmofMlEw_p2abXS+%u9uy%>?sYog3fM9Zuf;sm$ zTMyv+gX8&m>{Rrv%jMUBx1UH6zdL`ey#b)SwAEU1d!*oS1L*wWw`sI6@*6323nnY? zii?ZmDQ>@ectUTS_3NH<{hpf(em!ABpoUv>B5ZT0FKfr(C5XHx^8(cC_MN3HIR z=*jC+SC8Dbjy!uL^5pqz5iaNxY5UTo_Rz-MlfVC&a{iq%CgbI~bMM~%K1t*jJ;~yv zaypZqU0LzS?Q=)iBi2#*9!q$im2rIicG7b9N(iFfZZKcBz;;E>giIMNFx%N&^|tZZ zi#Q7*`yb!BBNI{+cmSy1Vn6UD@B;X=Wm=J+K1r?j+%;dH?RDpVxXa3(h9oi13Z6XN z{GfS|dD4~cU}Fx5Sm5DrX=tup`+-Sa=K6_voc#6W2R~wR>rUejaf%BUe(VRlef#5v z{GXbrLpVHpbN8(DwIs=Dv|ko#^w>c!E{lCSNs=%57N4CUO?oRp#W9La#mjrgaTTM^ znkS@i9QO2ffhpkFRpjK2Hd_0#SI(7Wl}68Bsic-93%af$b+!9-{FB{b^WL#BHdjXz z&eJTU`~kt;qs_Dh*PDwLm;(C`M^BH~1hw1qxR7Z>`rKP7>o1v4>P*b)Ru)5ztkN!q znK|3Teq7XSiMXl4E$!09(D<3@)=X(NJ zcbKh?S?H>!-?wo60KaGxR}+RCLP!xa6AY$Keu%Nt$WU_r~0tOkXl{RSWRIGGW|hxF7PgmQAKe?;W(%gZQ6slVngg|^F9m}w0mjFR3-CJ`@grKDCdICrb4t1LK3 zX1X(STMJHT8VV<=I$b=tq)%@}UeN8TEsmU1XJX*kVHV|`8F#lcmdPkF`5?_M@7MRi zp?zzq#u@9XYIYwSpD!d_87Iz&5#%jMj4V{JR#G#plOJN@(VcKr9V^{l zfAXjSlW9Mr5_Y9yfq<*D6N^J6`(RyFCQd7*a%dL$4?NDmXA;g5MGzZ17jZ=j@ptN{ zzhrh);v%z#qo(EMuX$_Qr5EOO4=^XuQldPI>`nmTMNptf% zh9Aw`Bk~Lnhe2@UpXv!j7HfeU+}-`W3Vk+)qwi*Fr%J?8#&NktA9J|-tY2sMC&tbU z3Eh_zfEww{RPlTX?9<^k8P-mSs?D>p>g=4ksmRmE=u`Y$PSn}>M5}hn#BNEZ73W+N zNzB!v1U$h2>) zlKQD2!$D|e%aX27ZZ1>GT6gqSs3`G`Z`$|9d9EA;Ml-}pKxMpjDX0dmFVI0xlt_af zlrGSSyk6=L^uDc-rR=I|`tY4b_AOrCp-^X0^Oo?W-r>PdvmTPo5npP$v4|*c)%fO@ zg+&_+*mjqyWNr_a24e7GZWyx_>ggq2Vu znWTJkO>!)^*p*}jpD)tAtCtC8sR}6|SLZ-w8RXwm@Rx{nN_X7$B6A_xiaA z+YiREtbK~2oe{{i&>yjUaOP2CohaiNR9_%Xme;3^_(qA?EKL-6!!Y-DxyJJgg&2R& z($W3CfB{@%DcUNLiQBz@i`bk$6Ds;`U9M!T`tpzyhJL}o$HBe0x|}C*)B3GGNjKH&sJE4V6R6skZR&m>LZcb-isq0G(8B zvC0@pR^5Jbv5TIm)dW{Cp?wg&7oUs%p4^oV<2k(VOO%~pKJzP4`Dy*26qG`<$^TM|&WHHhej9H9{zlLt&9MNJz6eSsp9%acG|#C^47NkKy+BULROu$}+{ ztg(cz1qBQ$Hjq+RF8xTDpBl8%F0I@E`%?*Z9{aLik8*B)+TScdZ513eJ;{J*J7_vZ zLR`GLUsI7igwx*(43wmtTV2`TTXA0RRVJ$9VdHk|o|8LFsLi1BKa(uW+w(J5l_NV3 z`^9{4DxGbhTG;Vt+IG9n?&jJ=3u+d_$i=`GW$y#Yx+f?6Ac^I>i#N*E2UPEEElery zO(~jfQ_VoDpnrNb+o7SF&A6zn=v2{3EL zFtT#^rSm=;%Uysg%L*`DUReZEmrY8<0#4F=5)r2c53g=dw635(yrtu0h55=GbjJ{Y z{|=i#RlMcu6D6H)~&V-1?&+6x|z0H`61Mf!wXFC*pYW0iUL(e zh+sO3!$S+eH-TaJ^p67hMqfj=0F1%vR0Ns(3)aNtd1t8Z>bui-f$Nr(bQ(7nZLE{} zQ0H4ywswTobbNwtXYnEQsQdR-{rg+ocpQ-}MSa#^g&G@Yb5ovI6W zsbZA+D(6e7{e@0^iM`=SrA@s(KMl?CF!9@9zX+@b6E?6SwwS)4GF7kok$|>)SHgV= z#Fg@XAGoqltZ#V@`1V;I@pZ?&&25 zd6WyTa5-Okb(fY?Qu#W~EyV|j?LJk`x=gS7N(l&`49ab{()3%dl&JsMUTbGadn^eFSZk!7i(qhX`NA4AIqx85#2JCNv;?9Rc4T`$V|zA#m3A>C!9t1b=k^;dGQrK6Oa|urE4T? z@AP5BL{rRiFTD-)b}IB*nY|>B6zJ2EYY&J@3I_%wsuzw8WM#~DXpq+HqWbfu?+?~c zI}|397-?v1?VdfGy~$@KGH1R0^epLGhcXP-QTk@7V`iLeEVp62{p4nS5qK@Y0e2B? zTLFXV!%iNY@AY29^!{jE+=u5uLvt?jz>vE_MF9a=TG=x;Mt$hnLxx2b7i#;aDwAFG z^fJIDb>%5_%QpK#2ZJQ=k`VCR?JEFJL5h+LxjkOch|dgAdl@Mg{Ngnotvp#fvFoUG zCh)UtW8La{f*9|I8cR(uFns;3Zxx>e)+BFEj2*1IcPyQ1vX9Zc=u8jcVA0N2Yo9!r ze$>+BYOZL=lLr#SZ65P#NE2eEfKoetv&&~91HGrJ6B2fE>!P29AJgxQa0t_QlTGWb zWp!6v7l?(3J((n7>cNf_WW)~-4FzY%nDtirrelr!f1|l&Z5weP5eb9%OC#|6l+UpO zS&gNobE_k=r$HBhdbJ1QMHqBWfMl9_hklCd13fS>aWyJ;a3ty23PHNB3Kt3p$LhuZ zh@C=&2iC|yg$MgIsDfP>>#F{QztqEavFcHhFb_6;!iX(KFGbsSJNV>8n1yGMAp@@5 ziT|*HO2Lit{ljr{=S;>WJ{G+q!$Ih%O%5S!*ZfB6IT{+Mkl!VYd6YckRBIGQ6-bj; zJeJ22)mtB@-V=r_7s}ORhig5ZDvME>t_7Um_cl=b0c?Kjz1~{;H#n}*&@>rs{l1+8 z_m?>t z%v@c=9{%GaB<6p6*9;BTEzqk-^BA?En(bebhq~?M@B41lPDBvl0Sb`$2CaSeh6*@FD^fs2N$ zK1qMQ83q(2J~r^Q0P)ebt84168~GimP@biYn!2NS%Y?V%V*b{{TMJ3vB~z=#j<;IAG^(rM z)lbLhHz{dGLng4s;ckX!QwWi_1(6&`zwPZTUw3Jb+}8$A5)n)ONhtUNGMHr)tIF`MVFiB$ckPGJV#&Oz(JcD~wdRoP1grC3Q!WVUz=F0KM}k5u7+t5`O?pdF7X zt}~t2*k;&uhyVoCl>0aHMBV2%OLq%Hy;bT-NF=W+PDa?wa$HZwvTG)LHMNr|ZQP%&A6c{q+hG3@Q_hU~|XY)n1|4ciX`E%e&0=?m>o(>`~QGJ~+~9h#}gZ z5xuhX_3TGW_p!vW*lyV}hy5u=p+dh`V;T{pF+xqAK2EwY!G*^rK;PvS+L}qZoXMS3 zedH;sr`GNr1=&0P90}%2yr8N#REA$mFp)fk=ll*_hh3A9se)Pa>&?wp#kBf8SO68a zIf(F&s~6%lQE&n;;oy$w`y5sHK%D@xWVTxPDixh%doA>IOKY>+tgFepNdp94-jQaQbDffuX;_6w4{j$v?u~Vw3NJ-XVaFVY9H`GWDz#?ks;1QN zz_Xvq8n0dI`~4MXczX;_D^NyvE{sty|B{LSpsv2Vlbbgm>inoyG_!gv{`Iwu%ktvf z*FB)h!zK1Yox!Wl#2N?fpz;-E436_j*<|IANr}Zn=W9C73O#9gD`Nw8xhZ#PE_H5g zZP@rN(IOVIz-=gYEIHSchGrN=iw^Xb>Db9mcI>!+uE@CNCZoWUM=T}^0ed@jdY%{W zUm{~@TV`e{0$h3VSz4Qv=XL}guBG*lyMAWI0%JOL(Sn^PMl&+K@x*NK-8r`3K0O`8 zqBIwtIXwXjlOOA6j31$SstB4q4M;WzNY|zKuC+UV3u3ZD09IF&MIyje9og+ABs!Of zBrlfoI?keNIAvLC(#BfEow^|&`A~5kRk<{cO7Oq}Wh1q*F1^0SdubB5q%mga<=9cz z(8|IFG0Cd!hvGCn8W2c~TS5IdpZWol+PIc5`y7Gk`qmp9Q?H5Qv}> zn%c4B$?GMH$E%u>M_A@%K%vOd&iyB)z8-`WxE--|GxM`IHeUYuX`0zvKtBdX#^0jA z54WR@ee@K0a?aYtER0uXXb4wiTe()%dH@yL-4U;YgMqz!*XHxe%>c4H2?%LK0cC}k z58uqxG2uqlyoUYWm7bm5**?5cBWU86By~LMhzd@Cd$O#uMVVAFXFTp5bhhga&Ov-K|n;BNN+l*h;->S(nXq-5L$vBM-hZX zdIyzWBfY~YOnTEEBMskA z_`%pEc+I+6zZ!h?yg7&AUX3K`)Rx_SmDa%dFYmueZ~0%?_pcp7jWx<4$^n!_*DGx{ zQJa=}_}?E6_%{b-VJm;ahldA>i%ED?-=ApU_kFJ}0se#Qpz7p&Sh9ap7XRkf`8R;& zWeTjV|KrBd<|zo}oXCAfL<#F|96zr_ZbSg5?glUlGF|IwW{`eej6*oYUj@J}qU+VE zDi~$K+aYqgHI(*EFU@bRQ6BUry1-8(z{+tuGWU?)e##y-(M#hg1J#r1;&#`qqe5rF zyn1-&f^=2TW1SlY4jHZAbDejb!WdTu63|1bM-un=%O{kvu3TInWKWd+#`qjBN{*2Q z7=%NA>;fmO`Bn1$fw7X&kvDU#=3Nuk&FBqR&ZCiGK4=;C97KH#Y-v;?NWe)4EbOxx z9xk~XTbp&ags|=a&;QYY)7+w=BKKVEVe`<<0m%M!AP=2xt#zb18%|@nz}$Vr-{I%` z($-SBx2c6h)OX8028DI4ZQZS0Jn0YCn51%Ctz4+$Q(Iw_5MuzLXu|rA>*Y(WcBSHj znQ|%CYQ}LcuFq?*A8EW&mR-Y<`!p3&ao(bi2-C!IMgf1$QGn(gIM)>RhXMhAZsFXq zfsOYuaL=z}gxgVElMk$eE4c?bw6%2)%60=f5$r@cFb6!YH5$u8LvP4#PnLeu` zGWP{qE>*;3+r4h~YF4Imf|mNmreR-&YZrAoc|EBf%?t~K{;Q(_T+flabanN%1siqk zgEmK{JNDZ_;_C=gD@b^)kKJ(H%{mPFgxZ2tLr{><)W%F9{B9dvzE09XJ=j0n+yt&s z7{ggmV$W+MBK8Az@9DmgwQrQuf0HVOlo3&IHvosD@~y=XmW;gmyQ%{l=`SC(*RPWs zCqbk{Ys2#LNb9-^^sb$xCGY zZUp(w{1OH!q#s--gwF__9&(2zjugai^pQioe)6%{itLqeCWW4o8o;>Sh@*TXG>AHE z9OXKHJ~PvKug!yi{kh=|ovdQWMEb?xskqUK3NL5Jfc1$KIio~ejZ0`iwwZOV5$w7= z1gjtf5!jk+S8G(#N9SEd)+tu{6G;n;7>2 zCQorv78@9l?GPL395Pbry{pu%9EqlP8P%69Qz8$7r+ku??{>$}b(^l@ zCB&6I)E76MF%1BRT%b8GBvqr=3f(e`x|%$KlmgwHmdu^eZKIt<{1O5pQNRHr7Y%W0veI4d^vZ#Fy>!;2pS0=+1~CC)-9Z+xX9BRDXA5 z8fsd-obEFlXV>`QjW@-sZN|z9>+XX!UGA>&wM)!O&bfziV?f8srG9BLxNl@PYcVz> z@Y6~?wb{q1dqN&83I$H7a-0$+0$6>99S;UN_Vo8iRvrD0sVJFTWwb|wSfBL0uTJTq zbK&j*qUN+`2FuC@C*;+elw*WY5(Uxz9$iglGXzaP8@PwJ*2ZAt;+&+9vPw&a3oR)y zZ#*J&^O*_b(K`i-;m+hRq^iRIjLnUW*g&a+pGWurP$J3G+0`Ok4~P~TZA$au3)Pxplt zBgr@w++?e2OMKtykBobzb;S80|K5pvT`=z{A0h(4=o8zxg}QuN`{jlgy+K|{qe;c# zg=q^U0_ae@EL_xBEci^|lSQz6E$611rBVzePui~zfA>AS0X>6t=ME7{9(t$sl*P^U z)aelNn-Y}ggUo_E>jIYhtv@`xgX z+P4|BG~D|6$iAy+##p@h3&ueBb^b>YY8oXf32pj}IU)_SMzG2lC`3;4jg9Uw^tm2} zT)~Js3i+6&*2XPh5=QVW1v5!y(g>)acAHOtp{H$WJp?s~8E1E}2RCh+JnPq? z$qHRgwxajVE&sD`XrliUx2BXxu#ILy(Hkzb9CA+GEOTX>=~ z*Q9Fv9%iOy+qPjk?dA8XaLCNLk9YoysZzE<2H8(LMl;j4FpNK)v;^O`SZcP=5Ujf> z0LNj$`b3Z0n{n1vCfG_1G8~eB*eLRPmcb&ujPa_8Xa=vBZOE<=EiUxT{}27^W2+ zVy($lYQo;LoPrXYYJqqC=!ME`ZLN%%`F||;ZK}h%k^+aXh&7Iz-pfptMGYwuHY#hC zR8#shb5jb;TJUPRV*HZl)ime}7(IOA# zFAxeJsq->)+NcEyC;f!YEJSw`+4;1OJ8T5kQ+VDJpQZ-oQr9R^TOLCx1z@<$p=ykV>SR@lT z)*XM&m*fNqFD5|k0+n+iVC!S0zEt#@sx?Xv;nXi{dG)CiK}Z)|?UGu}ln<+S!=TtRTyJibNUy_u#Gytp}PE z&wBxvF)}(K37`Pk=W7hm0jNnhIl5mwO*k(5r@}xk;*e#@`74i)B<6&9dxKnWnK!`U zaGriA_PTgjjcqyoe$t17E+pHmZqm&=Hw(bR2D2Rc!_^v?E z2R4Y^1OksEuh~G9;oKdw3%XmvfD$y10LI&XeX^<2^^%^U!SY$9?q6Xlhxbiq3Xv=) zigOk{Gf=i@O|-j{w%P0C z$D~%->8#Q?rtnS55KD?-<+=`tOM7GDy@^GD(gYUJ}zFdQO1Xt9k zX7m)z@>NPbhOC$qsTtrDT_J-}t9c`vvymQFJ4Ll~c(NqGED|r>K4}QuYJc+e)3sZU zl`72}?=l>dpxv`9@~D^2{g$HHn-Q!zgLhb-2X?Ac{fg_XYMO0)7h z_sz&vGOj=ftW?#8oCle*cE15lvwP;?sF45s^kG4EpFLCO>fB!0-}s_R5^eU%q3Uwm zF6psc57M}6f{NSh^S@11cN_yX7<2f8ep&~Z_wqh7wT+uS0xra{f>2M&-BiAnU9F8Y zwH5nxsGZxGYLi}buwxg2;1GH%+{^D#%uwG6Y#}wX(B@dU_K-dg^MPG}*>3c*r)66y z3Q$u~W(k?Iq*E4Pc>%{6)l`1=J)VlQvnjJ(S$TI9UaYd~%A)yq? zaR-l4Q7*hasbgGp$Xxx)-+$1bF>n&yivpq$= zXSLGY0G=6y44xUhB9EN{QHWI+AA>ZkA3VgpNGb4l94DkzySibyMQ7MZ${!h^kX%*h z47i^H@)w@Vhfn zRi9cjb9UYqG8I`3hNw+y!>^T)HMZJ$x|?S7(jlZ2zT|YG~y8?|M+?Qs2-VV!s9XKbSjk*a&!<_qIkXDp8=+{gvTk;PcFujmR;5&oIGEB<0qV;Z^d4We`<5)hYB4OYb+kI>Z0zjp0@+P zlFMDE(ceLuuM1<1VzE@7B_G@n&pt-3y7) zo&DxxTwKMTUjR((_Oy-(Q)<>o)&A{q;P~#NG~7PHcYQD7wrQ|SgKCEFqq3Ud{oQ*T zD7AQrrPN_$$?}hkI(_}TB=>BadtVw9Gb0O>A*Ce??Li?5wv~BW7}O?l2v^s3UeaQ0 zGIZ5P{Zkm7)yhU?t~|5@gBXJ5BGlcl7p=n0WDFlrd&b?WhgfT5Mv&rTSHL5GMNngXP5;F zdf%9-DMfkNrlzvA;p@@U{yzJE6oL{9oM%{2jscL16t?iqrs0lPwZmm)_kv&#cREBSQ2jq{7t!EzjDi`1|@Awl^tbT2{S^oycG~&YX5Dr{KF|ij|k7 z_8*$~EM$C9+&ts6?IAl{7)`7p1MT43?EeN>{4eOrq$6m;=IgEU>|tq$Ut11|LjUe< z$MFN46Y=@1M{mZXWTB&657R<+zeeFf7|OgmjZ`HtoW61&%*wCx70(Zm|BoRp@m8P4)O)Y5k&} z6TRM7S)`yaGi~*h;W9ya%YTnz4c*bn;l&;{%6}4k<=-o4rMN>}`%>j<)sl((_iyi} z$bqxQE*`2>z=GGokxFnrFAs@3@Q-`{-?gOC|IOX|zk+2T@KV`-f4*AHO6wP{cL$Z7o|rQ4l*bqwmwz8!U_Cl&NP zbF9@PA@;qKc})KCIsl2c1uTE0#f$1r@j`Y#@i~9`?Z?dmS$K*0l(g51u8xk5fkShL zLjXFC(dW+-fd~hkIeKOe?N@_1k{PZ#=%;_OR+n;yYvdVw z85Sra;=#r~b(q%0A^?EYV>x_^=#Jstq~#uHAk|34yCYFrNvXj)1Ej`4T5DtQa+ACp zExT&wN-9Fx_p49UhqVp&xldj$j^0SlmMsAg%Grv(`N^c^nw?HRKy)5=Xlpw14{#4> z(5DIAqst{_==NsaGlLBrR)1Js!9C9IJQg!62n$Y6fNqQB&Q_H>GML`|iGXI4z7J@&7u(61*ilrenprCSn{QD|UTXEu z)vN8NOb)U#U!c#WBBi29LysFQRC2p7!#!5eweS|28DpBXj^KKTBkkGdbt#&+zxQfW zZzp+W)%%c}2*pzj|KL`%FL9Os1JY}7rguV|92q9l(kLudtR-yL4K7Ne^SVoG*go|`_c=>Cgl>N3`)4~io!g_SR^-y8O6A$I~y3hu;F(2Cm!jg4OLYAyB% z_{A3JrxFU_3e6f*3j%#UW=jm}jboYDq*38g8=eWT8KAF7IeS%x;4z;vSG z6;dhRORRWe6C|r5f_ZfBLS1S8{yvP>j6Mb=eXWQf;>z{#3W;i)w?KZe;b?Vy*{e8g z>yO=P$s>u<`h0bs4SeEt%v)%BvY>tu_UU{`E-4{vfJ&~ivAPY;RL!cdhqgH{QFQ^B3vf=X!>Ng;==}9 zkxXriumE3gezvTQz>C>uBsNEyczi(8Mr-#YPtQ_cBK`%R^lf|3}9%JWI{g603Eg}LL(!!qb7Ovn9D zcZZogOp1z}3QrtoWxk_^Dh}kWdzC=fL=RkU&RBM1^;_N;^wY;Mo+%@ zstZN18;bo{b3QE@iNZipXtGoH(yN%xUQMr@^$}>x7JJvb<1yAsp-=AfKY5GB(l@s+ z0o8!-e`4%F1G4Bx?5EmmnG}16#wWua!OeN|JC9&@0z>IFpxC$oyPK6cFB=rlFj@gO zN2Pd1dz%DXFe+e(5$L;rxS z=&>)DK6?}11}1|?b0gYc30CU-(5~Vx+306jQWKwX?AS!TB`}wIvOXx}Z#t>WujqH5`9VZ6xxs7%>}i9Jj*#y)SQ%Su%kq9hg}z#` zB~R?Zdubpo@_k(}BG%Ywu+?i;_y-Hdeo=ypzDRwtY;sVDS*opY%>YVa+E{Jg7)LqE zMSs>@sc5gmTiZb==BUm1*znV&D*eWe&NhhcliLZ!mSmNdFIK&zrXy=ak4qJa_M%3h z*F{1iD|u4s_|*tNFwFdCWT`nl{>{ZPXg4CaRALncy05`v|MUse&Ec!Mp4}pE=kUO< z?c`9iv@Le9EF+J4M!xD=ygg3Kz1ycHr7NkLF|94{ZxzQ-P7Kp?3NuTXlAKT5Di*=# zF=oP$P(b#Xs`~96Hd4JR{t@EuJ6NA4*BDF90;_8Af>wkS_l0EEi+Q>fd-@+)4IC5ixrF29!OAdl+O zn`^}R@p}yvD@LtMFH~_ae<7?*{%01bBagAx6(<1T6#O_RLy+)_YW|71BoRz&!Bznk`16xGGS zouKjR$eO|SNET%!{H-YyM(lo7VXo%k-#$OtuTR^pZp zE-nsGf$P&X5&*KN{Qa{p?|+K0Htb74o~C%N;c{ZovJPiox3?-lgwGqp;hxuQncJ=u zwxo7F0%sg4Ak+IDSLe`^MkMJEHGB!WckGT{=xP0qjh_IZVt0PHpN0}tt?nI7&xRQJ zooyGa^L?)7h@HO8%|+{wnNu9*@3@~Z()380W5B7X1L?EUV=bb9uigQoH39lN4_Dmtq_U+yFgt_y^+LsW!Z%hwG^d>jTg_(?o zNLB;5?{G>uj=c3Qmw5IZBqG4w-cpGwo~=%;(GD{k)Cho=qiwBhw6oQgYO405Biu;8 z@pLUlxCTubb@vBtFJ3vBg(0B!)|gi&ugof0%wV@9@HG&FsMg${MXdMsSD$!?TZFr~ zBQ7p%<;nIiMWtpdygK5O48u!H+Xn7KX4lug#H>)NBV%_T9G!(dT1j;o<;x4o%3d#; z7;dE$uv0Krj|~P}y`8dxZ%>9Rf}(RM$lozRvnMqX!)xcegV_4UHsG&NK^mZ$53Ezq z*21T_-inwX$QUIfM64j%$)pq21wk}bj!zGw4oqpaFU7C^{B1MyWi_7`RMe*t1i2%BUzEim;CLWz~`i|cG8_AVaxDHg5a)))5?@Fg#HI$;koa__&%&w}dlFZom4>QQk>B>C$Dto6g zrs8O;q__kb0^eHtbvk8UUa84bk1S->da2K^9yvHrWUPHPXI~oJ!vrrJgbYQ# z-T{8R?SsACX5@Nzu8$#x$m23F+|v^kGb^$kG}k~{2w@gi2by%6sf!?`(V_Z#E{-KN zY*%({y^GX(Lr{BRucrd9y3A19MD`Y97JXC*z~fXqnWrt2Xy}E(;ud>orwnZ~eIWEGBy*p>}74 zr{9Tl9vO$ivvDin3EsmgIq*ng+OJ z2s?h6bC;I3b;Ub826B!j?j!Fbu-S5i=qnBOshA3D~?$32%yylnO?Isf3@aSX{)30Vpb5u?g9OKohHt$uY)4w$aRe z*zEq?<(!b~)poQnjQ#?Kr(<`SuG|b~An5h7O`^?O(_ACq!~^qL+QVwE0#Ovov#;Bt zyUwD8{I6S2*ya(&tebHs~zVeD_OeUxKtB7)&+=bC+PTQ*D_TpVkrhr0&2q;$+df)I|# zxE+*buS@IbQe4NK&rwQ}%Ll!x6SJor0Hr18!JAuEcc}ja`7f&b8Nb~vr z)RJV(O>=d?^;PI--O**y5kkbby9pa>4fFPI89!77Lr!hzzd#G@Oox_O@hqS|wH7jl zppf?5wsrlDl4h+}Tq8%T$;DtlLLaCgtTSSkzNqZ~w#D>x0lN{2xOSv(+idj1pHoTH zX+fH3=n&vngMi1WDjg%|?0)5u!Y)T|Z41o$Mg=1nHC63lt0qI4A4C^xiD1JaYYRXs z8#8AvKq{{lo9+KR5JMkpy47*MufisMV{IpDvzuC-4Z#rjG@Zg2+~sP`AJ>}JoRTMX zTA5B@DOQm+hHJLlYyB3!f=W~{Z~aR7^BwqH$U}ub;W~0VNAO@YQJ!Gfn}XPJ?HI2i z7gaM_k4}Oio3tYPSDr$c+e;ReI5be8y>$T*$tL@cza_{~3SGv_L*DP*MHkbXUGVJG zp;&qCJ!j9815wD<@*cq~y|#S0wx;{!q>XGOJo1`Rztqadh%3mfsT#@|5&xM_jn|r{ zy}T$jn@d|kIpo$~P1{(SU%CCK<9X^P^){$u=!;f}`NroiP8;cG~%XerF)H zSeGeRDcf_@*`FfLz5Xt!%RDS`X13|xj*EIn)?Auy#KTQiqMZkz8`ozKr+5gD_TCeN zEERbODTia@cnuW)%VKO7@Y^~ioN~llBU!UJ0`S<;tCWA-VUKEcjOw3h=MlP)Dt(PL za~*nh@8efpzvl8@9y9KzU)?++LQS`~uHKQ@Vu+-PajbHaj9|fY`QEH-k&| zu4$-ERcn}P9Z>XvAH8>mK#=qJLH!payT&hZ?mU95{iRmD6b_92fJ&C=QI82yOL_K- zlM%{I&#Lb+*Hhm>A%KgYC;nIG{?~W89O%onRYnC~04BBrX^fyIZf4^4#O;iDBhPV+ zbDLEt_%&8~rGUKiZ&92`Y+#FNZQX#PUjre|RsEOPgcJy%O8o)JyduV}`zL|>^g9cK z3@eH5aaRVfm3@_Q!m{LF;Q&YMGj4QH`=#_nhjyUV8h>@%AI;=jL_ zo_@o#9j%+f$7%nA&&~Hv+oZ_~vm&D*;J7<+0&xmQa^5{eQdvrnXao&h$M>`2X5?|GWU$Y4BlA zncPd`Oa@^`&|%N(B1btBSqda<9p} zBj{$#yh)OfhnAFqZZs3~7uc=@gm3#BP3X2hg!!PPTx$A7WSHqf_X*vqg^{)=K&hIz z&+`pF$#ntKdxYz_4675W`xn;kQND9+IyvsfOzjhUM*w+El9ugTUIhg)Ze9RxzQZ9u zloJRx`!lukrt#mm?|(}k!=D8G{}kyUA{V}xk{;D{$xwj04ENI+zq#Y_E&KU{T=#_p zpdAGtx(9cP94>HRP-W?jPN}o|+}Mgu|B2D0TFv5s>f;}fTHIPdd<~v&?~#z-7;}x} zrj^Aeje1$6b|vC3CX zRnnFf3KxKK418EqS~;B&-UexBtAJsi5pXrvtoeqI{^@nX$Q6T%QOhDp$-W}Es;8;9 zz9U+t=tHIRxMoAwAa%WTW{9w5v{Jn=Vm|7t%Oaakw!1GpK*TPW&Q`7kR)qG{;L9@t zTUs4G;VoJdw5Vtd%gkgrJgJx^Xii>?fKj!Aw=S%%)tJJOEzte@xyjDiClm>ul#eTi zYTNTqSSn8K>cX?<j=0L1sJtq|cky?_coi2mRyWO_(Hd_V*wj z*u4zHlMU2IvlG*~=2jHb`IWaXjfP>ch28}cX>T$#R+IVX3}t=dk{Gn=Qgt&kE7!s| zofNKbERw6Z<4DQk)iVv$e~|G=knc>Q2=9+`l@s@D-AfZkOZ3jX_s$C5*};ysQ;8n; z)yh-Xs9UN&?8h3K1cS$!E8t=+s(cnN_!G1AeEMeRQQh@=f$x8TIKl<{Y=l#V@9C1( zjrAlbrr_SDU@-q4RCuf=PB1V-Yx0_)k4@eflZ= zoLS-561<5Ng}lm=rZe45W%}_$o(@V6S_*U4{2n9?Bgd-3NQyngK=I_eeiVeaT}u8? z!WTv{=|q{;Z396oJP*&j1*D?|fqJl=^ZcW-z>tLm@`-%FR~;y-1LI$V~i@iZK}pc9r`uoe)>I4iimV-fPZr`|%5 zZD5SYcx94t)pdNVYwpl!zyQhGG~=r4-7I;SU3v3nk9D22@%x>-Fy{DVxH(0&Sf`t@ z(YaHF4GW2d!W|E_VQ}YMt*x5f51+>-uGyRpu)Ee=CGFYrj+k$4p7V4rQ2$0U&+z;Q zHOnN4Ctl*$1zc`b=K-^5>3s}PM)v=U-aG?QS6CeDPAsJ-V|L(1)ecR+<|aHxrSq;U zckA_iH{A9RetaXS)_gefWFK{sc{U5`OaW>Q)4np%t7o zxFOd!e+DY-(xCn4o7GD4UAKpC`iHXeK>HhU}&^O|OclXD7hVN_-EWltzY zZmSMeg|L{9GKDUCicViNbS)(7_YGdqUu?>64cI3G2Wo)>&(KChPNT=Y1onZq+ZBFrul66djMVyDzula`tb`mce@7Di zz&6T4fcCLe_*8eP!Lf8v(kO+=keYSyl#q_3|$&<5*rX1G<0B$P8Jo_+*54q?Uq zb6urP6T{Jj?peI*bO7fo=MyduzAG9#`bKNV{?4I419Vno{$mQ!2_B7aH_3K5=2S%0 zLF?9-{^r)Waqo9W1>YQQC0u(zM}}F1qQe~oBffnMCH~H$H*{z|`H_~(UOQyvIGVfn z@7`Sk>Iv|nLn)pB4Gxci-#+`CmmL zgmjNZ*#oL9E#X}Eu%Rjc>0VEd~b?}4C6K$IBqz0PyrC1 z(x-o9p#j*@{~}B;{wERThz~e*upe?l{Z?AeQt% zkLPwuddfH%8S=olzNzfx@%$xlOzxw;|C)3|Wba2>loo%K$bt=({%-eCHDanFoVpzF z0y<4ENaIy3oBFUaWn(dW4xgtt;P9E{Fps`=YQD0qx>yTya^`R*9g$1^P2`HE_h^(I_1Y~zbw6!Ag3)`+2Z@4JOUyl+F};&8}}MLeQpK5oNgU% z>f)G|xt|_FkXq@k_c9_{e&247zvFeRZzGvfmK}nt(b|{|c8pjf>~!V(>~u48+?!dY zLYyc4mT#)(gkh%3LdLAKrQ>P*xt@M8GiQcG%H2!z8gHO8cHuf^-Z{X=A?2IoSHr+e z7Wj}##^Zy|#ZK3Fz%F>Uz4QJIEZ(ruA^-XONy_i7V&z+W*Hetk#YxLrpKbx z%ANAPtqM(%y7>^(h-;pCQ=ciCWXfxwl_4b2Cfmm!!lN*+=_!#(b+csQORwS1G+_FR zo=V>3TdAXG5ncq(uty&bSIC!j*3;nFRZ-5kkKdO@^&-V(Mg@vce!!?qeCxD=d)LWMPd}CM8(@Y+^g^O@}trL zGTd|&^C=p}TqjtFc8J8d5m)KcFTCNl97mB)I}MA24O)=t&ypH`OMxoz(D z_7^@Qde=t43i_yKmC?$Gf-n14i>>+Vm8YqkA<8xS0PzA)*qw0AzAkim+GP%;B2`s{ zk>rw26QX-wFA^#X-KWP-YwICe{p~%7)cg{EKZE@PiP14^XO@WV87X}0XWE?S5p^5e z3tr8cvKyZ2Hf^P&tLrmN19O99M?vX>5I^IdoW|`%FX!1%h@@9!ScJF$rb9e(m>>VX zZn#Uqi?*bBc)NnZldYruk}{kl;xqmVXh>>OSI}p;ZHi_p316~0)=V^^=be9~-NxS$ z893d$Z7@_VtC4hKIY-Ecu}X|T$#k3^iVYo}m7I_=Ml|?IS*S`6uoA9rCZ;SHCMFCu z|Y+7?4ofMw~zRI~UMhdX=X)Xt*oixUF+;rzf4$?TUauzDOR?erf-y)u$`q zs9DVo5WeYYP3dWstySlXVMQ}_RV!1wK^Y-NMHeMAJJt2?qW6L(H1T?}vwekb zl5wk;A{R-0XAfGu2;%~ev6I^#>q9+v#w8fO?IezwlU3Fm*Q zp-Pf@rVY+aS5$O2O1rz|)uUd!^epq926w=9ud6bVxIN)?MSSo~cU16HRz`vRPveQO zc)3Uofu9@{NzLl?F6O5vqz3}iI%@dV-TVH&-yTF1uy06auR_(A#~bp;tCF<26pedw zcalAv*YB_uB=64zyLB8hl|KPIW?;Hr#XEm3q+W)e&O9exAmkMqq1%-dZK^39()3-) z_^8IxGA#vb7Ii5@&e-6~?1z)dY1Dk#8PCjiv20`ko7+U9Tb}oy;lBu6!zGg>?WmI0_xU|~ z!o{JQ%_5xPylk)Y*8##!;6l&7JbAPfvzw+O229J#_^+b2mbeR)-ISRxt<|-K4_Fv9O%F2akWH_t+08I{$!-n#d2~_EZjGnH>$(W z&7gTBUKkaEDZHUKqe7AL%DZu|C6Cb(IDJEMwldmHNNn>pvpAcWYR{Kw*)F@#5b&VY z!`&uWBeUAw&faY5cO4N;u}Vqf2oi80^c!oHeY5Y=5;}LM99FH z3fePpu%%w*etV9ZkbaS)@8icYohQ|=$(AIg6p_cnbf$kcN|T_L*gW=ZedLpGme#tN zVRn@;uC<(@>~5Alp)J(c9|D=Cd$!89kNL*LN2L_>;c4$XZ;{7kqsijDcj2%?^o%5u zj?|+>QzJshZblH|f4$xoqLHgbh_76clVyqCc4{$O+(c<6Y#03cfRdhH)gL;jE!3NI zcacMH{B9EDF|DK0t2^%R_1Iwg`WtBJAg6;Y$Y+SBtplZmzn3k(-iE<6*MzFY6PS<1 zhNASVH73DPP&~Em0C53QWcZA+#wl7!Ud)$6j)FwiaRRnEhIdjQ`qgTx&g34F#r zcIl^Fi^hS2&fqE6a3KFfgSA#84`fHJu7AKeG{@p!d;NKn?sx)74iQlj9eDj00$ELQ z9*a;B8!-Eip^p5*A%8prq{?;$2-XM%XQVBT=Yc2wHw)tMa4@I_b$%Rz%Ss1SNc2brt`HVDND z^%&I^$xb~k4N{=uIBGa>U|wSC@m3Bp1x^x2&+1kH@r=}n`JB8HK+S)qug?NKoFcz~ z04?F2&L_dyH#4xU;<6V) zh^h&49wP~dNhnV@h*z8z=H@gWHq{3ug~E#5E?oODaN3J=ja>J0!bl}wngTsEK#rNs z_gaSa+Q6~GnE5*NL*S8$#UE%vn8PjjZ6Hx_Stw2p4O5B=VmY+zbTxF;soEmwuR|hs zh8L@HZ}f74S3>}jMq=AGprJ!Z=tLCe@4&OC_m37$#Q>AE@g|#caM2dAZ@$;`)k2;g z*V_wWr&ew9MQ$r^TDjnUj`W7RdE=VYfn6v|Y}l(VzQ@GlH`V8sOe-`O!I?11K5|` zPyQz>hBh!X z=7O}B(f)hU5)$P7s|$2kQFlZAdaTGsM5}wa=W#b3QKuY<2ID4*=H_Pw04&@#lWB<4 z(!4esv_&a5vPhH6B3L352{z8`B-WxPDyd=np8ZZw>-W#^RzyDWylsDehy9gj8j?NZ zY%{o4j=@C6HST>;0k2^S$yM*8O9ww?-o}!`qmGB5hJqbSu^AGRC^jkF#UnJ+a}MUT z7SdW!;cKC>`}Kg=?~0#x$${U&lZO$zAFIQ75Gp74qJ%cl-C?1S@!QT-Ml)EK#Og75 zF=()PotbfVGjqIX^t3V?9r>CQk&%L~j7!OY9&xG#ku}Z%t+1&tGh~)RH5|6bpvc)y z^;k6+AS2tn-PgDE&YJJfUWu3+%MV@I{t0-?we$79RY&S(-yz`k-{FU?-rZe?{u#Lh zf~!`8g9U9#bYvMID(@B=$;}f1ZKeKh)%_K% zeHBq34%=Ia+y_M?8uf~WEsyhqlkF5|1^Zv#{IvIOcU2O5+kWSsMh*S_qe1=Gg^}() z_T~=Og`4kD-Jw;|8+MSvH0`qkmDA@ED_fc#xAZiwDy+|X;7Yf7WEc<$a*S!75x#qK zJ6tw)cW+Tce)nMnfhsM}cp3TnwZH(WPN}DRKnB?}Mt%MwzDIfO6)v)^RRfhiut?@p zwoFOx9(04Cy(0;3{+&zt0uU*2LA%Am?p##kH&T6=9^^o}q;|Q?i~5hicWAx^JG$<( zR?G??ZX!-?d#ebQ=VllI9eClt-H|Pn*bt#Ol_chNG`yB|{KUg0bw8^Go7!^5V{gd= z!O2+XaUZuhK8O%sPs%PSgQ~q(i%z|Z?}ngol*UWqk^7pPFt^B&5+ToHd_5lOLS|}^JM5bJ`dgLNTDQJ3WNh3f z@dtVWX_-Hm5|b^jx?rLx_4!Lsr!=g0CdgxZqND`L-ubjq2kT8acA#Y>60TYK?B1Y|NIuD+{^1mtNOU=Hn1SkCFEO zip$NBh4nUubS^EqP#L;ud=lV`HISFl^kO zRcZmOtRR*n=twN5-^0mmf^smSqhFE)cofrTIzR@d^I}zR_o~jx=$8pDBtoSbTN<04z0g(GuObp)_7}=uojr7^sa_ozMfqKQP&pNbO+Cg2O1? zMCtPx0#A2F@~OlHg&IE5j-4+2Y=RO}vR+QpJ(sU)J;Q7}zko0;~hpQ)Hbr4%>VfA+Cvp z@fH4%o}Tqh+A5;3=N`V6Y}Mrt35Rj0B%AW)i-wlD=Zdm}?e~^Sf1TEst%y065Oz=z z;TjlFX{5dplh#;TZWJKH)7%)*6#-=_cMk@+9(a26tjJm?r?#EdZg2ngW;z`t5@;JO zBrbK3BeN=Jt(>$i|D>g_-Ut ze&e?^cI&|8BzZlUk)-GwGji(f0N$_$xD{Cnn@=%eq-dM?CMeRarm$t8MNZBaHhvt)3B&z zJNny)VR|&Jr}5Fcf@0BArw@&qgv$peJTj=tyI=*pjO+-|H)!9lzJmOy3Af2eGqlY# zdz9yJrUeLPsV<5r*Xt zvNqj+>~!l!ij&d(OdG)q*|vPCgH4)|*~LXhClp!ZR#Wr2t!8|;Jx6H7$lPo5!aLZA zGMQHv1>8oZjw#}C4P7bGWiuEZD#jrg{vgcQ-<7suO@AllGVsr2Xo{O3iS4#>$zmF@ z<|we^t#^Omt}Ci-DPhbbugw*bdmrOgjgDK!DXGA1_Ed;wv!Un)M^lTAu>23heI7%k zZ-Ll!XzF0}tOP{lprz8!bjyUw*uyEJI_!lgD~-yRb6*p_SO^;Bw4?e|TOU$WuAF!? zyfBMk8i4ZRrnVj}sV;%g?HbzL-q4>oai}QF2rH7}zMNOE2fp6C2YMsX6+O^to)WqG%*TcQI4zeFU z&85eR^BCiz5WxeWR-%5@)4u6hp6;N&nJqq4a};iLRUD(ueLF{KK$2GMvuorlJ7xYBO)Nf+lcIVntY#J^YXOMc8xX2 zJ8khau(QN=Ub9Ov97q7aA*|6khgiG!2c8mLld#W=^su;`J-q*eNqHhYaPptay+M(C zY}8Mp@rge{v63hxbKI(GWB-Q#-i{lOOZJ7x+-0pBmkEg7|UuvnYt8?z%w>)u8CIr36iWP!!Cj=j{~|D(O{ z3~Opl*Y=DvIu^tRC$N&Z0PTX3ja+HRsHC{(br34@uT~*Lv%7KlgLr?MQz^P zX$pvDhB?uRlCo2odfeuX4n>cv&8o4@)wjaH$=pojMVs!u(zlAvClOO-YDaqgYJ^wJDK?8CTf(F(y9*Tb)-rGChCPdIxm4b+>U zAZ~aRFa;>a7!~r0&&IHk(ZNzd@)f**pRVD%o5^VaTX?au1sd=mv9fY z@F-4BRdfOEgY-b@~lW)2HIanWx6R zt$bcKpmg;7uMJng0@{(^zBM$!(p~^5&tawCt?j@ek>|3@!pl-bsf1d^nZZN3My-8l zBOzX~hqo>FVfY2`%jfcxNDMzAWfjd%67+Zve?2P9JZ|`mgRUmRH!cd6?Kud6Fi>JRTDQ% zV`7zL=74n)d*<5w*DzX)_AQ_sPY}bKq7oqyTjwI8*U1};y?Kd}o0vl4Ba8T0z=!v; zpTx{>7F%ZAp+j5Z(1^C;v9I;d&KUR2-&0vQH7^t;6LG`MHqr}nb*z2;n*BBm*1I44 zyoe5WpLTGB=kU7Habd1-0NyDBJtZY6(i9^yhJ71%}VpHI5c>EhDv z#;seOIO>)Ph(}gf2$Iv<%xoYD5Ign!b#_(Jkj^*TX)(8`+072#ASb#?^*$pJ!5II{5f#ORYvPFq$+t?r}a2ABeFO>D_cRj92~o+b8w| zhwr@)zyOB%IXJ~}Lb|h$t0SLu-ITd7>vgOsZ8QVe<*Jr;uFX&>Y@)m`{5C!<3am z$+f#H6-ft^=X)^pR?#G!80XuaKzeA79e74%apI)~cGy%~;0WV!6-t}gShcno-IJ)1 zyjCC8P(D{d9_&M)KStO&v*^ckSUr)U-;$2&qttWlgtK|SIFZdHb>;veC`<*RbP5rt zuWhkTLBh{dUH~D!D8@KOJ8#lI!~i);=~tzdl)I2>2(a8UHW`PD8Vl$HV+4w2dd|Ws z|AiKqwpa84FB`ZAodxD3s%}x9zgx~9F;pbtPy?cbS2>J;H8etzIOP$*&6|&P0&$+1 zI(hZa51USZK{2*7ZLOB&7deZ5(RR(NC?R5-(-u;d)eRSgGuIFG{d{3&4H@ARFC2Bx z#LbTzPK|3HM!rxul?|xd!=jqMuZq)3=L={gZJwOR>YRzq&8e@D3`t>mYnu$W$T`kk zeufN=GvnlMymm^f6hO&`&dmW(vgws^HHnIFqJ<~;-0LVL7vv{swJ7Sp?qx56ERWS6 zNgvU>?`LzOon3B$eJS9RbH>83StD=y;~U4-VB!-#K$m4Y38I3qGp|4HHtiohX$Qr8 zBz_{N+4befxU{dAtN?Wyi~fP&tZ-aEiO4~C%V~V5CMGgUIsT9__Be03$|#q&=u>77 zGxJVh5T`^F=(+wLk@Ug$ApWx6&W;`{ss5__2j{SJXZ49JR4-Ef1KH`u*a9i?X@7u1 z7E-;^C%ZbEm@++m{7A?AY){>lQp5_GgNS#ppJG(ja4pGY7WeAxq+HwjXEXZS{F{6h z1MNg*`Capik+%2ntzdoQNgtQ+2ZNz>swcaf^?9qtgadbT)1_y^&`V(&vEI5bt;xxO zujjia%8^8#LB9W|;>uvJwwz2KJV7>3|2!YdXUf=J(YU7(A zo|Fl~5P~DP9C1)W3!LqPzWqBb@Nj4D+FQkc1bP9e<)#yWH=C_bp1fA3stj(tw=MU$ zuL#1r{5^5zSDdkeAI=`nUEH#e2^)dGWMWzrj)l!Fs5-PsJ25{nh@@#$iCvXuZfkRM z!rSFXaCRY_4T3YS!Bgbd5kk+a?>Fv z(jC2>AzEe%3ky2}>PI_X4iY|1*Y*xkBGE0B6hV&oQpMjr*}96LDhxsP%5$({-M@$P^Ed)5IFr+Pm<7
Nv=&Frcd}vG4X$@;{)6)lugd7X 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 Q_Jir&Ho8@D!{N!l1AI{DmH+?% diff --git a/source/images/d_qgisplugin02a.png b/source/images/d_qgisplugin02a.png new file mode 100644 index 0000000000000000000000000000000000000000..40f7eccafb323aca883a2e5a2c3b1af04ad70eca GIT binary patch literal 30479 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 literal 0 HcmV?d00001 diff --git a/source/images/d_qgisplugin03.png b/source/images/d_qgisplugin03.png new file mode 100644 index 0000000000000000000000000000000000000000..6af3d8d9c2fa75f0c68c0f99910dcfc282676a12 GIT binary patch literal 10377 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 literal 0 HcmV?d00001 diff --git a/source/images/d_qgisplugin04.png b/source/images/d_qgisplugin04.png new file mode 100644 index 0000000000000000000000000000000000000000..37b09be347c8019387ad890bdd54d8df951959ca GIT binary patch literal 117291 zcmce-cT|(z(l{Cmpd#{G0O=|MN>xAsDG?D-x`H4zs1)hFL`b3_@FKl8A)->GDj=Oi zL}>vc(rYLQ0f7V(AcV9V-g7+X`+j%bweBBx-C2u8p0fAMo|!#u&l78AqR(?o=okP1 z;JJ7A_5%QbQyBm_^y~;H`%cuCvtQZ&4g@^VzXhlo5Lsbg9Cp<))&T%MCvnpsbFidx!bviyKoexg3ln&ztwF`7G9-(oNNgxUN$K=HhVYd3rG- z@77Rkx|wpT`Hv&`?(_0lQjVWqzG#}jBMZKa&4#U4LKK=GX{W+K+QO@Aw26k=(dVN! zEx(K4Z8-vLGW(1&XsX;Fi>M`Jx?~3vpyc$46>@b^O0E43e zMJwkM&h2vz0Ep2W3~>?B+-+`sJ|{@c5u6RDIe#p(xgaglaLeSzrlz{v3L16QFfl0L zAOIluz*;Bn78^(Qp&{@Z0I+n&Qpvj>{WLWiaHT;hQji+%u!A5quF>b=J*aAv-gaFs z?9akT7lMp+4Hl1Wd}@-JQGx_PD+w;@%tqyDwg>@nW=&0x{L2ALN7|1AvSBM9rtLK2 z?ui}zI-Pr}uN%+XQw2j9ilMgIlM%=LCNDf)LFZqH>BBehB3#5e+b?(hmWjv3C#j9f}YHeA-CyJp7_b6_+n)s?9K_&ZcRRMm4x_X3*F-&|bx! zE+J0bZ(g7rk}S+R=b_kap9m!2arwFrNt1artdBV6Vl{#pZz}`^3XK1G3e2b+!xB4vQbJCM`FiC1Uf8=q-846CGJVM! zCA$XG=Y1h~@m|cd#Bv87fz`_d;S)J1XGy1Kjr*VVcZ|gKJeW7EEV$X|I&zMCmR=Hcdc3l>&p0QZj zB_=?|61njjcJ@{W059~uE1o>g^^dN9*iCxtpLGCWfoKXXCbt0Qp3QNo7;q?AT*&t8 zOHK1M+1i*!5{g=lV^&DXLoVG9f_fZw^j;zAuQ-O{kKowc6Ph7$du71WlrZ58`wuYRqUn4u4)Yk@t{FIth!#wMCf&mPnRb=<3fwbt6r&7^CnHr=V2 zlDFG;#upZd%-|Sd;l`Z+`yI^2j|CQ?%#ub_tg?}0&F7w=sR96B&!}v2TuC~{=aLe` zwyTf-VDal-gwg_|KExTJDJou7o^uV&k?fsJT-HW1dnEEj5^h;*+OY zFvLX`2AI?>?87o5brqcRUlQ-FaTd?8!h{<;JYVMk?-fbo^wB^C7lN-<`Thx}@ z+=4wG?$Z)aVk{_D)wA4J;{s9f$@SlVx;+-KxS=>>#NLvCY*XBs>noaP3=RN_<1i-x zamIyN5ZZwRxrd63wf@^8%j+St$t>o2FnFoxD6Ofi%)mtbaTNU<>4tjf@>@I0F)0j~ zRE>*uW$Box5uDW5zi0T*lDM%AvmucpVSSsyIVzBnALgcvZpf*oqOiC(VY6VRJtV8a zE@*q?SL=@Iboz_>Z$AmebzzskxR1C`?JexF0-tUr9*3w#b1J2CDt!xDZq0%?RjM%a zV5ft$_MIUhhC9j#@ZwgnIkou>=Cn+}p}6E(y8d8)J{pgMApHxspj4zl_(TJzMoqEt zQI}FiHRHC}Ub`p>#-#e-DjP7qPY;#A!|UxB9;zr7MG+?ZwCOzCU0klAf2b|OEv!0i z_kw}~_8Ihb@TDUs!12cG4C~B2Q4R$6eYvGC&S}t8vb-YX;c`R z@oBhV=9~|LTr8r*MH+`|%*F%tOzfWLickWiyY*LLrVgRo>eMj?>q#Q{6tyS>@+cF& zMfT>|UzBg)`O*V`OZuNN+)zV+2#?FDZnGSDM=*zu={wTl?- z-AwuxPJHU^U=9kZlL*|os3EpLN#dO|w+;Y$GajC^`W=G3RMyA?Fi+>}+kXT|zjNgf zz^v*4hrc!Q@|lGLYPs@$EcUJh09;<)WUo=-WFz3kMYiW*!xdejuSd85fZl6EH#v~1 zfJB#n95BE!_lP4K%NZyPAX52{$KHRN`-n~uKwsitL(KqDdhB~QozG?OGZ4V>48GL* zf)8+I>`3OJuUjYoA?AhB{oTWWY{OcH@x1EMuY(`lSxkn7%0JZX58{i<{D+SH-*4aj zYs~&{0AB)I9RG&WXa6E<|MI4u#J|w(U&sit9rC}yZ16v10$#k{XTiV0Lgiod?qB|I z6qWnLfGMi{fA{p<1LHERus;Mqflv7n$^&Y;CR*DT*0nAP!ha^Z`NFaD;QN>HWo0r= z%kSc*vwtjp?h>nISz1|5!T#X@8-bZ#q##<898X_!1*VNTg!L!1r}+Q6C*9K{4VOa$ zS*>=#6VBdi3*?OsUd7&<|0o1|nB&qhPGyzk%~4yQo+f;OhwZ`T7ZMV1^pp;|r$8$V zTUK7>Z_W=7Beq$MR@txad)a@$>|*vNHqEs6_eih(@0+hpS!0pv8Y{O`Kwb(r$E|^t($sX1qOfK<5FnI3gdD^K> zF6hb)w^d1%KU6(ZTawG(w7`7vXLTW@fs7T?nT-kn{ zpE&>LaBW~^yWBj4|09edL?(U;ye)rSs7PAC2)(WHyi$!>OUDzSDMWi|;&r%2biZbY z=#u~I-ik$*!eRZbB#h0u#Lcx=)YRnNEI?4kT7rk>*JS9)X zbKCgY2_`1h;|9I5*MCDN6yAB3zxLIt3W`FC2fwLO^#-SSi;~u>!`s*9K|RtlH-etm zwE`C(2gOuqES**FJkG*twcvK7M8_^Rh-+Tr3L0k|rMj%UI(?^8N?;a>QyrTah9U{% z%}lx=PFJ4r(#FiHT!33k4{oh*!!E*ZJW)MIif!p@BpSF9OmRuS8@Nz;^DX%!-v8Nu zE-nKRg5@{Fl6|_R-$(3KQ1sR+S_bMTcW1@p!spR?hzfZ%#AXZ03RZCP(Op_M{7$7d zg7TS$iyVVZd6I8X?ZI&RCZ#X5`re&)8GlcVf0tf#?C3&NtnL=jKZoleQUwinvuCQg zZrt9hY6EE(ua0^#H($}gn2--dv~uC-$la=38lAglTVfk+fPW z1eYoWdth}3{$6JdLIUq-pFXUX_>mz&Ef5{LIL4X?J+r&J9T;Mf*5W+P9beI+>l7Yx z#S~J>ZKGnZ2)m9@ctpI4RM>jd3L3`S5D!KCPx$;9?EqQo~Ti?6%jJ-^ZxqG%2TFcMN}DJlkdv zD4-NYlLV$tn~eSL@CtAxc&#*6DF~^qXY!Tbz&1B4c5}^8vKyiWO@`K6aHla98R%yo zuT#+7H~i!;1+#L(uVm|$X&_f^9(rc&0r$+03OhU+`SO5xP$J6K!NL$9GQ*Z4N&o)P zA4>voaWRP$yhl7O(2{+C=VBu;-v`9Hm*R7{J(bAt+uZ2-olEHfB{be`H|OnPXmp(G z46Mk^r8HTJLk(Y-Ms-uLNzzQsZGUo!lm9n{_02OIgZvV>y1O~%Bfr37@Sfe~r&wi@ zElHf{D}U*F_>i%93cAr!pi89Iq?5Jw+|6By3?U|c7>%d(-A$WD*uTpZyfOauZy&7k zVBOQv1QgufhgSE;{5y8CH*!j-z;|o$bQ*96x6;Or3eE10yU(MYFYs0G-W?+Lf*?wd zSYIeDDWsEbdo#QFf`t!7L7Bh;Uwa402KNI>!mk+}<1Yp`5cI1}K+mYh(XwCiJ}%pf zh^H$K+q)v(6LdFB;%f(*E#KL5Ph_4aT~|`{G*5^<3|y;+Vx;?~oyjCwn1LR{ybwF6IC7A0gkKCTU3_ z=_sTpchP;px-T6a>~xJqz%VpaT{fwCNUE@POK>Ia@W0LI*T?HF$6^e%;h?(zT9f~2 zS!IR#)B>0P(vA9$P({36Ba|1lh+tk~U+KBMf%w6}`_@Qkn{e%}=Tv<{$bV=$#Wvx= zYvc3GTawl_POR5|uz#3<#Wnc9n_PzDE{O2)$ z7FC9Z=a~C*{lBA@|HTWw(|wJMQJ_WOT|KG7RY-TmI zOXTDqDwaA=^0>76&B;@%LC?*CTWMBU*6?V{=L_)AF+WlQk3cWxnuClMh*gkZt*K+C z6M4AZ7jE&S!jTvvmbtlCzOD^z9Z1kj-GS;OYzn*fYh?TILPDr-cRmS}E-sEVD!75S z_cn6$Bx?Bgetzh`Q&x-ZB8o`BSV^q4;xp{vOA*DZ(0cuZiyfr6)vVC?uw?R))9HTt)+# zG%}q>>RXM$j+e=NgswgWvlQX0#r&jZIvL1(Wa+T?Se-h65$W}5(UA0oODsiS z41C)`bM-;f*B_^Mp!jl9QMHz17m(B)=RaB`@OS7<~&L`1#FIor99iYCRGO06Z@Z6d?t|f+d?c1wV`cVwb%N(t_)3xgXk4T}`W5G;KA}2C<{%N(lQnYz&bTeo-KbxcX{${;T3f*F z+%r3dqmv^YJ1OG!7qVtZ*3?&tuqQ2=&mG<8cXI^nWCRqzx1g=Rhg?9jt`u{M7p-Uh zM*r3!-tMfB0+F?jRhAs<+0Hyz0~Vl^T&Pq`oM|#ItD;wUK0{b2XszlAwz^(WlR8c5 z$r7`d9P>VgD7RX<3ivKz!rxGgN2vy9Uv;ZV9rfPh z_J(aeVxh(mQm2K?K9;8nh=*D@Bpp0=nv~xzNjeZB@;(Q=%U*tU@0bHfARl#zH{3e7;LS1q zKk@Ie+-k?plj|R~C1jo`NGCAV|F4xsT@ntVku{ah{lL9C zBILPUrdE|Sk+doCWZ6!!%!g=3oUriEo1H$4MF~x;fW*X4hX{Re{5Sh6BfiRgK~}mBccYt9g+4 z5kJ&%99I}(PxSH`_#>+DY~1kr#zbRLr^-5HzGRady{avT+%)$JI#uU?Svhll@MdQg zE(-OH(QFBQ@2lu6IgA>KB|hVN-91cp2fT zs<-HGT9?muH^ehu7_-UrpxiH$-UY`(kQV9nVkZ^s6T)sm_k_g@+CzqKq77ykUuUH+YW5Gkw|9_C z()hOs-YSU>3cQGc62_lmQ&9@ZNf7#>!ME@r`T&vW7ZAI)S5i{669G!bxxQKJ+#N{I z2t!^5?M)tHd*-C<`TOAYu__)LP6t(LcD>95u(Hg11tWujS^TCi;d z+}ui#_JyQ^Rt4|#j-U-jb473H$EJ(|=mNFIy+?xdWkXF)-S9VDRlkcpb7u8%&P8#E zF?4;Bhos%YjYswDEs)#wv9Xc@y|jKXjAhMwGCIFBGOtH0T8@31`UFXd@}ECIhV<=; zfwwMOL$;;dl)5ejF5Kh7rmUOxL|H*Ye{+AYoYR|~=&ChQ*r2R;Nuz$JIi#h{3L^oU z4pqB&WyQN<6t<(gm3doHnq43I2hx>5ih$}#Bn&po$p7@T>%@KtN>d4&s`pAOuWIgv z$Y2;0E%#_x9SrXK&F>eLim9tq|MX&=kr*Ci_F=nrGj8mU4dX_)QD!yppI?3P7;85D zEHT?}ae2~UQ5jAvWrTT=6;F3RIxNLx60sGiBToOu59l@DY(Kt@0F`HIAUC@{`$pNRiV-q?SuSU1l{MF_S6ME;EVf38dYuL$pdCI;pI zcix9!APxTwfaExZuX`p(a`85s);9c4Dx#tPi7r2F%mj_u$Ejv-4rmY?uLAg+XIerG zy}bUFpnNS^an{Qf?C#V$2;jzmSlb}9?Ul&?CKxYX2mc>2R@DF`w+*&e0!sx^Ge9{* zNBYA*mX)Q3Yu6s&_OQ{JjW3-|+5k zqdWzUa_vqt)xPX8THyzOa#*?d`ytWn*Z;83>@3HZn|{+08BsNg0Oid{ak?X0Xo1Rq zQg(pMWNSm;rR{?o^Yf2a*4Hz*#6r&r4QSImsZ=-%tlE{L6DXAZ`kzYU&BwzxxLz-c zeUwXw9LSEPdgk1}+8$q0@Z5m83S(50*g;M=7@scD_y@X_5S^P z|3N*0p3N?CVrDi-^XJQtGP2p5@=ZIhxSe+)EbH77?Nx*9{u=foZ`Qw7ES(9+vwJ?k zL;CFlGtl;J7FOjB^KP*iXqtaWT{nf?TyhLjJ0_Rw7(Hvaid4*!+wg$zudWbB(SN9F zF4Vo-YlXNVYgv(;=Yz1GoSMS*BYb-N-m5n;_g2>%%}vzxm|LbSiyb0{n0X_0r`s#5 z;GDGG^E|5Tz0*EfvzcPtB0SR&zgzx|JGS1W$CUe2(#u06TvBtAp4-O4gIJ%D6}kPu zxi6JJToFn;qOg|+1j=~ zi3sv?v3}refX@?!K%+42+Ni2)0maLd_{6p<=>oj%*d7|;_*R7HX48^ZcHv1On40h0 zi)pr|*7)NLCO$oml(TOh?iU>LtE{XHhUTlbB}!cVo1RN0a#Gu-q|%1g#KPc$XA|G) z5aSdRkP6jEu@h4lF;7lO!!{h3==y=58r(ZWIsZU(hq~r2m;bjYN>3Lfki6T4LvWiW z14FMoWg3XxHCGmiZtpz{Tz_0OYCh^nx$%@fTsTdYd2%H9`n6do2a&k7<#>e^2b5kq zN#&ht#bZ_%Nt-l>=s$9SB!l`tNtukeH;hR6| z`ShLZ2L7V%=1*bURP7`{3TJQ5N`Me+x79aqtA<`XhzMGb^`FQ>%8f}CLu9wr>+z^8 z=PIsJPw@;zB*K{40b&AYA?!mOX$N*;b_;Q&nv7~a8oSD>QJfMw7aP`{IJ6zT8UTZ> zqWrDh)oYcMz1!$T;UMo))y4N=XiU~{o3KLp8fmPzfh`!78H^QMs&B8P5$uqL2o>fh zyH!=tqku}y)^%Vv8x=Hn+lE?W$Q5IK6WA8M-k`!GJQi&7A!lf@|JZ_aTcA&NeS)?N zP9sQTzQ%9TYRn4OLD6ISL+S>6ZBHupSLphuR;}7PG;7TAo--`;m^QkH#cbU`HEX8@ z=3qnZVWAMyHlNfnAOAcTtu*htMMZ%n>Gd09tfFp;Px5mZWJmir9w&Y-B%T2-v$>%KbrIEfELA0Ro@X4`;b)Ax~|PpR$h)vP@PTg>FK$=s{W>< zJ(8;=5rxOiX^5xH(iD<~p+w6GQ4@{qEV>SbLReQCBsI2@dSzW2O|`wCw^@!Cvx6^H zBSEMAi&WRYpC+1ypTI+0vAiFcv;5#`lQ2C3syfTiXGYZMsiWG#$l25L$!C3taoAR3 zHVxZr3Ih>ls>as5o3?*#ry>;_GeO{1JwhexklYSlr&d68XzPm9l#C!qw$s@=qyX4?T) z-w7}dVHy`c7q=6(4E@~-GlNyvy`uC$z}B#jR-GzIx_g=*$UU2m1;T?N+Xd&DZ&gEg z<$PC<;*Uy!$&>Tp)>EVdR1^)&dF6`S_s80zo8HBNKP?5Aac$QeH+L`l^r}jSObS4T zM@M_v^*a|#-pTseZW}b6Cs^P(nSyKcCvvD7bXo0;yPem-{6-rPU9DQ26|!W3IAQ}6 z$|$rW7#qT7w{`9DV$@!ExUqInhpY1!+Z})9&B2-WowH|UTzv(QvjQL8$}wK2Qf}Z1 zZE<&~@96V5@5$dV*;U{tLug}HpLxJbhpigv&ud~}-@I-CTI(vSb{@mjT8ws-B@lTp zX3;tnd$|xhNNiyRn1K#MT!4|jnD(@_W$6!D!ge^R7L678=sa&^$NQS8@R(=z$NvKy zoK0_~4Bkt{jGVfd*N;)?2kWN8!|!^x4StAYT`_s@FdJ5#BjK=9+t#D`p4!0_t@!P* z66Cfq!U}E+pBtRfX`V7U-ifzDYKReerO?6(!XF@u&T>8uEV6EJ3=Lab-m#JucP|xH z&(+adQH)<)35J(oxy~jc&Ns%tTU8P|##R7KpNzy&%QO)I-gYOLM&Ys#5iv;07uMc> z=F4c-d>RhRg{&%5jqN+32)pO+=~#DaL%Z>!wlu{9ZN;$K+RPxn=moE!RG1S2CEjc%6YqdCB7O4I}d@|>C8=LCX z1Yy-)_9>bZg)mbecRAsK)x(DqbNZ6jVXJNa?Fpi!5%H#z1)^|`5kmC|E67a3o0ruf zzG}RM{orZ!o^cVgl$|x`Fm}R{OI)n&KJ;2^rYYlL)8>7i!`Yi2J{etOKHSBXjItI) zKZCW*aZ2HaY`MqxiwV8tmy^SW++%mwxeAi)mW&&0RQmTLmh>V=hboK7hTF}dUHDXR z=dEK!aaJ(P;AvU^4Erv;Q;e{@ix0ASv~sK%GqbF88w}9rmi_WmeJFSG?Ul2aK774~ z*sImRIyA|gWi{>g=6iU!x5)+?6kJ`=2iXg+uU2O^yCDcWGbgNi#)`~l1N>jgyxFIWZoC?W^H--4S4!aCtV$6N+-R6$vakliou+f#?cAc_m!v7j zgcB5KuW|PE^%K&M^i|e&EBf@P3cllv<^7r$%wV)K2o4PLA=zB-sPxX2y0u-)<9<8# zr@BEmshQ-1+{q$S&K9bQu&@8!t(%s$tH{_WBX=}(7H9nqA zpR8u&u6xV06-a2?&B|h0=k7H9?$n=Y)FO4*Ul6dU_J@n7uG{#XdxK%FFctQ|8R2!3 zimLUnsHOVj+&<%Ez9zbrPdYbZLO77C$k+u5%?KwH4u^ky{4i)7mmb`-^K4-cw#?q{ zTUt*!l{;xuav`g_1hN>_fR>QzLoKc7%~st6kLVZS7@(|jZ2<*g6$WFkq$<9p&cJ6X z{5tGn*VQY3z(`Ob3po9R6oP!-6#j!)yj6(q`DnGCD&N3@raKrHtJ^oL8DKbP)ZFGj zGTWrP!|$N9&p2tn2Q!e7=-Fllvg7e~3yzUQ$n2qiSc7gcNQ6(^Z?q&xs!7kuIgfug zN5Z@)-KzCr81t6iUPF|=y_mX3%kkqJ(GSK#)heJA8g6hVZ4h4pj(D750oo{~_y4_G z(2KR7dQW=em|V@e7tY8H+bUx#P}Q(^iCw{_sa?pT4rR^-HtnC*BA!7(YOF=LC&kkf zkPcz<`fw{qogOKc_92y1KIu79{WugntV?PtM<~FXmDcWf{I0#MmO0zz&B!e&I?)A%~{PR zwi_h0w7Qx_G#_9~kIr1TbsCd4NgFa5nm@2kQgM*Vt=_^vM6!~PBPdc$-Br?OZy288 zRKC*JnN&~viE^!YdF9phUi_^T|$m5#~k$yb8~)l~^ykXue0 zh36zfz-YwxZC0#!^I^|V+rv9S7P}OhGpa@0ceVAd_jBS~%`MvFC%^qC8ucO|>&H*o zZ`Lf$LYA*i)U2K!WZG?Y7}r!w8&yQra!!5Ly>dZ4@#Vi^zEu1cQ>`DfE*$QoG*hvH zf$)Mkz~)&ktxv2{#($)_K=R8Cr?`dxb%@Ay;W&E9-9^9iLVAJ1W(0j9tY>FrYyzZzU3KvX_ zKA$d<)oWESdO1z6YBT1>B3N;<-a#w?+;DlUq=83NfmbQ2y+-sxUj2BSMs}6P_Q&lD zqTVy`aY@@Xt-_&eXthg3o-7{z>*_z}!k$ee1J`5PjZarlNC`E15%fy=G3#v_$!rfi zM=H&@VkDom_iAmDl%3TD-}Ah&{w@#O7Re;{&8!oA7+XO|qp#Y+J78+ie(Zj|uVnwc z$JN`fD^aut+6MMTr?e0ew%0w!&$)zo8>MnyWlq6pJ{-2Lt*iFL)WpQZWsW(rTTiN_ z|MJiCl%p?ZPa9xd&CSi9vZ~}XKCEt4>bS&Oma)y5+Ci26iWTReN5A@jdqn>quD88m z%aoOfv)sQPBlTV8^;wK#P2-mC+%!W6`X$=IE9NXRjA?31fU(bwR9$xJy{4o*#!Mib z;$$is#^k4jd`p6ENqj6X4}iN6;mj2{)(VQV!hU^uXrIo@bt8K096g_sA2R!SaXViq z@48pb5W8dZtcEvY#jp#n(R037!W5x0&Q)Sj&Cd~&VZ(2`}^}N^~$MJh(R-(3+$WCsV0x)~#kbY8u*?DIWz{TLu zkPQKtg-(`+hd&st$k`+0OE3>^s6b-wgoHGB&NPplP{oAT@;qbD&+cxj+ncJw)qhnz zJ1fniM(9xa`;!jh-2~GPwqHOrO;HQ!Wu@4$~NKga}eJPC; ze5k6u(kZ9eC0ctsQyg|TvoTBjkbZ4s45^05lhPp5$mh@tR;jq(w{ba@+>2qVaB7JG5$(t2rTgjQ=~tJVk<5Z! zpBabeV$loioMwoGLY||pTHbw6dt^jI!jiC6kA7<#cc|3wm&oL9CsL zB1$u*dqc4$DI4Zmojff7)0v#nceGJKuLEIQWC6_6=rs=m@(ymAsH|`Z;A?T7y~M{8 z>k%Rj`LX(hN!fqlZpsre;1`w&7}zTl9H<{NNx9g=p9N{6qdgm{I?hZS^Op>Nky zXJ((UyO-IG!}?~~@P`NVBhTp9T|x8vdlY^+QT~DAsfs9dRuYjHcAX7-cscgvklV%SCn}} z%xy|z3m)f8xBB~p8*7EX+0x?}6S}#P_}-xe&dvQJPF}#H^+}XU6Ee|9Vdv8_Lq0!mT8cX2(bnawdHm7`x@d@dkG1ia}^|R_FGbT@(*5*S-SFfA! z?htc_a2Hw_juVc#NC-o0{&^C4=V?NC+W@?4Z7ilQL}f7u+ya`Xj1ax+$r`hWPE<51 zX4M#qeD*Vl9)t5|3Zig`%P1~g(xVS!Y11LJwl?SWy$-jJWUP4FM%YSY-})~87X<$i zZytlaI@Au8_5r41KL7lz7|i1&|9&x*R)La6VphDHeC?yqrr{zrRa0`%ey+4qBUPPk zNq4C8NWA($`BCLGq5UG`P3Pxx!e|3RO~C60=-Ys>8 z{b3v5Dx>Q#KewzKcKS!a~qZ^|oMGJ7+S*a0F7GRi4-110}m6*cxuXAjtfj>>*YYr?}T zKOLm3gq9@>MDdWh!Rv&`oDTLXEZQd7B}3Maq%8Id=RIpik(6w9BL+X?Qkkjp7w{;Tl8B z6$KFwx7GHcc>R7Jhyk{ZRdg7GkTjv4S|y=2h;*9wDk7Ow8iu(|Y+BVxPyZidyBH|q}te+5Y$JbqPvoN!ux zYh)cL*`Q67I%|xCygnYa2zn%yw^SN+Ybff1aA4a!0^W3MR*L|Ek!Nh^=)uiLQu0hh zvF$)BMc^F{%6J?*kjMY76SH~mV{F9f0+6;|u0!ZUPS}FB=}GK+_f{LcD2co0>)n^@ z9_^bUit*$-Md%##8!~Wg@vqTP-sYq3^r9lt*Gg{)Yw=+~75(5^5veJu@u}yM_*EL; z(tOQ81J9*a%9(0kb-wsZUDk$0&&OnSl8snUrg8NhW*+I)gh_%RFbes`Igu=#)pH0l zE-STaXLslPE^l9Oxs@1RTl9nrOWXg=^j^b|dQ6P%XH7)C%pi?oEL>VU=I|SAaSi&K zCo`kmSMcWBl?LU5{4U~gnY`JqUqkHQzV|ib|9VU3%2T1bwd+E^Gf^ct$)=zSB9z>^ z88~AgDo(r3PMh8VziX>PwDm`YfYNx8(%zyQ!{erl6ls{K%|@ zYPcM$?SyGU+eKLZRc+vAnPzzB18@V4uHga{8{KZEJe+3cH%zxy_e26UO)TABHZ$m% z^dBsR8ioKUwaV9eCR#*x#HIrXsc;B2MljyxEh&Nm)l3i@t1dty>mEIy?T#B*KSfJ6 z?1g8;6oa97N$~CrDq{2!%cTj+SiHJs=LHkAroY;@wz8cu%uhU7CdcWt1t*HFLU>XE}43E24(?3g&z9NQ-Q&Svn3 z`)vwl{oo~=N7+Z*v+HPKpp3*)-tW>n!E|;La zRguLTrgvu={!$e;>hr4WQKa?bbA?~2%${=6SMIJJ4uXw4T`~N#foW zM&~}yf0q3C^{~Ip^7UTS(>wG`uBws0Id4V8o(!up{Pm3$YCj~S*)XQ_`R&-rD+!ti z17Omca+Q;8_M>^F7jxF94_m0b#fO}?{1E>2%i*J$L!-Wa9KE+aPSh#@xDT=IuE7~B zV%Ks)5efbMqakf^2XWbyPwpa=?X2EWCWvAyPyGN+OOgEPVLC6A>2Le))kscf3f8yU zvgKFXY$kK9RX&VPoNG=zHX2qCJ{e9?yZeB!k-2ttMIH7=zK@qe{Gp1w=VSAU*Y79x zqrhtp(bvaano3&H<^#AlJbH(=LTioBbGusS-0{m`K#~w;KvT$5gzuvR$MaJW(bb@9s>t8QfE-F z&)i~RjeDAaUp`&e$WD78GnX=;zjFOpzCMg*^N0rgUaxj9B=1^4k9XATHqeD*7td&7 zgwCEC(;9lsBEiYZ;JVAC2y>>E(*J zY4qr&Qn>fTJeo4;2apkGi;dJW-lGUqAe8kS7pPRbu0A6?04m50?tGvQBihCi;0yC= zA03#PYlFFDqPi_~de>$6M{=;SN)U5}cXDJn#=|r8-nB~#;h(}UbDPZ?olYn z)3R9g`di_eLdv^&HS3@|{?je}>Y=~E4KP$zZ%dmSmHxTLojOI*B`=o1(V+PduA(kA zdf0Q_J-gr9yKq;{GdFf5t6n0Rd5&~E*%c*`)#nR({RW;76Ayfvv0RVh$$1dF_2ekx z@|Wsj6~P_(3~tM2?eJ@bq!iV~;$c1aXtrDd8OGe>5rpDj9Agsq#}wxOs&~076N30w zX9@WY5v)(1UK{hNPPWV8sIXBhwQqfO?W1#|?Qszk8vt|WJL)}3G1>TVKuz=JuTdV? z=N#46zuFU5wzhpR7{?vkNTDAGWt`cKE61ph$NSTRC2_^+7IWdNVHWn~2EvOLuZCPoUf=#!IcOstOy4v!@??nz|;j4N-ZfRCH_h%~6~BT_XJB z*`e;ma;Gd%JNv`Z>f?^D7qK(0&A^iT+GY+nkKL4%$i8Z91NGpVdN|}iaklLP_2R_% zocmx2=alha3wp<4d9B%q)XaSY`53(Q0MCw`GsA75Qmj=DG9{-=%I3whEVFr~TA@G| zrp@Sj!Fkg9(Xl5wEdr@Hl537)ZNU%61{{o)bKIwgwKs1|nor6XMbamO`nTTJ%Y3$% z$iHaYI(k$m%dC2`s;JIGigk9XDnsSUDX2ogkpUcOmt!JWJeAz{?2`W)s*Q6&p`^|k z?dNZuZ<{sI1(fymnk?)ir;Xr-&saWr{lU5Rb!F|xzU@%iK)B%q|kGL2`f+V!yFyl$)f}}bKv>YCJ0)=hA zRVh_~krp@T3oEGD!}MexHBCTVwiQ$qFXYY4Bc<9B@j$;ZD_+DdUQ;&JGXK z93c(cfr3e~P+#o2@t9Ow!fveQc02jqI%79FULeRc?5?=1GTmYK);fvH>-;C^)}x72 zRf|K0xM12rkNhecGjQS2OaomKJcempbbjz8*4YD;fhL+%AuDvyMG&19TXffLZ}I%d zOj)*_{_HUqV)G5$PpPElRD@tC)vS5Ro|sjcrlcrz5(1zpRHA5R+GgYs^TDc!%FaSh zx23P15tOlzz2)&-a>-tj$gKDHwQ8hIFRp9MRmQZf$*=f+@$gLhmEl*J%U^5H))mL| zLxkc}*XF*^F02d87J-Ah*I>wLs=+dn_VKomh7o*9K)q$teAMIDmac4@LKWg{;6uI- zD_;N;AiPY|gWl2+!m;v5ft>;gc6#d&0(@+CZhY4M9prb*z1lN@6h3HH0ConQW%aC5 z{=hq8wW9Wb`#s0;QQ@7aPHzWM?aL&P=X_&u0M>`4RkK1Z>0N!-O?1Eqps+7(BQ4b@ zg>HccM2%!q6_wX$>TC7vT1LP6%pAyc`+*B8egWSCqszNJC)(n^X#V7<%^K!)oG(4% zT2JOt6kic1ze5>=7IHTd*XQ4IY{XQLba@&{Bvt=Hzu&VerVhlfDFIL()=xptL6+37 zezRJ5ARHiP@sLI#!XJoyWVhmsPx#KlwB$@wOr!T`O~az9!( zJB8WhEA}aW-C`1OmXYCg9v||u!yr;&yZVgx(E}oni+Xv_I3H1)OgEssA~dfm{2x`v zsv!82y8ZG%&9=t}>1e(Z6dYoPWv3>3@{ni_Wp?3d;sH5VQ*E6BlS@6{cBekS6&-@sCMV@|BFAbT~9pN^IYYB${SXDwb{kz3^O*~jwY zhvag!2fIr+65lOw5a5#FU0ggrE_nf!>3+DhH{n2{gV1!?wtPwhZ_`P>zrBmuL#|{k zyBq`XOE>2nEH3-*UCiz%H~`3qcy)yRtoZ%3kru#lv+(!j4-t)M;37G}^llxUs+hZWb{Z^1^ zC~dvQZAfaO!3Um4^F5oASaxS6KTsTXeF*p9&W#UcWxdBmmEOTrcX~aoa_)`ITwTxx z6p75!_WSkKWS;Fc8N7BG@hlj`3e4yOE{TH!0c4-S{f`0%hlV8BeL$ad;&*m}!L{tf zV*1$tr%K>-jWfy#l_{@${F#w~&wI{esk*rIl|05OA!}#86-$Qv!gd~vu`0p{urb`^ z$X?4&bt#|~TJQB2@8#7NHx*6{obR_DDpm&sxYaZawjh2TXgFskV1$w}3K<#_ydQwM z#&546pMx~6P$<(BI)UTh(7*8-?NK6L^}1Bqf^OIM`MWwP`f}7U!gRXz_+KI+sutty zPp!4$l(N|h>eH=7nU-LmvDEoI05u1G%scf@zt4VIU4z)Ca@W)(l4JggoD|<9oys#p zAF4VTNBi;&ko#)=LZXYmcqFjNG)~{b>=~zH@Exbs?@O0Vb5;ejmP!FO+@JIGJbxG~ zA0IQcGPe6FcBYm0p1o(YVq4+`e2T-uSKw(8xPWXCNqo)8KguDlrJi%vBP;V+6TchpSdQE6=)EcD0N0?6&&}r78JcEEWX;ac4u2r;a zPb>Ui#JyKITP5iPpWdnW`Dz4u;6FQd&ULG%{A6VZ(l zMhSxdlHB+G{GR^2Tkjm%aM*}(t!38rxxVGR98|k|msH)HVn6!rlQl|`PY|kA4+;3J z>ihfof!+M5fIZ6|&k#R9_a9SkJa_|5WdS_)*;Qw^i?)jSQXkfjF$buCg4NkRdWB-m z6!eNdkGInYZmV0jh|=aigw@vHa~HWpw7mJAvtt1n<}uaT{SK z&9kjQw|Jbfxp;AdMY`aY1w?7XUyW^3vFaYln3a*KWJ?8|=L>&&@Jz%u)ABfrkkI-- zg_CVc;0dV4-Q%H7U0z=v4Q+L8$*V_9{IsOKPcld=F+QQq*I8AGy7ZHgeYDiw&=tQ$ z6eD>t6gH+PIC%es*zEE6N@3HprL_4Q2W0f@EZBXgs(Up~O;L7$kN60keUeJ}Zu%ZI z6b*h5Y2|FD|5SGpe0y)W$Awt^33ei1$~oO9ka|Vzr2j5H=2(x5?}c3xMa{|3;O?lc z?*!ulg13nwrtZG~#mH2Fmk-+mZp|gT{E4Tc^u}l7c}Xm7Wv``XU6Dxb*=nBNN8Vz6(-pnjaUGIz_Sz@ zqyob$@+geH^0$xs9|lmVZSRnRyzTiD77{K5+cXx#@6hQDKfXm21l(CKH_{x9fy_3q zAMU81q&!li+I~f94#ViTu>-29=id1WrYLgh#J91t#?Y15!h0djbViH3Hn`7W78)+A zsmWYqa3&Hq8y`m|3{p!GpB!(bB;+~PC4(=G;K=6?-BZp8{Bx@WhZ1?*VanXSf`cHJ zky3<2xP$~2?Vh}_%)vf1LqeQhuUl-Zt-MFXy9oT3`WHU-dKTV9AEz#q`&c9~K zHkFUW-2Rl+pC@6`EN9fB|I-^Bq>v%F5Fb|ofAfo*pkD8}I4ChpQr9!Nso5oTuV5lc zp=oJb67_Qq{n9VkaL91Zpk%e0hNKTuVcNQJgnF)QLOJw|qPGvREGTe`6$|(X%6|V4 z+gJ!Sz-^;o7#rJ0>vp62EopP(4Db0=PGSuVrXbCvgUCON)i4E+%!ZE#66-PHy!x5d^y{$SW=CB~+&Z=^V^suO>gke?J{3uJI&1x z3H?~PdcYV^o^K`V__c}SAmdIe)ocqLi%;u&qF1*0q(YyxsZMVkJ9Z5g)N>=>%+E4j zDkxB>LcW=~Ao4hV5mhL>lhd4@@pp*Iy2$lw`G$~r{KdI`fqXK@agFBnsYLAP+;Xkr zSMMMC?60sx_KKap+BA_hor+Uftb3kzp$~fPC^kcY55b&R!w7ku#E+hofi32ONb)4p zPp~ATIiX{E5?t(8fyjqE$L`&|So~$3)32W1Yl8Wg*X#4TtzAu)=VLg7&+_Qt%x+&az2{~Qw`#*hz`3w^`;zca0)7D z`PM0EDo9Ry?t{Vh#kn5_lDSl{%z|(W)QldO)@KxFz42^VIyXu|oeug`{0JW35q~#B zZLyqABBPb{du2Fr3hL-=qA~^&da*|r7pbs?8;#r2(}yYN&#i73iRewOO{N#;Kb=U3 zz))P+5WBIDoH$>S)Rqk18u&z{;K}o&gPQ50JYnc|g+k6edkXBSvDWvd0^LftR~kCh zB+D3FS>gSZ}DiH1!2*kP^=W|fHA|a_okr^g+e7M$axYjJq!nZJG zZ!G@YYNY=pLTg-47hL;;u*v2N&#G*fUd>dSgkJLX10@S?#m*mv&)FbAdrc@sLEtJXE=K>eSAB%YrTMq+3nKRa zuGZqejStW!y|+k-TkK-C*hzQFEVRwboj!zLNhNn~-~0>%mDC;UxZ()hQ;Y0}hjExL zr^ErhdKRVIj}>p=URUJgHW{Tem!^X|X}`EyA67 zOn3~XzN4+?ly1Udc0WV%bB+Y3(WI0yM6(%If7-9?-ugj}=S7d3;{oMp?=DR$%DorK z32ZFr*U=+b|GcZp`zZZHn1*`xTHaBev+Si^QcHPad0D>d6j*D96_4F0=xvG25Gb&l z$cHgf{C?UJ%1rfOU^T@A+mE~t+kDq?Ryk45KJY*N#`uA zcH-5w0nKGNF15f+WT_fD;${Z3fBhO8nlKpYf-zzDzBAaM%PJg8*4H!is1_!FtsrlW zl)l@W!<5TRp=CF2i3_5zddlNq zVZyDUVqM$daj#dtl%$@rC+ryUF26tY2@9OF!o>QyQ0jpQOI79#Oz{4E&2XboV5i7-!H|hrG#~*4x#e?k`s8!9GorDY&ZOb zdRnnbsdpuMTGLjLci3{0SV?KUMUp~{psy{<)k%Df)pXM`&S-Ll!JBBO1F}E)p2na- z6VBaHHeDkdQliqnrr!V|H%jMC!V^lnwhomW;G3La<9e*XqDR&Y7C;A^d|joqe!rv~ zy4oz(X$2b1K`PvP@(x_Nz-kzdN;?{Fd?@9Mih_MuAv@3ajF2O~KtD#N90y&znxw~P zTRi1kvhKNlN{$nod3?&V;Lx=i(y{i-tCnc8d#Oq^aUez0!aUv?tt13;+qWjnv$ijI z5RCsm`p%rv22?(iTmNhLk)5YjZu9VZAw#{A3}mRxRu1#$^M~xu(lc0DdIXm0IN`ob zdarbQbR&RGd!V~8ux00cM3>ZRiInWBp?P@a@JuDcnO$Ko;UH(j)uVWjm^Af4=q7Pg zat5QIwE|bG!}q6?GP(o}Tsz(xW?fz9sU3cSzJvEqHOJ-X3WpnwsqjCy15zHZLQa(+ zYZG7OWWq_+vk_F5i}+7Y?E7WMobe1#JwG{>tVl-7GceDY)X0m@d=Njc(dTX}0Yw3u zlp^Y!rNPVO$6gzo=-n&|6f?8*qcy#k-x_u!_7&;v265!-WkszbPTPp|3U%1u8A7Lj z@3f0JLEc<%Z{#j__u^3$&k>ePQf-ZUOPKRLg;}`NRD5ijX@Vw=L@xOSD15?y7-Zr#rL6k2fH5;L zDbT8Q7Znu+?75GrYtzx25b<8KO@`mpd|3&(~lJBq22S7gs9 z`C;jf>3~)PQK$FK6K){3prw5Q6rWhg?E6aRB=KWzHeZSjPG_OpQ#IKBr%vskY%o**ph}<#{GN3Uq;cfrdLUsWQDfICo zb)n-c7VpS3J^fPj8wu@&ZS!67R>?04TR0U`)e8YSsgXgzX_M{-k3HLwjwJ$@GzNE0 z{l!dawXjt?F}C3#nf|$_IpxPaC05bUZ!N%j-dfj~Ur-l#rlXfp{Ob&3415gzWNP@{ zs74>z^b*_Bdm0 zMDtlmdo~l`m8s8e*yI`X^I7@cJnJ#IjV*UR>#;Cp9b%_6@g-x#M4maVU*($e$eIwT z#L-ecr!_bur}?hJgJGFz|D=JX!H!AL94#vcIKq53rND-9ui-Vm5Vy~AmBuc7;s7E79II8-E6&}s zJz*oYsu8I;2|ghqk-6-d{!n(|h++N460byu5f3D39UAVhdpFR(0CBls{|-`Jk1#L8 zQE!m^gOVskmi2L0*_tWRtR^9iGZZ1Q6V6bat1z>a{fBP8^0P+xy8vGCIRc`;>NnGSkC zCLo)P@=m90y0E;{C)(9WKp`G8*QF&V47_qta$gcVJ97KU_IZf%kO^BAM;iQJ3`lExF1it;7kb;Ow>QXj954+4$9Ngz)E%7qg3K0 zT2tdSNrg-1N=1#-{r+bHE`eFEDXKumj*(M5Z=Mi5 zsN+jK>&`+{G?Zk9oFBd^t?kL(uh4H54ZStz(XkJfMn@g<&R~U24xH9g9>pocLuoqp z1!mVn{1ff~vI3@EfQ9&|Y9#_qc=aSJXx;ig9@m4t> z-H@mkZF@{0RoKV!%Sg|vaT}ccvF~NEe_}zRd9z9s_Ro79v8VOiu@{Q;<=Nw&RLrvq z!?E|_O{bse%8zq4zV54n(68N%+=M0QhASFd9ehXedgu9e+}&X@BRH<;Oqas-A`JQbLHw{KM_*i$nbn;zHton zPqH`O3V@=Mof%p(J{wqD7-~pR$)@GZ^d}Iij6Cj{ATePiulY?G7si?WoEGQ*-Pdt)C?1|9ZZD?_p(emmW$p zhJlr=gRuximvn{~kZ8`7^zjFt8!dS!ez6PrUUnI(ppKZe80Q2!N3z91P+&D@-BDICIwV=O(XKE&7B-ozvY0RK-p%43_6+?lQ8{ol24E%M zYKG@tbUce@AAqjLTci0lathtGb#;B&;=wyj++zk;$e21+oS`6!-ZfMVPOxFLDe4Do zcxc;sboMKU_}0eepI!6#>MP=#le+C->HM16aC6FtdXu0Q8l?GlzwEG^>x@W~s71Wv zZ(fLp4!l4$0Zhp|s1vk>^4OXM7k^g5WJ#55HyMb65cW1ge@y#NuU7SKY#VmqGR`R^lh=|Tt*FV^rQbSA}JXe_gxa|U7PLip&WH( zFHL6`)RCXDe9Vt-3jwsaa9&xS;9Q11n#o*Si&j;J92mzNztmS=~1f0;X*75qKaudOZKTWFQ&T$jg0=xMI#)aQ414lI%FidUw)WyW;V zR#hyzSb^+oTHHLU85&#Pp4f9O)w;j+aDes&O{9+!6Mi}G?!a2CVy?ZE0J+qs4I#_K zr0FI}9z(eF10`U*iKyby}~ai%Zv73b?O_W40aj4?U&Zx4@vC^Jpv8g2?gUfkukK zR8;GbcSKlER4?L@^u+>Qs)xk=dSaa!AySfk_Q3NppcfAw=^ZQgO%+33!NVrfj`n)T^3WnEo1 z^hZxCZ-*y8$Jv)4XjC{i;v*6&-M!oD%Ovwc>)dFPsthS7oyd4|TInf&xGW5ExmZCI z)?bUN#M}S5bxR~tv@zqXJJ+*#?aQ5&Evx1HRRdx~HdsHj4$Wk;=5a@539&$@u z0kbZZzSKS=Hba1~ZPS(_Cc(~2yw%C<{_TPaU**8RFpc{`Q=NY!I z{urCtd1~&OgD_q?A6sc;tC5~mjb#XA*;>4WV5sk2?R2-N!-z-FUz9XOB{^sSnU~92 z0mi}^21#Rtysek!DGqout?1hvk4FjAha;zS3@%jFHfmobkxis~+w)D< zO}wvo?Qy@|=;^o}4n`4Xn(bVm-Mr;%mW=p`*;mE^&MWJ9IFo{np7U48k`S)wjB$sA zDSz3!;v?nTwUqJMah5zWMDu*dBhJJyp@&l%=iZM}&`$!~P0#jxPF>NyBKtjwrm4gx z_dpv$@nEwy6hZ%9ZCfjEfM*X*US}DwA>Xduw41wI$;sMh(8a%zMhiF#fX?lx`>cN@ zTW8-qLAdVM=_)h>dH0iS=ku*X1ix7U)E2(5y=wffRImLgiy_B<&w0R6opyNZp4RP@ zqBNR=A*_8}($7LAMSmVpqMf4yuct)HZEnU-Q3?lYW(T@rk|0@+URalmzQEEA~O(8Q;A__<6q^T2LaBA;xkKF2X|$B`rL%;%#1lBWSKMR7)n#+@Y_>N?aP<0wLQoysj;t*a6 zp-;c=2M<**NTHd~-w={zOiK|~{!dS7d@E|VukB2F4CcFdGHAdhS2T8x!Y|NJ1<={RKeKY+a&u$TZ<)UmbhO7`cCeICIB}70U7CNst!L&jxWEOWx)~y2lJNik%)U%@&0kh!i zEqWDfK&J(~lQ()>9BC03l^^_1qh2}Au{5x7-0B2wsUR0x=jA}+z5tw8OdPGhs>uW= z#*{?ZZpu!8cESO;NstLe*Q`WCqZam~4u%-`Hoc7x6z0C3gjJW1;n>fKME~K0C;Qon zZT$DTByo^fn9j-ZAC&uBtqp0ujoRCr-L9bD+ba#&<(m3);MV9y|*V&M>a&VeP z$j=!-a^}iDdTTo+N+cE|bNYd01c+x{-=~gdA*}!Pk((UzzJN4f)@YQFFQS#zu?r7g zm>mSTCvQr7TZqtSDdZXpGlP6t_{Gc|QkXWtj7(SUF6LN{w^`SOroMG*$%1`1dGc*+ zY-1qMHO&q!Z}^VE=W=2-K7C34JOpoUbsYP(btH7e6Z9b>JRHPwN55!k+^VgAsQvOm z>h??`Ju$KsKPjKq`S$|~vor36qgv*wM;E?(!@$*PfBFsQq#cD_?CY0ChYW%p1t>&J znt=yD*Rr#{1|eXniaW48<-Zbu7+0p{7->ErT_v2A;5~KIH41$F-oVqkTDxGxFNaC^ z%12WK|9GuTi^W88Nx#+SJ<;vDuR(%F!$1uPrTFATHj_)&yPh8Wesko zvPLSU{4(mJwfQy}wZ%xi7qP+8uwnfIHSK!Zqn}e_QE@X|x&JWFA$ShipR0BzN$&qL zWM)V-GK>##aP^#{?yYl~!iWB(ww4#o63B3WtIv!YE$@Po=UtiYv7M&|y;>iI_I?o* z#hY4F7*?xtP7qQeDeIxZ9#!L8O(=^lKVLR)o~XrNJmZ=&g(RO6`+ZXTALs{VwAA7a zxMYYfY!fC*H2Z>5}E@|(uHv$cC_RwH!-%CpYn zlVv(wAHWrv*B;@j$O27js}s5}Qa(0wLHjJq1@QZs7M; z^VUlTfA%<-PUdZ96~G*|Tl9Ckw}H=$Yv3xXDHE_mG5-Bc;Aj2!h3MpjZNMGXs$br? zp7N#AaYK>sCanMarCu#bJ}_Nl7HKu#0H6|37bVnqww}6nj;u&jQxev&X}xrrfmy@? z-KoQa-f^T`Q9w63w^Pr@tA%NnSewzEaG79j*Y1xO4-`W6MAqR>z`FuQ-rVq+Wt%As zptESN@3=fOEa9uQ%5_;*()|$vQb+rMZwld``_a36%jHvo{K2nV5iX&;fY=?DkwKwd z^)3+m9jv~-Kh=9FW<|=8H!FK3flY@&r_L(bP?Xlq@BVu~19PFLN~n%Lui!l&3(6t+ zS4)f_o1KAt-|>_@j?BcCnTjWvUE>$;Z0_DPi+vW`7#$$lGG-eP%sG?O=^-yz>u0MB z!xWIcPK*(FLx`vRWUHv@Fs#Tx5cTq``?-5Mkxuzf0nBH1tx|;I&P=U#`jN-u){Ll; zcvp6Keyg|EVGa9|tlo9+K0l2PLc+try*JWDu9i%YHpEfwyO1a9j@FYK2)QY=@!V^a zepCMT*-dR%zI-D5*>m!#*;(e`N95J0AqDXtSv)vLUOqQE(Ia`M^Bznw_lKH0DbJV+U!LxlDU%KdsKI zyIEyh9BQpOI&(?rJ?r>rl|KDcUrl&r^eGxX?AwxHgh%@12eiq~#5wi@*z$>w1-nM` z(!a8pqJxcYuQ$_YG>qVFkAddQ7o#e)y2r08vsC*NNY`_|nH$%S2b!QYQba#ns?oDF zBkWXOPaYSdh?kv)WKFx?F)Q9l_K972G zPwcRL#XU+tG;3hj<+3|V-%aV;lm^`YK;Q4b>v;kK@4Q*hS)i2amu)r_`v)|~stpXU zTO@;C9DgH2#)J^1oBF&Q6n8V0F~eEMxibx=#2nU|`T*N(ssQ_D_=P@Wxyjo|%h3u1rR756Fg9bh@m|RFeoJ2rS$yoT!liIJ( z?9dpTi%?!vMCtO*J;{4txSpAYhYELg4#gsnk!A#X+C@vSEZ1JJQH?igOSP~=Wx-DA zTkQ(cm|`n0T6%pae`{^ZQMR>bqdr?1xdZywSw6Zoi*`%7P5u{G>j>;K0AZffi2sh- zB{j)6q-8QHZ5T<_aM3Y{FYOanDiX%whMj(Jr?0U!Eep9be`jvWe<(nZD7nK-Bu@QUSyS!x6mJVtq0VjRx<0A-5~ZYdSbkAN=N+rxs2Z3^>gU{r%Zkm zk@_P6yY7Me9xx&30=wCMcGhFoh6Jv@;O`s3dzn*r3gK_IyYJJ7p@D2D6?8d(`oaIJ z3r@J4(4XPR5}xPd_$1lY`x5(S^f_pKV^&yMx-P{y`g)}-WLmw;j$S6HGAHU=!JGOaGO=ic zvfK_HKFX*AH^~06hiM%H;Zhv2P#PB+4U4?sZZc~MZGkG`b7vb5CO)e*S3SM)H&jx+ zI40alaHf-?Vnn?s;R%x;ocgx5U?l)IU^6NEYARS(ADB40L{3Pteq%}#z2>N^RKsND zxy*b3C^Z1K0;*oH`@E(0)GVi2VEwL2%lyG1#>qvYh;(;H#RTP!n%IS1Tt!v)^jc)? zx5gjOj|o_molWlD)$4*kE6Sj(sQ-MDUoZsm=Dbn$VoU&6plE>RB<|{#zo^)Ilr`$a zz64Dt<14)UN0m%X;L3`Mp1s3q!{wBwTB3?r40z}ejAd@XG^^2kvfxIJ(RIOvb_#k+ zL2v`C@e8Wmh0R_++nTb(3`|fJ@4tbu@4o5GlwPbF$?<=;-^DrH^;7i_Z2$5AC0;Q# zI7)%W3H!chnrvr+$1}UD)j-qCFz=qNiEgkAj%y2Z9O9P-8VhajKB30eg2D9YZ;o}# zI9>J^tr1Bczyy|^fE}Q8$JJ3$`f%YEfPFX`@CuPKwr_+(N_<>9B2I%iYe{6f30J14 zm6NX_h(zAnwSYT*c)>n=E|LGlSI^2#ueh!iZT z^DM+X1TL6X77R}*d#}L1T=y-h7V143#!dK)$O|DdCMDp%co+7@$$6t_)p1sic2l*; zv&n6ZTCjC8s_u1oWeH7LS;o*^)0*4wF}}G@<>?{`@@iWbGQpcEf8lN-?lkE-+Knh! zHc>A8Z2IyVDU=_0EloCgkprYsQ4+vX6Z|CobAi*PC82XbA38y~y z*jht|6N&t~O$6AzQ|+wN>qH!l12?3m>7Vu$wrW|7_1u{nVcg?qQD zXx^X#$J3XG0b;X~aI$pS{)G9=MgFQe3lgr(1@C3}ImQqOt{L3e=y>a?&wsWKDoq`( z_3yUUWY-FOpQYOpJC~gi-a8gak?S#@VE+ivsi_!mFwVmKII$EV{tI+0%4uz!U8~N7 zeyeuvzPJxsfB|CtJDO6FdYyBiX0H5Qk_BhIu`LNwHs@jUchi>^_;d?bn3F_W-yZ?X z&%^{o|8(sZ_F7qIAK6o=kZ3u?F3_WLUXS4~?}F2Ng}7RurX8;nJL0|Mr-3Q_Pa z8;Cu^$Xur|?is+)%;~klGz;W-styh?5^%lcoC&Si=W!DR?8y5_e||=UEV_QS#vzy5>)kr3k1#JwN_jk z)~?icJ0?dQI;EGgp3j*HpG$FJrVm(3T6!%;o;}&HKaB3;D-0@PZONaob1}|K<}5PH zOFc$!ALzXMu23dP`@;Rm=ZRIOFJLu?$?C&x+Z+gVhVEPcvY>6wpR!FwW4JKGhFACP zwc>?JraezppyxV<^VNr~?2%Lu2JSV_wfP*V>5qOAATc?_=xuv{xx_rf2ym`hurFofU zwIHCSXE5+Iv94`WqFx7gF0fuR5+~r#Ej{A#IB>JqsL*OTeyV+}h| zFoF_`J-oVQ_$oz5 z#Fd(eBXPQPt4DT2^bmep^7F+peMMw;Lc@J!=M7N@@R@S}aB=+5sLzI8cB~?HLalX4 zwSxcRdMA&!2$zSJQr#;^arzG>;B*$ZGy}lM*2+yZ7rD{HVAPkt8n*y4>{AhPfR{7so?GW)>gef zOS>#Wf$pY50=|2lSf+x2*F$8zGohqBK7@$_OxW}f!@DInwWj}pc>2BwW{rTOaUggJ z9|ml0l!<|ao)j}IG^G0?ETeDpdw%Fyq(&X>PA`%=spXIH{EWra%$vhOc#pL$;^%uX zJ_Hxs)_PJ5JR~w*eHnMAtHdWO^!Hy4E-tt(u>q81m$}~E;(c)wd^uTSEzzt<04$d_ zL>#v=1r61Ds_|HEt$(=IBL|i`D^9LQ@D8TxG#fr4X_cQ!kY6sSaVrC{2k%d~pcHcZ z3XJFYw~-z>z|bEUvZzd_z7OCsCdM>7e=@Sj)~$k6X4>b)AZqIpp*w#jl^HxAVejwC zFRZ>$ymO2777z=<9d$LIcbT(x*hqJseSMe2@gO2Bd5qYyk-@fZMkjF`C-GGEccIKJ zzd))@F{spi9dsrX;76HN!5t_Pnx!l_5hlff!Tt=02@UbqlzF9;ID5;F|MmZ6jM)wS z&--3qIt=nm(FLUoy27ErumAg%6~ne|&~?*&xY8BQn`FP}zR^3#x5PT7@7tW_u?=;& z*sbp`0HqoO2PHOpjeMgj^cv)}Kn?a^hM6H_+m$&HZjkq(j8XUX3mt0PCnVX`L%fC%77!b~DXIULdLa?Ho?akHPpwHy{!`Jai zQ(|kT(RL){Tz?4L&(oU*ARfcp zo(F4n@w8sMcRpX4B%u`_U0S5^X4}0{GLIpA)0_6v6`^&7KC4IQ)xe4WmtRRKl=Uw$^t0;T z583(%d00z`=;=RRjub(6A~&7Etq1~b2Q%W%ocIg`T<&9^w6Wpa(o!TgUZ0DnPe(Ak zY~O!8F0jdo1X4aWV+;hU$gXyE>fa7=WhfZEj|s-g7pZR0LbWUWeRNJB?jKR~#R5fP z_tz#Tog+dSB`(k<@4xV$Cl>Z%yL>-j;RGaCk}2y|Qj(PMul*ssg?hA+I+0BVj{;VyC<}}~9s?=%aKfY79>75N~D+qG(Ny<$W4hI ztR!HoXMV9IH%n?#$@X0)@J3xts>qD!;(xdn4qr*rMIX zy1}P3TgI@pdinXrrFoxYbm_5D4G+d>X16Q)L$VS;sQeDT3rh8v$MKWpbOw$&1{Y!K z#)xdQ*wc=E>D3YwT?pKM_2}muIp9_OZr#t|hPQMZQ;L4!cSMvPvduEBA=l`hr+VW` zmDt*ax=Sv7bQ<4;JH#NLy9-ySs@l9$*oM^L@183Pk%^AnlA$SzF1ODpC0Tm)^o=RT zVFIAMA~(3pfWu4rL&R=}N(n}*3!F%Z_*FrM#BHxn{ToNG@y3W%$=yu-maMa8&M4(?UWJENv2*B>;3>jaL>6^X9`kR%w|OwSM$Y+q^Ei{3 z;6v9~E7n_xs-+RdQ!Qi_;%#pF1>ahrk>v>E(13Qf6fqvv#0TqWYcB{b`ksU8l#^r7 zPs_EfldJhz$?Qz-r>=w!B#_;U^rJzJPqH-%Y`JvTA=ru0aK?sTUs#0`u^q9>Wv~Eq zq;s%L(*SC%_PzEY`~1M-b58y-^GyWUIB8?T(bcIbwJ6OY~;hf&0Qw*j^e`nCfnNp8FmUo;08+POO)fPmJ0#)$EZS3_?$3E?_iN9dFHOwbk{k|e#vU~u2z+@RfoEk$XKqNq zp=Pav_<&?ya18u61vXmqN7A{j;2DUTi!MO%H4D^kCX14;`vctcOv3g%QR$z~b$Mi{ASSQMW9i5&IU2}-^n260S%9e+jDhIFw%JBxrh z)OLe3ISiN3c>lV?E-%80- zTzglwEq^4im^H)l7K3Z!7hG1nbdR_yc)Xf5rb2kp*q1U$ zl0iP8%}6Gq%pX^I^G+2KH9$12993)Qf_Y{_%T8B<=xfabQTrQaUy#vtTMj(@7J$>&&(R7THy_^=6mM=8 zy#>VDG27(jl=lUcEh*n*TYtDo?I7-dZ(%eu1L9>dtFl|xNQXgz08%`(3v`{HjV{jL+TS)+=0@bjtNBbx!vET+n#1vnw{d7w z^%z0J{ztftZC)7Fx2ZJ85YC{nua|T*&l69PhkZ!Vl#GDx9`-|2^7bobek^4|msoZp zz!ij!lhyDkmZqUBWc`<#9=+7I+T!81s`9b}N9BspA4D0;z*3ul|4!4D{Se%1pykd2 zq^I}qZ_m+B5Nf_%?n)SLF=wJRG`uKhJ#JrNt-Jo5m8|=<@LlZD3^85f?5@B-Ly#mu zK-i7PH+wg`@$r$#v=L(e;5kn5Z2#|BXO8nn_Bo3s(3q<0*YDW0%u=lqatL)`7B<6f zImw1wE%YiDM3a9UWsh{!<}a<|Q>9aKo7C0x6+OC|i6$BLUsh?eFm~RsV&2pZD*~Vh z{NvKwZST}K3&%=ObJ_v=G=wZud)6r`Af*=T+=bcZKJ^dEYAL*ZFVE4y_ki+@*-?70 zHu!JJ*WIx!dEZv#?3G^*jKQ;^CFQlnAQ~H*RoQV-=Pv+zRjNX?;f7VY)PE9w>^&2NZQ46a~Hc#BGxH~zhP+d%Ja7H2$>{9 zoAFbMQaY~Z9^(r8!jo5qXA0L37LPUpFYrgXnPTNv#GSl}=B*EFfpq8smnEiYv4ef| zQ`uO8zN`?N+kAs_L1utB+oB-1=}*=>%F(|8apw7a1i7H`<@xd6*v^9Y=|Z(($Nf_a zpPN~ZbyhR)t_Q0apnezf|5(K|tk|B6S)8?69;?{x>`9 z|DNIdYzP!%gv%>+9;M&ArBy`a%t@QK|FvPaZf+HjPGJG}xe6{L{+h29$MzQoZnE9E z#R<7_z-|_J+m3er86cLV|NonbmeK}r$ZF676u9yt+-bmTro&9tgN!WSb=3P_f%Wr0 zPpD;{nK>p6OkV2JGnvr?>2YB4^Bd=+`6obaP=5}#DR5v|SSbCbRLd~n$?op%q3Kfn zYQsnxw)tj*Nq<5wpx2rbeEljm-lhJm1*FV-l9HEfme&yuiD~iDJ5QN+Gr;}+8@=Qn zVxS81qOn1Og=1r=J|c%y?;7z&!YO|Yxi+quCCu#cs^Ta=u{W>wWNOZO{JVQaB6^Xq zX@|}!ZJGBM8YtKZysu&v+U>Djx4=7pPBh+_G{W5>^RyMZK~n{~o@T7m+~dcJM38;V zyMs9kJnCw}g?flNs3v?VN@2H+thIYMZKaPYku#U6; zi5J$N$~!{EtUZTjCBSnFAERc1vjut^o#{^jhwOuYb;we>T=23U>sk|z-<7IbNjMlV zXQ54kcIVvKMcW)sgxoj8?vn5Z1&-es>`c%q4=paDgm-5)hmv$Wz`zo<<{at7o6$};WzNW7pV-Ge!0EMp~DtMB8~ zRFz1_tjfIe`@%D8AVo<66C@8!AEK?Nrf{%o#5TU(ww%wT7(^#3XIo@v)00PT4=Emy z=@FOX?rzBb#znTDSgo;^Y@r^hAH&~R zJU}JK&Y38C7^}T({HvWqS3i0!4=f5S01Nf};<@fb+lz7-{A3 z>!71a#`jw`j~R( z+2x@4D4tZ%C77RAu8a`-Edku5hk?D?ygf_1{eh33RPKi;1}UJ^V_pD{2kphdw+Z8( z+CGDqY_+>@ky+y(pjfd#p(B)peAc4ydj-;WE}esV!>U9v;-w;9Qre$H@ZfNBMYz#ixC2m3 zZyHGpQCok?NL7R%(O|pGd9R11G|#-ko$wh>4Y~ZsZi^$2n5k&!G1xwlt4ea{N%)>-r)4`O4Q=c0RnbbpEK zt_G{s;-Ehaw9{RVoamWkkIn!cIDou)?V}|r`_?t*gyUjKn`B&b>e_qW#ImCBa3+v> z6PI>*_15?lE|=@UMRQ)=gZ8@t+e5c&6i;tg{(b3E3M`N{h*ah@K6z#y;M&1zi!oOz z2UGHL|701D&JnpOaVnFWe8EL+{*lZxOrEPD(`Qx(^`*3h0Ny!5IdWy?^!#4gG6P# z|M3LEDc{<%XYwAk8_&n2!{RHT`)JN!p`r0hz_I0f7cfXys!hU@zaP?;_deTP^LW;E z#hK~Jem}v#xN{pM)tDYU_yUNXJNY>TLN=sW{j$3C7cD^h2`1tLv+AC40H&_aV6>x? zo~FuV#u63HmOqs+*Pg#c9VYSvRa8EMCj!5W7q3hL7C5*b@{L481JI6E_P^Cz-ueIN z;O*ZaKH8^n9kjpv{8`zT+45}?=$3n51YT;egG>8!HlH3HBi+5%6hZ@tuJ1N}{_FWR zDQ7Aap?Fd=porW0e-V8?K=eRDZ@EcZwGlPrZ+mJsDL)EQoju3oL~*$bIh6!s zF6_Bxr|gfd{U?-^g>*t#bDO-OI@9w8U{wB-VgJ?ORhlq*aC$RWl`VD zI}K~ur%B^gPb_6ZqSISxizz>MwfrjA|8zdHxOK)_9=+K{m*j(scLCcVP;N@|X1PWl z{SU>P8vqZyVIfo)ncDQK@sBv&7O%!jSMX6bb3nDXM5=5M2&02?8&@YvXD`wTTpeP( zeLFoy<|R?7*f&Dfl9L7!tCt@{T6PV&Kbt>*4E)>|R-P5fxxjy*@%7JEy#*k4r#9z5 zYyDf#jGy{9&`h~MRi2t-V}?Q4rAfth>r`LB3J^1)#u@XIc&Fzl!!dtlA$dJ@kppSJ zL35{E8WH25CdX{oa=dW=_^*=7KcM;9^Q?x^zSQ5#Q0t%!P&2V<7?$?`A8T(N7FD~y ziw`IwARr(hEuw^UHwY-*sdRUD4hRC$BHhvr(p`ddcc*mc0K>p<0lxd)d!PM1XP@77 z<`1q*TrdJ%0{}69LDP|_inSzCEV-vh3@MEbXBLPkg3X!vAnZ@`|JbCQr39Q5 z`ZVFItmkQRXDe?nZV?yw!a0(v7wDH`DMj|lJUI2EH4HDqMrq7D^8LaBSO=9ZI@;$I}D@E;QMpB$5> zn%JC{l`4MkWM5R@SZL>p)+oqZhlxzQcjZjjN1w03tEc4IyYAmteM4#0X}W~NGjoNT zH}j%5c!1Z7%;I*Fa4WyKQmSXKdL^{i%kL2r(06Daqo|^8<4eHp5pO-Z7lX;#rx7vW zw@J<;s1QF}@ywmw%YqNDKbt>GbJxc&nG4T$#I$y+!9;4<2uft%v-xyLV`jypSgs@+aqfOuQ*4sXINRlOTmcY_k=09R$< zaS(L^6{?vQB5bo`yCA&9HV|Dy$KmU~Io8zdibDwYBLwf=K7(YIjXmnUEu*x?dTiXD z2&lP~y~QSGqqfGKqte^y7H~F+*KXSy*vsiV?=$C=(!WJhMSh6Tv{XX!Em|;+qV*3k z*~>{J`nxWpHyZEPfRlnm!wFt*eqVf+Xpn`|Xaz zh(!53W#=Pz@0c#=Ok9^oHs-|FoB057*`4awwHzZYO*cW2+$Ic^s^k}FK~z0cN`8e} zy)660rBF=v)5ogcE+8>MUpC4L9T*y`3?2612yJc?9S3%vTi*4^z+53FXM2rM%iA(b zC=37D?hFMWKrOj3{Mg`Hq3$&2!0Zm^Y%szH*CTxe5~2D_R~*E+|F}2khgw$aP&`~L zMI`B>v4UmodQsh8>FPBiI@3ZberRx_mBRwgMcP%q2jV38{yFyG7L;IS@{mO$3x2l{x*X&izg(fGf_* zG|Ba}i4q^=g~tU19g3u9HS%ak-nluw$l4pJU&&lN1Zi77?Y)0+;3xL~7$x)nDk;&; zGQ?g{ObO5kKYV-d%PM1^nyL0083T~hhu8Wjq2K??pus^cGFi+iG4=t9b~iRR!?CHA zCtnD=xz*KAL1;NGS&Sawb6EmWJ%Hdl8V{gA9)3_#;$bAr=VXcvA9`e4o zZ}exz5xDhfiQ#7)j0_z2<2?2=xe%tZQW4H*mAEnTxHV_y2_kD%3{PP+>@iJxX|()X zE)Cc4QepnA+iMOWmnNxKgucK|=T+$YxQ>cRrhxUq(bLyw*|Y0Xx=9ZeKKYshg2#F1 z6;xo_cGF+&j=J5Y`1qd^5$WhJ>d{)|7siy&(4YTszF&`Dtg$z>8HH(>-G8to9WDPI zl8ie48%e(8ysaN`PT*0#P)~Xi{;`|kr5XiW$AscQHH(Pvxaz?^kw}BI*-!ZWu=1V#uVw+n*Yc)fF zsFz^UK^X9(=HDX6_$pph{ZVIV1j%lsDSKh;ZRSp^f!|DKQ%&!86tBSB_^$tvpoH#a znPwE}NRq4P(Q1^D;&p|lpK;Bn(9fZUfycu(FLuyVZyw0Mv_&PvW3Hp`eWu2onaz_$vvUUB#yeQOwgqj3is!Mg_hH!;cp+X&-b9=oKAQZc_(O=la4gIQ8FRO^R( zw)*?u>16e-_(7vZbD$Lf*Z3wLBDL;g(MZ}Wl5zC3mX?>!@Os{u#Cx|58p%T(;Bi{1 zcT8&t)OqVmxqH^^tUSY=C&$lIaT3=u`tWR<1fAKrBX9H!>*CFSHeH5!Ur^t6eEc(L zv|FcYphl7!UMI@gawr^TV8eLWMPAkO{iHL?+IEC|(_|xt^tRnYtit}zcsUFg_(aO% z+d!DOQ6ZF&aeM0+c_=}(SA&7Bu1wmaGjV&Up7UmVcD?h+%Ju(p(XJYqyf9 zzHHr&(Zn9h@Fj0Jgq!%YqN%Pqrg?xln-z3STB-AaTHGN<31>A$Crcm%MF0t{ z_wM3&{~;8QELFdoQ-4R?oV~@A`ca^mSgV43HLM{=)x&#s(Zp8eDF?tV;+EX9i!@(v zM!k0pk<1d;GqU@o7%mh1GhP!e4ARfV33zP=9X(xY40Gsu7X*RzIT0M)YA$~_!91j@ z5;v_vqftu9TAapzUY>KW8L%KrI|D2Xb$t?$RFhy(Pk~!#G+Drk@to?1M?yk^zx zN$n}?y1QbSkEqX_qilYo^R?-nMe`0b9y~P!gtoGC{LkpMXu>{--toTPKaBym<~TJ^ zarCrn_+f#lcawVeEu$MlXHF%PXAQ2rO}0TXd#H?m6FY79k)o~vr0m}JXrkPO0b#-? zWudqz>XPzpYCc|Y|0a;oVj}uZu>tv;D@mMP121xamXGclczj*i85WYgm--boR$mJj z^k(6|M34!@$7IBRB)7^es$^qpBDRxerYg6l&a|#^!UK}!Gym^nSGZs{{x1eR+7tl% z2{$7!2z|NQ?4IBQ{b_<815i_isG9>eL1A0{jlWO#uWwZ@Z&Vdho=g}yv9kg`^9&<} zNKNTc&9lh(;#8v-;?y(K8$jcO@oP>E6=_>u^250WA|>K(sbDdW-BHDcVaW0nkcxA2 zmx^<&-*?VIFH5^Esq0yUY?aOl%ubdkYD(P7rZkb3q9?vl#XLE^hTwD3MD5Z6y#XPNL#dm~>;d}9HORbGv0OI!8 z&%N^aTKf(uVE|C(R}}v{ptNaJK{;G;FsK?mG|_1w=|wr}#-{R+Wc{&(fP$r=Ut`9_ zbrrDPJZpB*$F$UqYF;I`r@v7~PW4!s%5BfbI1}aTNvHG6!RXp+wyK^F_UJC_9N0Oi zYFL0W>ee^{5R&0QtKAGpSo8r7ZJ|n6dkBFAbudulK0}wK>9UFq9pnOL^tr^5r6z(G z^t3|0;G8VBu`!aFMMN#nD<8p+Fu7u@O_l)i06wG2!@l7KLY~OoK^jG4fk0*sg2qj?y(JJ>iA`Bf=ftOWuzMe#BX{o&Rf)JGCF`A~T)CUX zpojvfD%Hkj`4eKCoT>y*b3kAxDOQb5L8UNdaeGhGw{QN`G@v<728P{fWp^7z-Hd)f zc~xjfdj_=LfBNjbuJ%Akr%EgWvyG`6#bEMSM{PZ7ARt6ieg5k|>0~*Mkck!OIi5#bz1PqW0U~mIZzFPO%ylqG*xeFU{d(6I zr<3qw<0Ic)br*M52-;y(D(4ho9Z938Ze&?smNPPJ%m z@#C!+HgDX@P3BA8SXbm6F>ALIAV-M89c~6M&6B z_ZUb%+H;0I!Y~?3_r>X)p$o}!D>gXvp-PwMX7tz4?)&83Q7&pdY8qCjg@TBBX^g9d zs%cjG+fC+#>1aS4*opKu8Y%ZlR;YbtSN=XRU-1bLLiyhbVc#YXe|u@19KWGwTdGnE zbJE#BZ+5P-53BneNN&GlwC^jrmP*7PmJm5#Nr$veY>cIF1A}|}I_}Uzj!x>gM8iAA zr@J@9uv;BB&Es38YcZ==;Ysv{;A=HNM~pj~^T%;2Og&@3WO5$*PFT_BC4d*r{(%>1 zq9LqU5x|BMKzlxVHj;{+zw91V`6Bi@&_c(|5G8mqvtI)!B}jQr%ulc*>d0>x6b;HP+<%f6}r|b5_nOv_L)os(Ue_-(?mI<$x zNati3ChdEzD%h8=+o3p6b7P6eY~|!BBuk}IY_jk1hEHv2XkSpuM_s2`Q0six!6s%y znYTfj7orEo^Ip(UvF<|@NF6Qf*jzy9N3TW9!jeV9iGXcz` z8f7xfqmrG5{H|7>AW19qTc&&1>vXg$%^>>UCY z-VTO-zKu7W%mknXFW+Bx(L2)~;VJ#BLWYpSd$4%$bJm(@nzpyiuuzI9ETvR40>>)u zptd>>xi$~E+qnWt=$XXI^g(*arlj8L84$fQL7rfMk4hPcTni1XyNt`BxB68HC8`U? zJK4rH#?V%?$~fKy45`TCCYkhqz+&7*4plwmt>SGeC|#!lg742;w20%;;{U$Y}0s#ASBzXQ_1{&U)*{H_9uSlaSWr+-`wN@lZz)e zbIrcuGX7Rk!UdQJEwkTu;eB+&^-oQ~URH|*lOl6|%xfMP5Dkvi&iVX%PxZ6F46jSd2dzxX?g^bLN?A6^rv za~k?*+o_}CL*~7v8!%ulHN$M}PvV|a1Ww$$8$d-kFz5{=^WKIy6ZCTI*B}30OR$RG zE^gA4<~>!cft}45jATib0tu|_5cjy-;L^?KHYC|P8R_DAhNaqB7@Ik!k@I4ZL+iMm zsCHc-b>~Y{#I?ql&e;=@ls|hK-S=>^nOO#^7dq+AeIUqmL zKRG$+48*23f12LVpfSG#jV5G|FM~rRsxqHq0sv*tlLz<$@CA9@1o&=!lQrq++rsq7 zgQGDq?phJh^0$gk-Ns-=uKc-mT_A)zWj|t(;9Ijs?0rntvU)rxSyF)jGJhfWzB#E= zY&3n4gYk;;uL9F5ndT$! z?4^!$ff7-08OS!69XvKqg6LHgmnXMn`)efU-6C1xP$vEx0yEC!YqGlL(S`Q&qWy1` z2&d@}2+{6IOB>X+CUFT0KUsgRR&^^I8DsWd!OikF0acCqHmn6 zT#f}Iw&PW&4a{FkR|2k5ZOU_5=}~v2^j3k-wKZD$1^Mm4=)|RR76HNJsR8&r;K*9V z!q~(r4=c?%%;nCm6@AY2izB)YVjhE&3@JK=oa@#Y*c1NII&_vw=6ow>DX^sOtWQZ zj{ynAu|`6NMP~84^rJ25&7fMwgD`)*dOammsH3atKTM=wlR8Q}IMq||mVf6~g*}hzSA}ruj*m^4T<^0~ z#MWuw6PUXdKND{p_U!cUS_e3$_sOS5$(X7eCcD?v&KgYP^q!F%-5TAVuHJ|M8TuX^ zXe=xUS~S(gfiy-J1LdQ?m~NX1N{JPvFY%ug$9+1`WM0>`b93$k-32%OpP9=tJ@D7M zKA-8#t1bI|zTw2&qUNMB4O2I`$mWQt>M%K6{l?(Ha zo61+B$G07D9cz!j^DoSJTEINPMahbwfTTAJNW!wlG z`{XaC(=65MAL&8{>m{YfdZ~(>-c!YQ2$euK)6cNE=nyFt5Yf%o3CiBLY@R6<{M^DX0pjeG%11gF+vNw zhq4qZ4UX&Dx#<>uX)zuM+v>lS!G>L6pkujCpA5cw>SGUh)^{;C1Hef>ly>7jrL|@B z;FQlHYcXUMdUJQAPO2*_MDd3TB<$3QHilXZm6MW7@Bv&f%vNeC8p3C+h_k zq2{bz0{la10g$6c8(CSR3H#V5Y3!QtkD}6T@3W!PSZ^Jj6|?mkxfl4ZkJ8E=TI%Cj zUlOs_7A5{JH~i@7q$rw$5OP{ERYULLpM?6|_>v!ERCI!)Sb8)#%*@@N?eV#I9mVKKshZ&)tH9jnqb**H4tQi#4Le0cRC)%G*|x?81- zi`oxf;#IN=WpF%>q)a$q(=>$wTFrm8X?obtnJjtM7yYex#fGPDXX&;v*S6wGRvD1+ zbh?s^-Pw&Uu!`2CgGrVRh*?F9C8g7S(D74b*PEL7{z&esyH1sjaqT*E0QWus&KBhUm$MkKInX7N!Q1?7(wbB5Zu7ZZo>5dbfL+`-GG zer;X07qW2WvaCFz@hViJC?bFtbMP-O=6Y1nsIH8;RvkS)&djpDIPP0!WiXiLjR>W4 zqfv59)q3lA7{NblUDwooeHU-jhKA=!)t9RAmS2b3`cW|wHdQFNn~lbs4Z zx#uSN3O5Pu*`w&H>DaBDBYEneT|vX%&bIM)DR zWnX^(+U4k5KgVBe6sxpmo3
l!%l9X~3(HZ|=W{Qx)%qom>G@|?<^EzE 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 literal 0 HcmV?d00001 diff --git a/source/images/d_qgisplugin05.png b/source/images/d_qgisplugin05.png new file mode 100644 index 0000000000000000000000000000000000000000..a672b087aa5a1c3f77064f85f14489b1cee102ce GIT binary patch literal 28739 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 ZUD?PPes_aQz_*X-Y8u|Jxc4Ode*jh)FfIT9 literal 0 HcmV?d00001 From 964df8e6bcd1fea57e87ce60820e4235aabb6b53 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 22 Feb 2024 14:08:22 +0100 Subject: [PATCH 11/13] Remove redundant --- source/b_apps.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/b_apps.rst b/source/b_apps.rst index c3c1316..7edde98 100644 --- a/source/b_apps.rst +++ b/source/b_apps.rst @@ -4,9 +4,6 @@ Apps This page contains an explanation of availibity of apps in Lizard! - - - Dashboards ========== From 40b990b95bef05c371edc703d55f848a4b0f2d49 Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 22 Feb 2024 14:12:48 +0100 Subject: [PATCH 12/13] remove duplicate --- source/h_managers_lizard.rst | 166 ----------------------------------- 1 file changed, 166 deletions(-) diff --git a/source/h_managers_lizard.rst b/source/h_managers_lizard.rst index 50f403e..236b3fe 100644 --- a/source/h_managers_lizard.rst +++ b/source/h_managers_lizard.rst @@ -111,172 +111,6 @@ This is done as follows: -Managing Invitations ---------------------- - -In the `Pending Invitations` screen, you can see which invitations you have sent that have not yet been accepted or expired. -Invitations expire by default within 15 days, but you can cancel them earlier by clicking on the 3 dots next to an email (Image 3). -If an email has not reached a user, you can also verify the email here. - -.. figure:: /images/h_pending_uitnodiging_1.png - :scale: 50% - :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. - - Image 3: An overview of pending invitations. - - -Adjusting Existing Rights ---------------------------- - -In the user rights overview screen, you can manage the rights of existing users. -Here you see the following information of users who have rights for your organization: - -1. Username -2. Email -3. Roles - -.. figure:: /images/h_rechten_beheren_1.png - :scale: 50% - :alt: Overview of the Lizard management page with multiple users. - - Image 4: An overview of pending invitations. - -By clicking on the username of the respective user, you will be taken to this user's specific page. -Here, you can click on the roles you want to remove or add. -If a role is clearly colored, the user has these rights. - -.. figure:: /images/h_rechten_beheren_2.png - :scale: 50% - :alt: Roles of an individual user. - - Image 5: In this case, the user has 'User' and 'Manager' rights. - - -Tips -============= - -.. tip:: Ensure that rights are discussed and granted at the beginning of a project. - This prevents delays later due to someone waiting for their rights. - -.. tip:: Don't forget to remove users' rights after a project is completed. - This way, you actively maintain the user database and keep your data under control. - However, be sure to check if any scripts are running on an API KEY of any of these users. - -.. tip:: If you want to deactivate accounts, contact the `servicedesk `_. - -:orphan: - -======== -Managers -======== - -What are the tasks of a Manager in an organization -================================================== - -The role of a manager is important for managing the data of an organization. -As a manager, you grant or revoke rights for your organization. -A manager mainly has two tasks: - -1. Maintaining the rights of existing users -2. Granting rights to new employees or external parties - -**Maintaining rights of existing users** - -The rights of users under your organization do not expire automatically. -So, it is important that you regularly check whether users still need their rights. -This can include employees leaving the organization or projects coming to an end. -Sometimes, not all rights need to be revoked, this is also possible. -It is up to you to determine how often you want to perform this check. - -**Granting rights to new users** - -If a user needs rights for your organization, you are responsible for granting them. -For the smooth progress of a project, it is useful to handle such requests promptly. -Granting rights also doesn't have to be a lengthy task; rights can be granted in a minute. -You can learn exactly how this works in `Inviting New Users`_ and `Adjusting Existing Rights`_. - -.. tip:: Use a bookmark to go directly to the Management page. This way, you can give a user rights in no time. - - -Roles and rights -================= - -**User** - -For every project collaborator, internal or external, who needs access to the organization's private data. -These are only "read" rights, meaning this user cannot modify or add data. - -**Supplier** - -Project collaborators who need to modify or deliver data require "write" rights. -This falls under this role. -As a supplier, it is only possible to deliver and modify your own data, not that of other users (within the organization). -However, a user with only supplier rights can still view publicly available data. - -**Administrator** - -An administrator has both "read" and "write" rights. -This means the rights of User and Supplier come together in this role. -Additionally, with these rights, there is the ability to modify the delivered data of others. - -**Manager** - -The manager gives and takes rights from others. -A manager can also revoke the rights of another manager. -So, make sure to only give manager rights to trusted parties. - -.. tip:: In some situations, organizations arise for specific projects. - If the data within this project falls under your organization and you want to appoint a manager for this, - please contact the `servicedesk `_. - -The management screen -===================== - -The management screen offers the opportunity to manage various aspects of your organization. -This includes managing your data: rasters, scenarios, time series, and more. -For complete use of this page, refer to the `lizard documentation `_. -The most important thing in this case is "User Management". -Only managers have access to the "Users" screen. -In this screen, you can: - -1. Invite new users. -2. Manage invitations. -3. Adjust existing rights. - - -Inviting New Users ----------------------------- - -If a new user needs access to Lizard from the organization, this can be granted by the Manager. -This is done as follows: - -1. Log in to the organization's portal ({organization}.lizard.net). -2. Go to the user section in the management screen ({organization}.lizard.net/management/users). -3. Click on `+ NEW USER` at the top right of the screen (Image 1, in red). -4. Type the user's email in the 'email' field (Image 2). -5. Select the roles the user will have. For the rights associated with the roles, refer to `Roles and rights`_. -6. Click `SAVE`. -7. Success! The invitation has been sent and will be in the new user's mailbox within 5 minutes. - -.. tip:: Clicking on a role when inviting someone will also display the rights of each role on the left side of your screen. - -.. tip:: If the email does not appear in the inbox after 5 minutes, first check your spam folder. If the invitation is not there either, you can always contact the `servicedesk `_. - -.. figure:: /images/h_gebruiker_uitnodigen_1.png - :scale: 50% - :alt: Overview of the Lizard management page with multiple users. - - Image 1: An overview of the user section in the management screen of Lizard. - Here you can view existing rights and invite new users (red) or manage pending invitations (yellow). - -.. figure:: /images/h_gebruiker_uitnodigen_2.png - :scale: 50% - :alt: Invitation screen for new users of Lizard. Enter an email and select the roles for the new user. - - Image 2: The invitation screen for new users. You select the roles by clicking on them. - - - Managing Invitations --------------------- From 23c2672f2148be7b72fdb613dad1b2294caee6fa Mon Sep 17 00:00:00 2001 From: StevenHosper Date: Thu, 22 Feb 2024 14:38:40 +0100 Subject: [PATCH 13/13] Fixes and improvements --- source/a_geoblocks.rst | 2 +- source/b_catalogue.rst | 10 +-- source/b_management.rst | 138 +++++++++++++++++++++++++++++++++------- source/c_endpoints.rst | 4 +- 4 files changed, 124 insertions(+), 30 deletions(-) diff --git a/source/a_geoblocks.rst b/source/a_geoblocks.rst index 64518aa..56bc77b 100644 --- a/source/a_geoblocks.rst +++ b/source/a_geoblocks.rst @@ -307,7 +307,7 @@ Geometry example: classify build year of buildings. Geometry output --------------- -Geometry outputs are stored in :doc:`labels`. +Geometry outputs are stored in `labels `_. Labels are always linked to your Vectors stored in the Vector Server, for instance flood risk for parcels or buildings. Labels are grouped in Labeltypes. The graph can be found via the labeltypes endpoint: diff --git a/source/b_catalogue.rst b/source/b_catalogue.rst index e84454b..a17c948 100644 --- a/source/b_catalogue.rst +++ b/source/b_catalogue.rst @@ -76,7 +76,7 @@ The following information is visible in this overview. * **Access modifier** Divided into Public, Common and Private. .. note:: - Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. + Information about the different access modifiers can be found under `organisation modifiers `_. .. note:: Not included are rasters from 3Di scenarios @@ -138,7 +138,7 @@ The following information is visible in this overview. * **Access modifier** Divided into Public, Common and Private. .. note:: - Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. + Information about the different access modifiers can be found under `organisation modifiers `_. Details -------- @@ -158,7 +158,7 @@ Action menu You can download the wms directly, open it in the Viewer or in the API or analyse the wms layer in another application linking to Lizard. You can use this link to visualise the raster in external applications such as QGIS or ESRI applications. -For more infomation, please consult the :doc:`WMS Services`. +For more infomation, please consult the `WMS Services `_. Time series and monitoring networks ==================================== @@ -175,7 +175,7 @@ The following information is visible in this overview. * **Access modifier** Divided into Public, Common and Private. .. note:: - Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. + Information about the different access modifiers can be found under `organisation modifiers `_. In monitoring networks, you can group timeseries. This can be done for example by grouping them by observation type or by source. @@ -231,7 +231,7 @@ The following information is visible in this overview. * **Access modifier** Divided into Public, Common and Private. .. note:: - Information about the different Access modifiers can be found under :ref:`OrganisationsAnchor`. + Information about the different access modifiers can be found under `organisation modifiers `_. Details diff --git a/source/b_management.rst b/source/b_management.rst index 9c715e8..0e47556 100644 --- a/source/b_management.rst +++ b/source/b_management.rst @@ -127,6 +127,109 @@ If the layer you are looking for seems unavailable you might have to switch orga Advanced: Is your WMS layer not visible in the Viewer? Check via the network tab (press F12) how Lizard requests the WMS and if that WMS url makes sense. +WMS Services +============= + +Lizard provides a Web Map Service (WMS) that you can use to visualise rasters and 3Di scenarios stored in Lizard Raster Server as tiled images. +The Lizard WMS Service follows the `OGC WMS guidelines `_. + +Rasters +--------- + +To visualise and request the GetCapabilities of a specific raster you can use the following URL: + +``https://{yourportal}.lizard.net/wms/raster_{UUID of raster}/?request=GetCapabilities`` + +for example: +https://demo.lizard.net/wms/raster_eae92c48-cd68-4820-9d82-f86f763b4186/?request=GetCapabilities + +You can easily find the UUID of the raster in the `Lizard Catalogue `_ or `API `_. +The Lizard Catalogue also provides the Lizard WMS GetCapabilities link for each raster. +With the GetCapabilities query parameter you retrieve the metadata of the service, including supported operations, parameters and a list of available layers. + +3Di Scenarios +-------------- + +To visualise and request the GetCapabilities of a 3Di scenario (list of rasters) you can use the following URL: + +``https://{yourportal}.lizard.net/wms/scenario_{UUID of scenario}/?request=getcapabilities`` + +For example: +https://demo.lizard.net/wms/scenario_c30ef7f2-c871-4d70-a087-8f078f9ebafd/?request=GetCapabilities + +You can look up the UUID of the scenario using the `Scenarios endpoint in the Lizard API `_. +All available filters are listed on the endpoints’ page. E.g. you can look up a scenario and it’s uuid by filtering on your own username. +With the GetCapabilities query parameter you retrieve the metadata of the service, including supported operations, parameters and a list of available layers. + +Layer collections +------------------- + +To visualise and request the GetCapabilities of layer collections (list of rasters, previously called 'datasets') you can use the following URL: + +``https://{yourportal}.lizard.net/wms/{slug of layer collection}?request=GetCapabilities`` + +For example: +https://demo.lizard.net/wms/basiskaarten/?request=GetCapabilities + +You can search for layer collections in the Lizard Catalogue by using the Layer collection filter in the left panel. +You will find the Lizard WMS GetCapabilities URL of the layer collection in the metadata panel of a specific layer. + + +.. _WMSauthAnchor: + +Authorisation +-------------- + +The Lizard WMS Service follows the authorisation system mentioned under `organisation modifiers `_. +If layers are private you need privileges in the organisation that owns the data. + +Use a Personal API Key to authenticate with the Lizard WMS Service, as described in `API authentication <_APIAuthenticationAnchor>`_. + +In QGIS the authentication is filled in as follows: + +- username = __key__ +- password = Personal API Key + + +How to load WMS in GIS +======================= + +You can connect directly to Lizard in a GIS application like QGIS. + + +* 1 + +Open QGIS and load a new WMS connection. + +.. image:: /images/e_qgis_wms1.png + + +* 2 + +Give the connection a name and copy the wms link from 'https' to 'GetCapabilities', e.g. "https://maps1.klimaatatlas.net/geoserver/twn_klimaatatlas/wms/?request=GetCapabilities". + +.. image:: /images/e_qgis_wms2.png + + +* 3 + +If the wms layer is not public, you have to enter your :ref:`Credentials`. in the Authentication - Basic tab. + + +.. image:: /images/e_qgis_wmslogin.jpg + + +* 4 + +Click OK and double click on the connection. If multiple layers appear, double click on the one you are interested in. + +.. image:: /images/e_qgis_wms3.png + + +.. image:: /images/e_qgis_wms4.png + +The styling will automatically be taken from Lizard. +If the layer is temporal, you can also navigate through time. Layer collections ==================== @@ -145,7 +248,7 @@ The data management interface for timeseries can be used to upload, edit or remo .. image:: /images/c_manage_timeseries_menu.png ----------- + Locations ---------- @@ -161,15 +264,15 @@ Create a new object with the New Item button on the top right corner. .. image:: /images/c_manage_locations_02.png -1. GENERAL ------------- +1. **GENERAL** + * Location name (required): Choose a name that is findable and not too difficult * Code (required): Choose a code that represents the object within your organisation. -2. DATA ------------- +2. **DATA** + .. warning:: Locations must be connected to an existing asset to be visualised in the Viewer. The asset will have a symbol and zoom level depending on the type. Also, the metadata differs per type. For now, only measuringstations can be added via the API. If you have any questions about this, please contact the service desk. @@ -178,15 +281,13 @@ Create a new object with the New Item button on the top right corner. * Asset location: after specifying the asset type, you can search by code or name. * Extra metadata (JSON) (optional): Free JSON field to add information to this object. -3. RIGHTS ------------- +3. **RIGHTS** * Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. If you are satisfied, click "SAVE" ------------- Timeseries ------------ @@ -200,17 +301,15 @@ Create a new object with the New Item button on the top right corner. .. image:: /images/c_manage_timeseries_02.png -1. GENERAL ------------- +1. **GENERAL** * Name (required): Choose a name that is findable and not too difficult * Code (required): Choose a code that represents the object within your organisation. -2. DATA ------------- +2. **DATA** -* Observation type (required): Choose the way the data is measured, and the units. New observation types can be added via the `api `_ or requested via the servicedesk. +* Observation type (required): Choose the way the data is measured, and the units. New observation types can be added via the `observation types api `_ or requested via the servicedesk. * Location (required): Choose to which location you want to add this timeseries. New locations can be added via the api or via data management --> timeseries --> locations. * Value type (required): Specify what kind of data you will be supplying. See `Level of measurement `_. * Datasource (optional): Specify a data source if it is available. Otherwise, you can leave it empty or create a new one via the API. @@ -238,8 +337,7 @@ Create a new object with the New Item button on the top right corner. * Extra metadata (JSON) (optional): Free JSON field to add information to this object. -3. RIGHTS ------------- +3. **RIGHTS** * Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. * Username of supplier (optional): The supplier of this object. If you are not an administrator, this field is always pre-filled with your username. @@ -252,7 +350,6 @@ If you are satisfied, click "SAVE" ---------------------- Monitoring networks --------------------- @@ -265,21 +362,18 @@ Create a new object with the New Item button on the top right corner. .. image:: /images/c_manage_monitoringnetworks_01.png -1. GENERAL ------------- +1. **GENERAL** * Name (required): Choose a name that is findable and not too difficult * Description (optional) -2. DATA ------------- +2. **DATA** .. warning:: The button "MANAGE" will only work if there are already timseries connected to the monitoring network. If there are, you can remove the the connection here. New connections can be added via the timeseries management app. -3. RIGHTS ------------- +3. **RIGHTS** * Accessibility (required, private by default): Choose an access modifier to decide who has access to this object. * Organisation (required, pre-filled): The organisation this object belongs to. diff --git a/source/c_endpoints.rst b/source/c_endpoints.rst index 65f6faa..673bccd 100644 --- a/source/c_endpoints.rst +++ b/source/c_endpoints.rst @@ -25,7 +25,7 @@ most commonly used and supported verbs are: We also have HEAD and OPTIONS. -.. _APIAuthenticatiosnAnchor: +.. _APIAuthenticationAnchor: Authentication ============== @@ -104,7 +104,7 @@ Authorisation For all endpoints, users have to be ``admin`` in the organisation that owns the data to create or update resources. -See :doc:`b_usermanagement` for more information about roles and permissions. +See `user management `_ for more information about roles and permissions. Supported data formats ======================