From bc6168189c7282e0f48d6e22a90e7538852d54a8 Mon Sep 17 00:00:00 2001 From: Ib Green <7025232+ibgreen@users.noreply.github.com> Date: Wed, 11 Dec 2024 10:20:02 -0500 Subject: [PATCH] examples: Add playground example (#160) --- .../arrow-layers/linestring/README.md | 0 .../arrow-layers/linestring/app.tsx | 4 + .../arrow-layers/linestring/index.html | 0 .../arrow-layers/linestring/package.json | 0 .../arrow-layers/multilinestring/app.tsx | 4 + .../arrow-layers/multilinestring/index.html | 0 .../arrow-layers/multilinestring/package.json | 0 .../arrow-layers/multipoint/app.tsx | 4 + .../arrow-layers/multipoint/index.html | 0 .../arrow-layers/multipoint/package.json | 0 .../arrow-layers/multipolygon/README.md | 0 .../arrow-layers/multipolygon/app.tsx | 4 + .../multipolygon/generate_data.py | 0 .../arrow-layers/multipolygon/index.html | 0 .../arrow-layers/multipolygon/package.json | 0 .../arrow-layers/multipolygon/poetry.lock | 0 .../arrow-layers/multipolygon/pyproject.toml | 0 .../arrow-layers/point/README.md | 0 .../arrow-layers/point/app.tsx | 4 + .../arrow-layers/point/generate_data.py | 0 .../arrow-layers/point/index.html | 0 .../arrow-layers/point/package.json | 0 .../arrow-layers/point/poetry.lock | 0 .../arrow-layers/point/pyproject.toml | 0 .../arrow-layers/polygon/README.md | 0 .../arrow-layers/polygon/app.tsx | 4 + .../arrow-layers/polygon/generate_data.py | 0 .../arrow-layers/polygon/index.html | 0 .../arrow-layers/polygon/package.json | 0 .../arrow-layers/polygon/poetry.lock | 0 .../arrow-layers/polygon/pyproject.toml | 0 .../arrow-layers/text/app.tsx | 4 + .../arrow-layers/text/generate_data.py | 0 .../arrow-layers/text/index.html | 0 .../arrow-layers/text/package.json | 0 .../arrow-layers/text/poetry.lock | 0 .../arrow-layers/text/pyproject.toml | 0 .../arrow-layers/trips/README.md | 0 .../arrow-layers/trips/app.tsx | 4 + .../arrow-layers/trips/generate_data.py | 0 .../arrow-layers/trips/index.html | 0 .../arrow-layers/trips/package.json | 0 .../arrow-layers/trips/poetry.lock | 0 .../arrow-layers/trips/pyproject.toml | 0 .../codesandbox/examples.old.txt | 0 .../codesandbox/getting-started/index.js | 4 + .../codesandbox/getting-started/package.json | 1 + .../codesandbox/world-heritage/index.js | 4 + .../codesandbox/world-heritage/package.json | 1 + examples/bing-maps/get-started/app.ts | 4 + .../editable-layers/advanced/package.json | 2 + examples/editable-layers/advanced/src/app.tsx | 4 + .../editable-layers/advanced/src/example.tsx | 4 + .../editable-layers/advanced/src/index.d.ts | 4 + .../editable-layers/advanced/src/toolbox.tsx | 4 + .../editable-h3-cluster-layer/data.ts | 4 + .../editable-h3-cluster-layer/index.tsx | 4 + examples/editable-layers/editor/app.tsx | 4 + examples/editable-layers/editor/example.tsx | 4 + examples/editable-layers/editor/package.json | 1 + examples/editable-layers/no-map/app.js | 4 + .../editable-layers/no-map/example-no-map.js | 4 + .../editable-layers/no-map/webpack.config.js | 4 + examples/editable-layers/overlays/app.tsx | 4 + .../editable-layers/overlays/constants.ts | 4 + examples/editable-layers/overlays/example.tsx | 4 + examples/editable-layers/overlays/types.ts | 4 + examples/editable-layers/sf/app.tsx | 4 + examples/editable-layers/sf/example.tsx | 4 + .../graph-layers/graph-viewer/package.json | 1 + examples/playground/index.html | 24 + .../json-examples/3d-heatmap-minimap.json | 60 + .../playground/json-examples/3d-heatmap.json | 47 + .../json-examples/3d-tiles-cairo-vricon.json | 35 + .../json-examples/3d-tiles-new-york.json | 35 + .../json-examples/3d-tiles-royal.json | 30 + .../json-examples/3d-tiles-st-helens.json | 34 + examples/playground/json-examples/README.md | 6 + examples/playground/json-examples/carto.json | 36 + .../playground/json-examples/dot-text.json | 40 + .../playground/json-examples/geojson.json | 42 + examples/playground/json-examples/index.js | 37 + examples/playground/json-examples/line.json | 51 + .../playground/json-examples/scatterplot.json | 34 + .../playground/json-examples/screen-grid.json | 69 + examples/playground/json-examples/tagmap.json | 34 + .../playground/json-examples/tile-source.json | 47 + examples/playground/json-examples/us-map.json | 38 + examples/playground/package.json | 35 + examples/playground/src/app.tsx | 217 + .../playground/src/deck-with-google-maps.tsx | 98 + .../playground/src/deck-with-mapbox-maps.tsx | 36 + examples/playground/src/json-configuration.ts | 73 + examples/playground/vite.config.ts | 24 + examples/template/minimal-example/app.tsx | 4 + package.json | 7 +- website/docusaurus.config.js | 2 + website/package.json | 6 + .../src/components/example/examples-index.jsx | 6 +- website/src/examples-sidebar.js | 16 +- website/src/examples/playground.mdx | 5 + website/src/examples/playground.tsx | 45 + .../images/examples/playground/playground.jpg | Bin 0 -> 206496 bytes website/yarn.lock | 6823 ++++++------ yarn.lock | 9457 +++-------------- 105 files changed, 6580 insertions(+), 11091 deletions(-) rename {examples => examples-wip}/arrow-layers/linestring/README.md (100%) rename {examples => examples-wip}/arrow-layers/linestring/app.tsx (95%) rename {examples => examples-wip}/arrow-layers/linestring/index.html (100%) rename {examples => examples-wip}/arrow-layers/linestring/package.json (100%) rename {examples => examples-wip}/arrow-layers/multilinestring/app.tsx (96%) rename {examples => examples-wip}/arrow-layers/multilinestring/index.html (100%) rename {examples => examples-wip}/arrow-layers/multilinestring/package.json (100%) rename {examples => examples-wip}/arrow-layers/multipoint/app.tsx (96%) rename {examples => examples-wip}/arrow-layers/multipoint/index.html (100%) rename {examples => examples-wip}/arrow-layers/multipoint/package.json (100%) rename {examples => examples-wip}/arrow-layers/multipolygon/README.md (100%) rename {examples => examples-wip}/arrow-layers/multipolygon/app.tsx (95%) rename {examples => examples-wip}/arrow-layers/multipolygon/generate_data.py (100%) rename {examples => examples-wip}/arrow-layers/multipolygon/index.html (100%) rename {examples => examples-wip}/arrow-layers/multipolygon/package.json (100%) rename {examples => examples-wip}/arrow-layers/multipolygon/poetry.lock (100%) rename {examples => examples-wip}/arrow-layers/multipolygon/pyproject.toml (100%) rename {examples => examples-wip}/arrow-layers/point/README.md (100%) rename {examples => examples-wip}/arrow-layers/point/app.tsx (96%) rename {examples => examples-wip}/arrow-layers/point/generate_data.py (100%) rename {examples => examples-wip}/arrow-layers/point/index.html (100%) rename {examples => examples-wip}/arrow-layers/point/package.json (100%) rename {examples => examples-wip}/arrow-layers/point/poetry.lock (100%) rename {examples => examples-wip}/arrow-layers/point/pyproject.toml (100%) rename {examples => examples-wip}/arrow-layers/polygon/README.md (100%) rename {examples => examples-wip}/arrow-layers/polygon/app.tsx (96%) rename {examples => examples-wip}/arrow-layers/polygon/generate_data.py (100%) rename {examples => examples-wip}/arrow-layers/polygon/index.html (100%) rename {examples => examples-wip}/arrow-layers/polygon/package.json (100%) rename {examples => examples-wip}/arrow-layers/polygon/poetry.lock (100%) rename {examples => examples-wip}/arrow-layers/polygon/pyproject.toml (100%) rename {examples => examples-wip}/arrow-layers/text/app.tsx (95%) rename {examples => examples-wip}/arrow-layers/text/generate_data.py (100%) rename {examples => examples-wip}/arrow-layers/text/index.html (100%) rename {examples => examples-wip}/arrow-layers/text/package.json (100%) rename {examples => examples-wip}/arrow-layers/text/poetry.lock (100%) rename {examples => examples-wip}/arrow-layers/text/pyproject.toml (100%) rename {examples => examples-wip}/arrow-layers/trips/README.md (100%) rename {examples => examples-wip}/arrow-layers/trips/app.tsx (96%) rename {examples => examples-wip}/arrow-layers/trips/generate_data.py (100%) rename {examples => examples-wip}/arrow-layers/trips/index.html (100%) rename {examples => examples-wip}/arrow-layers/trips/package.json (100%) rename {examples => examples-wip}/arrow-layers/trips/poetry.lock (100%) rename {examples => examples-wip}/arrow-layers/trips/pyproject.toml (100%) rename {examples/editable-layers => examples-wip}/codesandbox/examples.old.txt (100%) rename {examples/editable-layers => examples-wip}/codesandbox/getting-started/index.js (97%) rename {examples/editable-layers => examples-wip}/codesandbox/getting-started/package.json (84%) rename {examples/editable-layers => examples-wip}/codesandbox/world-heritage/index.js (97%) rename {examples/editable-layers => examples-wip}/codesandbox/world-heritage/package.json (82%) create mode 100644 examples/playground/index.html create mode 100644 examples/playground/json-examples/3d-heatmap-minimap.json create mode 100644 examples/playground/json-examples/3d-heatmap.json create mode 100644 examples/playground/json-examples/3d-tiles-cairo-vricon.json create mode 100644 examples/playground/json-examples/3d-tiles-new-york.json create mode 100644 examples/playground/json-examples/3d-tiles-royal.json create mode 100644 examples/playground/json-examples/3d-tiles-st-helens.json create mode 100644 examples/playground/json-examples/README.md create mode 100644 examples/playground/json-examples/carto.json create mode 100644 examples/playground/json-examples/dot-text.json create mode 100644 examples/playground/json-examples/geojson.json create mode 100644 examples/playground/json-examples/index.js create mode 100644 examples/playground/json-examples/line.json create mode 100644 examples/playground/json-examples/scatterplot.json create mode 100644 examples/playground/json-examples/screen-grid.json create mode 100644 examples/playground/json-examples/tagmap.json create mode 100644 examples/playground/json-examples/tile-source.json create mode 100644 examples/playground/json-examples/us-map.json create mode 100644 examples/playground/package.json create mode 100644 examples/playground/src/app.tsx create mode 100644 examples/playground/src/deck-with-google-maps.tsx create mode 100644 examples/playground/src/deck-with-mapbox-maps.tsx create mode 100644 examples/playground/src/json-configuration.ts create mode 100644 examples/playground/vite.config.ts create mode 100644 website/src/examples/playground.mdx create mode 100644 website/src/examples/playground.tsx create mode 100644 website/static/images/examples/playground/playground.jpg diff --git a/examples/arrow-layers/linestring/README.md b/examples-wip/arrow-layers/linestring/README.md similarity index 100% rename from examples/arrow-layers/linestring/README.md rename to examples-wip/arrow-layers/linestring/README.md diff --git a/examples/arrow-layers/linestring/app.tsx b/examples-wip/arrow-layers/linestring/app.tsx similarity index 95% rename from examples/arrow-layers/linestring/app.tsx rename to examples-wip/arrow-layers/linestring/app.tsx index ed5ebf05..ba6fe039 100644 --- a/examples/arrow-layers/linestring/app.tsx +++ b/examples-wip/arrow-layers/linestring/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useState, useEffect} from 'react'; import {createRoot} from 'react-dom/client'; import {StaticMap, MapContext, NavigationControl} from 'react-map-gl'; diff --git a/examples/arrow-layers/linestring/index.html b/examples-wip/arrow-layers/linestring/index.html similarity index 100% rename from examples/arrow-layers/linestring/index.html rename to examples-wip/arrow-layers/linestring/index.html diff --git a/examples/arrow-layers/linestring/package.json b/examples-wip/arrow-layers/linestring/package.json similarity index 100% rename from examples/arrow-layers/linestring/package.json rename to examples-wip/arrow-layers/linestring/package.json diff --git a/examples/arrow-layers/multilinestring/app.tsx b/examples-wip/arrow-layers/multilinestring/app.tsx similarity index 96% rename from examples/arrow-layers/multilinestring/app.tsx rename to examples-wip/arrow-layers/multilinestring/app.tsx index 4d23e07b..06bebd2d 100644 --- a/examples/arrow-layers/multilinestring/app.tsx +++ b/examples-wip/arrow-layers/multilinestring/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useState, useEffect} from 'react'; import {createRoot} from 'react-dom/client'; import {StaticMap, MapContext, NavigationControl} from 'react-map-gl'; diff --git a/examples/arrow-layers/multilinestring/index.html b/examples-wip/arrow-layers/multilinestring/index.html similarity index 100% rename from examples/arrow-layers/multilinestring/index.html rename to examples-wip/arrow-layers/multilinestring/index.html diff --git a/examples/arrow-layers/multilinestring/package.json b/examples-wip/arrow-layers/multilinestring/package.json similarity index 100% rename from examples/arrow-layers/multilinestring/package.json rename to examples-wip/arrow-layers/multilinestring/package.json diff --git a/examples/arrow-layers/multipoint/app.tsx b/examples-wip/arrow-layers/multipoint/app.tsx similarity index 96% rename from examples/arrow-layers/multipoint/app.tsx rename to examples-wip/arrow-layers/multipoint/app.tsx index 1a74c497..81ed8cbe 100644 --- a/examples/arrow-layers/multipoint/app.tsx +++ b/examples-wip/arrow-layers/multipoint/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useState, useEffect} from 'react'; import {createRoot} from 'react-dom/client'; import {StaticMap, MapContext, NavigationControl} from 'react-map-gl'; diff --git a/examples/arrow-layers/multipoint/index.html b/examples-wip/arrow-layers/multipoint/index.html similarity index 100% rename from examples/arrow-layers/multipoint/index.html rename to examples-wip/arrow-layers/multipoint/index.html diff --git a/examples/arrow-layers/multipoint/package.json b/examples-wip/arrow-layers/multipoint/package.json similarity index 100% rename from examples/arrow-layers/multipoint/package.json rename to examples-wip/arrow-layers/multipoint/package.json diff --git a/examples/arrow-layers/multipolygon/README.md b/examples-wip/arrow-layers/multipolygon/README.md similarity index 100% rename from examples/arrow-layers/multipolygon/README.md rename to examples-wip/arrow-layers/multipolygon/README.md diff --git a/examples/arrow-layers/multipolygon/app.tsx b/examples-wip/arrow-layers/multipolygon/app.tsx similarity index 95% rename from examples/arrow-layers/multipolygon/app.tsx rename to examples-wip/arrow-layers/multipolygon/app.tsx index e69585ef..5c2f8b46 100644 --- a/examples/arrow-layers/multipolygon/app.tsx +++ b/examples-wip/arrow-layers/multipolygon/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useState, useEffect} from 'react'; import {createRoot} from 'react-dom/client'; import {StaticMap, MapContext, NavigationControl} from 'react-map-gl'; diff --git a/examples/arrow-layers/multipolygon/generate_data.py b/examples-wip/arrow-layers/multipolygon/generate_data.py similarity index 100% rename from examples/arrow-layers/multipolygon/generate_data.py rename to examples-wip/arrow-layers/multipolygon/generate_data.py diff --git a/examples/arrow-layers/multipolygon/index.html b/examples-wip/arrow-layers/multipolygon/index.html similarity index 100% rename from examples/arrow-layers/multipolygon/index.html rename to examples-wip/arrow-layers/multipolygon/index.html diff --git a/examples/arrow-layers/multipolygon/package.json b/examples-wip/arrow-layers/multipolygon/package.json similarity index 100% rename from examples/arrow-layers/multipolygon/package.json rename to examples-wip/arrow-layers/multipolygon/package.json diff --git a/examples/arrow-layers/multipolygon/poetry.lock b/examples-wip/arrow-layers/multipolygon/poetry.lock similarity index 100% rename from examples/arrow-layers/multipolygon/poetry.lock rename to examples-wip/arrow-layers/multipolygon/poetry.lock diff --git a/examples/arrow-layers/multipolygon/pyproject.toml b/examples-wip/arrow-layers/multipolygon/pyproject.toml similarity index 100% rename from examples/arrow-layers/multipolygon/pyproject.toml rename to examples-wip/arrow-layers/multipolygon/pyproject.toml diff --git a/examples/arrow-layers/point/README.md b/examples-wip/arrow-layers/point/README.md similarity index 100% rename from examples/arrow-layers/point/README.md rename to examples-wip/arrow-layers/point/README.md diff --git a/examples/arrow-layers/point/app.tsx b/examples-wip/arrow-layers/point/app.tsx similarity index 96% rename from examples/arrow-layers/point/app.tsx rename to examples-wip/arrow-layers/point/app.tsx index 4d7aac62..f777f9e9 100644 --- a/examples/arrow-layers/point/app.tsx +++ b/examples-wip/arrow-layers/point/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useState, useEffect} from 'react'; import {createRoot} from 'react-dom/client'; import {StaticMap, MapContext, NavigationControl} from 'react-map-gl'; diff --git a/examples/arrow-layers/point/generate_data.py b/examples-wip/arrow-layers/point/generate_data.py similarity index 100% rename from examples/arrow-layers/point/generate_data.py rename to examples-wip/arrow-layers/point/generate_data.py diff --git a/examples/arrow-layers/point/index.html b/examples-wip/arrow-layers/point/index.html similarity index 100% rename from examples/arrow-layers/point/index.html rename to examples-wip/arrow-layers/point/index.html diff --git a/examples/arrow-layers/point/package.json b/examples-wip/arrow-layers/point/package.json similarity index 100% rename from examples/arrow-layers/point/package.json rename to examples-wip/arrow-layers/point/package.json diff --git a/examples/arrow-layers/point/poetry.lock b/examples-wip/arrow-layers/point/poetry.lock similarity index 100% rename from examples/arrow-layers/point/poetry.lock rename to examples-wip/arrow-layers/point/poetry.lock diff --git a/examples/arrow-layers/point/pyproject.toml b/examples-wip/arrow-layers/point/pyproject.toml similarity index 100% rename from examples/arrow-layers/point/pyproject.toml rename to examples-wip/arrow-layers/point/pyproject.toml diff --git a/examples/arrow-layers/polygon/README.md b/examples-wip/arrow-layers/polygon/README.md similarity index 100% rename from examples/arrow-layers/polygon/README.md rename to examples-wip/arrow-layers/polygon/README.md diff --git a/examples/arrow-layers/polygon/app.tsx b/examples-wip/arrow-layers/polygon/app.tsx similarity index 96% rename from examples/arrow-layers/polygon/app.tsx rename to examples-wip/arrow-layers/polygon/app.tsx index 5e2138ac..4e643172 100644 --- a/examples/arrow-layers/polygon/app.tsx +++ b/examples-wip/arrow-layers/polygon/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useState, useEffect} from 'react'; import {createRoot} from 'react-dom/client'; import {StaticMap, MapContext, NavigationControl} from 'react-map-gl'; diff --git a/examples/arrow-layers/polygon/generate_data.py b/examples-wip/arrow-layers/polygon/generate_data.py similarity index 100% rename from examples/arrow-layers/polygon/generate_data.py rename to examples-wip/arrow-layers/polygon/generate_data.py diff --git a/examples/arrow-layers/polygon/index.html b/examples-wip/arrow-layers/polygon/index.html similarity index 100% rename from examples/arrow-layers/polygon/index.html rename to examples-wip/arrow-layers/polygon/index.html diff --git a/examples/arrow-layers/polygon/package.json b/examples-wip/arrow-layers/polygon/package.json similarity index 100% rename from examples/arrow-layers/polygon/package.json rename to examples-wip/arrow-layers/polygon/package.json diff --git a/examples/arrow-layers/polygon/poetry.lock b/examples-wip/arrow-layers/polygon/poetry.lock similarity index 100% rename from examples/arrow-layers/polygon/poetry.lock rename to examples-wip/arrow-layers/polygon/poetry.lock diff --git a/examples/arrow-layers/polygon/pyproject.toml b/examples-wip/arrow-layers/polygon/pyproject.toml similarity index 100% rename from examples/arrow-layers/polygon/pyproject.toml rename to examples-wip/arrow-layers/polygon/pyproject.toml diff --git a/examples/arrow-layers/text/app.tsx b/examples-wip/arrow-layers/text/app.tsx similarity index 95% rename from examples/arrow-layers/text/app.tsx rename to examples-wip/arrow-layers/text/app.tsx index 35cceba0..515845f0 100644 --- a/examples/arrow-layers/text/app.tsx +++ b/examples-wip/arrow-layers/text/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useState, useEffect} from 'react'; import {createRoot} from 'react-dom/client'; import {StaticMap, MapContext, NavigationControl} from 'react-map-gl'; diff --git a/examples/arrow-layers/text/generate_data.py b/examples-wip/arrow-layers/text/generate_data.py similarity index 100% rename from examples/arrow-layers/text/generate_data.py rename to examples-wip/arrow-layers/text/generate_data.py diff --git a/examples/arrow-layers/text/index.html b/examples-wip/arrow-layers/text/index.html similarity index 100% rename from examples/arrow-layers/text/index.html rename to examples-wip/arrow-layers/text/index.html diff --git a/examples/arrow-layers/text/package.json b/examples-wip/arrow-layers/text/package.json similarity index 100% rename from examples/arrow-layers/text/package.json rename to examples-wip/arrow-layers/text/package.json diff --git a/examples/arrow-layers/text/poetry.lock b/examples-wip/arrow-layers/text/poetry.lock similarity index 100% rename from examples/arrow-layers/text/poetry.lock rename to examples-wip/arrow-layers/text/poetry.lock diff --git a/examples/arrow-layers/text/pyproject.toml b/examples-wip/arrow-layers/text/pyproject.toml similarity index 100% rename from examples/arrow-layers/text/pyproject.toml rename to examples-wip/arrow-layers/text/pyproject.toml diff --git a/examples/arrow-layers/trips/README.md b/examples-wip/arrow-layers/trips/README.md similarity index 100% rename from examples/arrow-layers/trips/README.md rename to examples-wip/arrow-layers/trips/README.md diff --git a/examples/arrow-layers/trips/app.tsx b/examples-wip/arrow-layers/trips/app.tsx similarity index 96% rename from examples/arrow-layers/trips/app.tsx rename to examples-wip/arrow-layers/trips/app.tsx index 48e405d4..53bec43c 100644 --- a/examples/arrow-layers/trips/app.tsx +++ b/examples-wip/arrow-layers/trips/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useState, useEffect} from 'react'; import {createRoot} from 'react-dom/client'; import {StaticMap, MapContext, NavigationControl} from 'react-map-gl'; diff --git a/examples/arrow-layers/trips/generate_data.py b/examples-wip/arrow-layers/trips/generate_data.py similarity index 100% rename from examples/arrow-layers/trips/generate_data.py rename to examples-wip/arrow-layers/trips/generate_data.py diff --git a/examples/arrow-layers/trips/index.html b/examples-wip/arrow-layers/trips/index.html similarity index 100% rename from examples/arrow-layers/trips/index.html rename to examples-wip/arrow-layers/trips/index.html diff --git a/examples/arrow-layers/trips/package.json b/examples-wip/arrow-layers/trips/package.json similarity index 100% rename from examples/arrow-layers/trips/package.json rename to examples-wip/arrow-layers/trips/package.json diff --git a/examples/arrow-layers/trips/poetry.lock b/examples-wip/arrow-layers/trips/poetry.lock similarity index 100% rename from examples/arrow-layers/trips/poetry.lock rename to examples-wip/arrow-layers/trips/poetry.lock diff --git a/examples/arrow-layers/trips/pyproject.toml b/examples-wip/arrow-layers/trips/pyproject.toml similarity index 100% rename from examples/arrow-layers/trips/pyproject.toml rename to examples-wip/arrow-layers/trips/pyproject.toml diff --git a/examples/editable-layers/codesandbox/examples.old.txt b/examples-wip/codesandbox/examples.old.txt similarity index 100% rename from examples/editable-layers/codesandbox/examples.old.txt rename to examples-wip/codesandbox/examples.old.txt diff --git a/examples/editable-layers/codesandbox/getting-started/index.js b/examples-wip/codesandbox/getting-started/index.js similarity index 97% rename from examples/editable-layers/codesandbox/getting-started/index.js rename to examples-wip/codesandbox/getting-started/index.js index 141e35ac..4b582b03 100644 --- a/examples/editable-layers/codesandbox/getting-started/index.js +++ b/examples-wip/codesandbox/getting-started/index.js @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React from 'react'; import ReactDOM from 'react-dom'; import DeckGL from '@deck.gl/react'; diff --git a/examples/editable-layers/codesandbox/getting-started/package.json b/examples-wip/codesandbox/getting-started/package.json similarity index 84% rename from examples/editable-layers/codesandbox/getting-started/package.json rename to examples-wip/codesandbox/getting-started/package.json index 0fed4b5d..594d2ad1 100644 --- a/examples/editable-layers/codesandbox/getting-started/package.json +++ b/examples-wip/codesandbox/getting-started/package.json @@ -1,4 +1,5 @@ { + "name": "editable-layers-example-getting-started", "dependencies": { "@deck.gl/core": "^8.8.23", "@deck.gl/react": "^8.8.23", diff --git a/examples/editable-layers/codesandbox/world-heritage/index.js b/examples-wip/codesandbox/world-heritage/index.js similarity index 97% rename from examples/editable-layers/codesandbox/world-heritage/index.js rename to examples-wip/codesandbox/world-heritage/index.js index f3264bcb..e0624c17 100644 --- a/examples/editable-layers/codesandbox/world-heritage/index.js +++ b/examples-wip/codesandbox/world-heritage/index.js @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React from 'react'; import ReactDOM from 'react-dom'; import DeckGL from '@deck.gl/react'; diff --git a/examples/editable-layers/codesandbox/world-heritage/package.json b/examples-wip/codesandbox/world-heritage/package.json similarity index 82% rename from examples/editable-layers/codesandbox/world-heritage/package.json rename to examples-wip/codesandbox/world-heritage/package.json index d0949f11..3fe0e76c 100644 --- a/examples/editable-layers/codesandbox/world-heritage/package.json +++ b/examples-wip/codesandbox/world-heritage/package.json @@ -1,4 +1,5 @@ { + "name": "editable-layers-example-code-sandbox-world-heritage", "dependencies": { "@deck.gl-community/react": "^9.0.1", "@deck.gl/core": "^8.8.23", diff --git a/examples/bing-maps/get-started/app.ts b/examples/bing-maps/get-started/app.ts index 63ea3df1..d75f2810 100644 --- a/examples/bing-maps/get-started/app.ts +++ b/examples/bing-maps/get-started/app.ts @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import {loadModule} from '@deck.gl-community/bing-maps'; import {GeoJsonLayer, ArcLayer} from '@deck.gl/layers'; diff --git a/examples/editable-layers/advanced/package.json b/examples/editable-layers/advanced/package.json index 3d4f2088..d329bdbe 100644 --- a/examples/editable-layers/advanced/package.json +++ b/examples/editable-layers/advanced/package.json @@ -1,4 +1,6 @@ { + "name": "editable-layers-advanced-example", + "version": "0.0.0", "private": true, "type": "module", "scripts": { diff --git a/examples/editable-layers/advanced/src/app.tsx b/examples/editable-layers/advanced/src/app.tsx index 23a6e41b..a8446657 100644 --- a/examples/editable-layers/advanced/src/app.tsx +++ b/examples/editable-layers/advanced/src/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import * as React from 'react'; import {createRoot} from 'react-dom/client'; diff --git a/examples/editable-layers/advanced/src/example.tsx b/examples/editable-layers/advanced/src/example.tsx index 40992183..d4a3938f 100644 --- a/examples/editable-layers/advanced/src/example.tsx +++ b/examples/editable-layers/advanced/src/example.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + /* eslint-env browser */ import * as React from 'react'; import DeckGL from '@deck.gl/react'; diff --git a/examples/editable-layers/advanced/src/index.d.ts b/examples/editable-layers/advanced/src/index.d.ts index a0993ed6..6f290fe4 100644 --- a/examples/editable-layers/advanced/src/index.d.ts +++ b/examples/editable-layers/advanced/src/index.d.ts @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + declare module '*.png' { const value: any; export = value; diff --git a/examples/editable-layers/advanced/src/toolbox.tsx b/examples/editable-layers/advanced/src/toolbox.tsx index c5e48df1..748bacd1 100644 --- a/examples/editable-layers/advanced/src/toolbox.tsx +++ b/examples/editable-layers/advanced/src/toolbox.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import * as React from 'react'; import styled from 'styled-components'; diff --git a/examples/editable-layers/editable-h3-cluster-layer/data.ts b/examples/editable-layers/editable-h3-cluster-layer/data.ts index 93d08188..e70eaa9c 100644 --- a/examples/editable-layers/editable-h3-cluster-layer/data.ts +++ b/examples/editable-layers/editable-h3-cluster-layer/data.ts @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + const hexagonCluster1 = [ '89283082a17ffff', '8928308769bffff', diff --git a/examples/editable-layers/editable-h3-cluster-layer/index.tsx b/examples/editable-layers/editable-h3-cluster-layer/index.tsx index eee8696a..8c7b8c6d 100644 --- a/examples/editable-layers/editable-h3-cluster-layer/index.tsx +++ b/examples/editable-layers/editable-h3-cluster-layer/index.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import * as React from 'react'; import {createRoot} from 'react-dom/client'; import DeckGL from '@deck.gl/react'; diff --git a/examples/editable-layers/editor/app.tsx b/examples/editable-layers/editor/app.tsx index 5a56763f..eff694b2 100644 --- a/examples/editable-layers/editor/app.tsx +++ b/examples/editable-layers/editor/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import * as React from 'react'; import {createRoot} from 'react-dom/client'; import {Example} from './example'; diff --git a/examples/editable-layers/editor/example.tsx b/examples/editable-layers/editor/example.tsx index dd0d1467..61557f3e 100644 --- a/examples/editable-layers/editor/example.tsx +++ b/examples/editable-layers/editor/example.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useState} from 'react'; import DeckGL from '@deck.gl/react'; import {ViewMode, EditableGeoJsonLayer} from '@deck.gl-community/editable-layers'; diff --git a/examples/editable-layers/editor/package.json b/examples/editable-layers/editor/package.json index f0406bdd..db817a06 100644 --- a/examples/editable-layers/editor/package.json +++ b/examples/editable-layers/editor/package.json @@ -1,5 +1,6 @@ { "name": "editable-layers-editor", + "version": "0.0.0", "private": true, "type": "module", "scripts": { diff --git a/examples/editable-layers/no-map/app.js b/examples/editable-layers/no-map/app.js index 045ce7da..aec7d0b9 100644 --- a/examples/editable-layers/no-map/app.js +++ b/examples/editable-layers/no-map/app.js @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import * as React from 'react'; import * as ReactDOM from 'react-dom'; diff --git a/examples/editable-layers/no-map/example-no-map.js b/examples/editable-layers/no-map/example-no-map.js index f49be075..1bede54a 100644 --- a/examples/editable-layers/no-map/example-no-map.js +++ b/examples/editable-layers/no-map/example-no-map.js @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + // TODO Fix this example and re-enable ESLint below. // eslint-disable-next-line import/named import {BitmapLayer} from '@deck.gl/layers'; diff --git a/examples/editable-layers/no-map/webpack.config.js b/examples/editable-layers/no-map/webpack.config.js index 3a78e10d..3145e328 100644 --- a/examples/editable-layers/no-map/webpack.config.js +++ b/examples/editable-layers/no-map/webpack.config.js @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + // NOTE: To use this example standalone (e.g. outside of deck.gl repo) // delete the local development overrides at the bottom of this file diff --git a/examples/editable-layers/overlays/app.tsx b/examples/editable-layers/overlays/app.tsx index f6ade1e0..2b203456 100644 --- a/examples/editable-layers/overlays/app.tsx +++ b/examples/editable-layers/overlays/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import * as React from 'react'; import {createRoot} from 'react-dom/client'; import Example from './example'; diff --git a/examples/editable-layers/overlays/constants.ts b/examples/editable-layers/overlays/constants.ts index 0a70b2fa..e54a0319 100644 --- a/examples/editable-layers/overlays/constants.ts +++ b/examples/editable-layers/overlays/constants.ts @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + export const INITIAL_COORDS = { lon: -8.545295433037069, lat: 42.880392051799674 diff --git a/examples/editable-layers/overlays/example.tsx b/examples/editable-layers/overlays/example.tsx index 22fc055a..b50c2ed2 100644 --- a/examples/editable-layers/overlays/example.tsx +++ b/examples/editable-layers/overlays/example.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import React, {useEffect, useState} from 'react'; import DeckGL from '@deck.gl/react'; import StaticMap from 'react-map-gl/maplibre'; diff --git a/examples/editable-layers/overlays/types.ts b/examples/editable-layers/overlays/types.ts index 3d7bd4bc..204bc329 100644 --- a/examples/editable-layers/overlays/types.ts +++ b/examples/editable-layers/overlays/types.ts @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + type Point = {lon: number; lat: number}; export type WikipediaEntry = { thumbnail: { diff --git a/examples/editable-layers/sf/app.tsx b/examples/editable-layers/sf/app.tsx index 23a6e41b..a8446657 100644 --- a/examples/editable-layers/sf/app.tsx +++ b/examples/editable-layers/sf/app.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import * as React from 'react'; import {createRoot} from 'react-dom/client'; diff --git a/examples/editable-layers/sf/example.tsx b/examples/editable-layers/sf/example.tsx index c6324018..e74d596c 100644 --- a/examples/editable-layers/sf/example.tsx +++ b/examples/editable-layers/sf/example.tsx @@ -1,3 +1,7 @@ +// deck.gl-community +// SPDX-License-Identifier: MIT +// Copyright (c) vis.gl contributors + import * as React from 'react'; import StaticMap from 'react-map-gl/maplibre'; import CSS from 'csstype'; diff --git a/examples/graph-layers/graph-viewer/package.json b/examples/graph-layers/graph-viewer/package.json index cd4fe416..d4a648d1 100644 --- a/examples/graph-layers/graph-viewer/package.json +++ b/examples/graph-layers/graph-viewer/package.json @@ -1,5 +1,6 @@ { "name": "graph-layers-example", + "version": "0.0.0", "private": true, "license": "MIT", "type": "module", diff --git a/examples/playground/index.html b/examples/playground/index.html new file mode 100644 index 00000000..e54bd382 --- /dev/null +++ b/examples/playground/index.html @@ -0,0 +1,24 @@ + + +
+ +vu0?_wy zI~?eb9T4L&_!Kpi0}KrQ->yH@6NCJh#|3~_{=Z^0unzzFNFlaCdg$9Y{0kKo90BG- zT=!7Js_JW8I~=q~57GZZOy=l{@x6p}ayZn~@q@~%9-_gTlh`5bZ9Mk}Q8F(C#^XPb z8y=$nm7LtxLCF>AiupsiGza_@RgMzCEP$pf8n0_I4_7zvVT?umIZ7Qvg2UN=!BW`n z4}bp!PY&K<$A2f^?}2CV1%XdnusO>w@52YZ4R7vx(1Z#0>F^W)dk^U0JHfMq3o;5o z&VwLmNJ;YcbeF!ud z0~r1n6fi&u{DT1^fDmYmB?bt97v6wm-=gHeii-q*f`x(qxNnqPjvgLv(t?6$tbh%E zBQ*iID@yRXjhmpbfRG??QU1D{4crCc0kcJbHcYY{OO-VoFef`%4kIxQAq_Vrgrk$H zF9xCKtEmt7b%9ISamdTTE?$?uj&egGJZxasQAjja`noK~K67ah#-jx}VEZH p&k5)&J8rA+ArJ=E{H%PPzbaK z7SyXSzWRquH8hUM|07!z>WCWaam5Ri=)b#RSiF6cpe_RI>WP6Pu6ThZavm1ucDO^{ ze`ax%ynpBMncSq6FbEsa;#42BHa)yi|Cl=e$9?wx$cF$8RS~ir_>K4Yg}^%}rGL2b z9zVGKo{-Q1sRq~_>_Cgw{~58Xos+%K|B}=WE^Y6MLD_)HazfcSAOxM=5DxprX=q5R zp|Kt|XgEUcvMdK!M*$}%J83aHdpJVM-iBY?UKq|VY6BPJw-tvY_$6(mZ0w}O?8SvH zNF3(B> yFb_tXC9;fLhluz?4U z#w)qQapiCLR|9`F@K*zWHSkvhe>L#`BMtoX#)CkEuQ}e}`wVW3k{+B Z z9r&`h-hHsRrGp>O>oDPe7}D5*?Fwc$ zhd+bx2@EJ82oK_6hXWYD_TYr=K1_&TICBD{uM4gmBcuoS@20S^!GO!TD7Zj8%nR-S z@}am4!a`^}Co~9yaX=34Xk!P$B_Mnrg>uEiqab|7_76S|f50|2wnsc|Y#ff@gSvn@ z!GeF!SN9|TPkJb%C#bJ|#{>Elju=&4Fgyk7tk=a={Rl?eYHA(goxmC$!j7J*28S>l ztAtJ0jGM`1?BQ8y(VkIT>mm!dMr*BYAusm5%TjPu(N=5oi^~Lwb9R@=@JU z`|Ae}WOj5?JId?fsIPiR54ZV8egyi`KRmI g(pAcvO}fa=&lv z>j!~UIl^PT^p5g+fDQ7HkDG_~kq(`0uHxJMeqP`*a0R#q{=vZ2Xd-|F_|ZcW&;bAs zaNQ9|11Pz=`RuR6fn5T783Lw;h70U}Qjh`we4oYB0KiJ`eqV%~BK-&F2J)8z+dMSw zADk_?BCZ^4M+{{D;JC8D?>5E&P! Bg6+p;7D*BI01gLVFfsWGvMkt5kMS} z0Te)quL4?tK41b^0&wut4hmd%>kZrhZUT3KP;iao6CfT)0n&hMAP*=4%7M4Qd!P BqpRIgc0%+$`Gm&8W6$>-3bE-!wBOEvkA)x zKN5Bjej{8a+#{kSVkSCABu%77WK85h _&P1;U6MY>H!O~y?oO{PU=N9IEoL6%PThOC8bf^7R3%`x6% zvd8p~IUl=u?CG)mW1o%<9$O(NC+8rSBG(~zA`c>eO8$!cGx<02O$u5HJ_;oYa|%z2 zhZI>9? i@(%HitgCgYamcI1xb zuIJw1;pH*n3E?T{ndYVERpa&L&EXw9LwQF2jQg4AXFAUkpOrl8ayIE~D<1)$7@s3w z0$ 7ClAooBq!gtBrQS+yN{dT-NEb;j$?(g# z$h?%9zQ}tKaWVbkxGaaPjclsys2ohrTJD+Ls64y8jr?=@F$GQqJB3VzsY_=sIbX`X zw5TYgh*2z6+)$EM@>hCy8G2de@`KCGS7@&oT#3IjtjwY8pq!(;tRkl3r}9pfNL5|+ zv1*SRiyB<*h1&8}iL3rsKdMux>#4`9k6q)thPn1egFxe|MwG^&CbuS9vs??%Qqzjk z8q(&~cGs@dA=c5>Nzj?p71q6>Tdzl_XQlU2Z(UzeKSF=N;EaK%!3V?RhUSJZ3^$A} z8$}w88Vefx8#kITnmC!fHYG7NG|e1r-w*{}ob&Cc|MoXk+mDO=8 z8>?b#B5Nb-m)1KrS~kyZ)@;>m6K$8_O7K|toSlMQwA~Cs77>Y zB8ocky+a>*(uWefWIt`%L*N z`)2qN`oaA^++e?P^Ts#-Oa7?=kO13&4}qM4w*x1FRD!Z^9=qvsv+0)5t;k!e!A8Mv zZnNADx;=hJ TTt52++G{lI;q{JSJ^^6^T zdhO}!IIg%yaXayj@m&du2?dGFiT4vXlI)V&lNFNlQ&>_$Q?{NtJ?l+XNiBQM^E@Vv zIL#| CCbsKc|_L%pK_S*GM_aXa!^n3Mh4+ISo4L%s69*P-e9)3P@cBEib ze6;G@iN5J2B@rw>^J%fo36b z@yue$lETv0W#i?EADADwpJ6KuD_N_es~^_1*M`?o>)RU-elh&Y-jv*|-!j^o+V j(L0keZS^*+V^5jnph za5}mV9fW_t2lMXzG;sh(dj~EQ4+59AgJB#P@_^TI1#s^N@X}WR2rgVWx_|?RwZ9;; z4?)Pw!Kq0M4z~i%A4$#vz-|u?w_T3I?Ph{=oqhm#w|+2}$5T`1f(wu5g|$_$^^9r; z?dSi)1COa;|9wmi9t)n3Lk%T>9{kAkn{5B&nq%OjnUv%hDe1A}$H0r0^4Kv-+7r~& zwA9qU&!3_A?@z8Fr=U1Vcanpip5uS> %(r$-yiG3RjK1sa%GfnizWxL|qj&ToeT2Rvj1jPFcL80&! zAfTn;5P?#&E9%m53fp2XDCsTVihK@-X%~GM!v;sC2`OA^FRr!u*)dLNt+R51>!#>s zI}dmLgL7vf;Bh-NVCA>)ll=ec=y^Xr(6sR6U f5IJyGp>$1z3CQ=}9pOa%Wa9&%4xUOs}>2pa@W=0}0kEXB<|OMFtb z>Pd)b&tc4suo17z2HEZxpTy}8oGCEO8i+4tk~#BJBs%9il1wvyCYc{JrNz&?qV2}krp~wzE1Q20t{NLm;bOrC5pK6Q znSJafF;S5cY R <&Q=MDmTDt Nhl9}=T72tQeG!?D+6B!;gZz9df#P1zjx@pREBSLC?7nya%bd@K`g0ndYih536 zo;Zh06?2MCo869T8faeUyVK>@(iuJbRjfJaAHIhWjnFl^(R_SNYJls@C-4m)07UaY zRyTHU$;*U?43v6Z+o?|UIa8;U#XIcvsgIj4r}lEHExS!;2ALPjypHAz&C1hu7QQDf zhPe4AhJ71%603Y3TjYc%JCKxbRSduoN>_d4j(yJ>ws<1t)_yue!?>@FIboX+ rIOse+yf9_yNrurNXoKo;k(b!6)_n+&qeY^4-1|c<;AnR9`QAuq7s? zy_nDaG3Y=P?JQGvq)TNmuSJrj^95hJX!hoH?arQw3HaJ(^J M3AlZtmc0Tf;%{w1n%_6$hXc?- zU6oJj6x~R?PZX^l8Ny9f=YUYpdrlLdis5S;_P(9L`r1qAPEoYA#H*3D0Ca};obw9r znViT{Y3C11lw TKpCslG%hApceVS6gQC^-IG11i@qE_93O#GYp#OZs#N4O9v%l}XSfBH(bBCLI zPoG8QbdJV=<=uUGe(UN`IMEWDa=vlp&y~j(r4bdCXDr&L+8SnG=6o0~kTn>7;8FI) zLAp&jKPg&rNviKE3D?|@fl6-YQWw;Z{OQ_+gtiJVRcv+O@zU^!&Y7)GJpe%OIUf}< z&poUcUd7hy+#+W4=m~Q_a!8-EcO^?^c%@2Fc1mXW=f!F7x5%`5pAV~3?RZf*te^6} z2NnL?5nq)n@7Vl$O|B`<5aXDo!#B=!-XhA(H7X*wPs20;ZP$^no39(}a7~J kzcE|-#P;RetzcRtiab4Izsv+QNi zwm!pmtLLSjuFWldJS-O b+HQ?q}xUidPO_hgZzoXNTp2;lC-v(dt2l zuK_vFcZ+Wey9JTgka?PMG6})`o_#tguAFikkx3$n?Br4nm{V@ibI{0&f=2&}l^?zv z9-BXt46v^4L*rH*!TEM}YX;=*BEFt4+we^WVilFfbdx!OSyw~F{_B$vWdpt i|}IJ|{eW`(mQ2{GflI zp2fPrmp4mSq PYHb1%W@u(;YjM- z^dIg}k7Zs$kpA>q^T}>0Yx>n?d2gj^Ue7QYn_G6TCs0zR&g5F+uApTI0J&+|S8*D- z{)XmFi%WYkcQ9S^s 75#@B3^n50t~W-;M2Hb30gHaL|(zWU`{)mvvhSM)_YapsQq zaL*)SbMHI&4c>&oO-kSkG)rd79c)9fln}z3_XeJr&!0bmb&TNJKKIh>O#dB8Rl zaVrt4q|A2$wSOyFN3`ybpIH|id6;49pHlcU&P4XAi9dsPf@MVTStBZqe1jZy8KSx- zN;%(DPv@l^ (t;wk6N9serRx%G`-Y?4dmww~H8Zx$1&!#0~|F{NG%21|3H z`Kw*2WmC8Lr(~Mdy7jhfPfG&F1+~&J25vx95=-wuvcpR0Y*CE=sr(lPU+$v#6J>@) z+|7BLsj`OMrjFfS7`f&% i74zE8bj)7yV2d|1rXb82EW1;OxZ7v(2B*z IC B?E-*ZIwyk4o)F)8IRV&3vZq~$~-w9Dw+%Wmp8*U*Z)6s1k z(!#!E)i;5SOpWS9&SoUE_EZuzVtl? +@m4n2PYEYnm zbKr=3;#UP+nbhb8Cw$emDy!MEB9(mQ=a!U*OP0lU 1^vl|Hn*YL-1UICo}>+e)rC zBdeeh5%*Kb&pm9Sx3SP;)`~0M6QlF}{I0NN2;`oLXwbjOwLh7VxA`$plvzb{CutsW zMs7Z$hQ-&j%=4 ^cW>NHl^SfmC zlSu+)&dU>(GK$G2DF)3v GjPM=c*T?Ejp$q?N^!3I61zT>dx*<{gUnVS@}!fhH2Zariu=7NaSsw z^C|K}7T#t(lPJd(kC{oLl@y;3no5!S4xgJ&PN#-;&!@G2ifc2>SScu%;6B#p4`cS< zJO}E(DBwv;#k+Hn^><$i*J%2rHup@#)21>fH^rTcxw`D2okwMykYE3{z4Fy~#?@c1 zGltjRcYl4^= 3aI<=9SIQrMm2H8ZPdH`Wk*p;p zD-g{fjp!|iDwf6;yPBg~KFx`Enpbi&iszpy`f^$`k7Zc)syIh@VR&+|N<^qts-HvD z*6HSr`J0a^bum;q;LO%bzuCaii=Oz`zcw6j@P&^h&gFf5x$338bi9Vcxx>#We!Ivd z`dpotYn_)EW=pMcdc!EiOnlDwZKqz*WQv^m9I8c1U*@#m`-bk8vTFa%xi(hs_SqjL z<0? VqO*Ig{~4?z%rd7B$hbf(XK2bm=GtLmO&Gse) FOz zsrmS`%%!tyGOxdM1oQRBos#S!E%9};ghyqc`sgg )G;(r$L0o8F?e@yXN1GZ+KJ2~{N9nf{p*O4l4@A1vy13f} zKGxC@LCZ1jTa#M%4-BbCcx3q9FiCIS-RlJDphoAW)W+`~J=Ca%;qTTGt5L&SeiR#Z zzG7yA$c9@5p<{$RUb5E{^EkjSDPh9DH-X7J$3oe%d63|OSRohbqnynHP#>Mg-xT;Q`>CM$n!zP zQZxuVS#44=C`i(*0#^#A)yX)mta7bnDAtQ-Sic{;#=7*4>}8zeX36ZdtxJ~buJ0pJ z;&8Ie6}%d`5>uPMkWujE*VSS@&b3E5d;@m@kDEoH6OPWYitYYi4Z8&$r3&Z#hh0r7 z3SXGd&zH`pDE}MqAHmKgoUt?Kw^`}v98u>ek!VhM$_R9`*SHwcZX;)WcJ#o@bzhNT zZ}2niFg?GtNs_sHA7qkFmv7}aa|r| Iz< zlqP6d5MjFne#J?iMy+K -e3y0)gaL&9MrTAb5mcJoLr-A1B)`$LAxw_~arY2~@_ zlb+8gt{Q-gv)Q-XVUZFescD4;{NVe3)~LRJN5=GMz13@G{B|*R%uX~iwv;S8QvxL> zN?Y3{+$fQsEwKvYJhGpR(=Q^(V@GVitAn=V3M}1}3_Z&0v4iRIwM#YF9z(7zp~Rlr zJVI}gQE6A*AUwp!(RpK|d|zI~c5`=02$nc4B+C4e?A1t%DLs(2)iM|b{^51f%ud!J0FT(|2 z;T$*^q#ifxI BucNz*U>nC;!IwpU?Y$48Gi$GR4g8329Sa z6Xej EpY< zAK2xh_!nRXW%K;(mD6 XABDL #3X#0bI`{Fpp}Ka-)>^GbSqvjth_ZIK=a6RKu4- z==-jfhu76pO?G~vdm5Ubq&ELAtn^d5AOrX!h=py$i1H}BWn^RxxVS%OVb|33kRGCB zj0B=G1TwOc-65kZ{(k{(y*IH^q~dq(Aixv*;QEPr%LcKayar46>@7vlNN_)+FHC1Y z)CxkWS?NXBhg9C#*GE5#m;nZi9;XgDXk+pS?UNzA0jZ9*TfQPC+z~X#PrN3^l36aW zvu(Bx`$i?O6K5-(p8p@1bfN0c=#?Z=;K_?~n=@BH6Dz-Q20NfHJWyCRAhl3^d$rHU zRur6i)QC &p2^Fms5j?UhyBffbBFk1iIbv#!v!p#(Z&hGtzF zp8jEs)8e+QaBt1Q5(znsBI)J`RpL&?H5Xi4icB>^HEuE3J=(H??KWKi`I=X4TOP>? z<~daH$DiJo6-p<)hc5gBFMYwc(SqcVk5xKU`o}Z?-NF$LbPgbbVq84*;{eCsw@2R# z$`^eg0a2CBT=|>_E}GpEb8ICn>@o_^Zb85(F^^ft8x0`$)=Q|lu(|hDGLE?L5d*3> zl@8Uxc1zfHa~f$xOeQBIrq7xejzR-x->|^i&Cmw) ks_A zbGYh}s8?KBK0z#h(fXOXw^Kb)7C~ERF{4MZV?@Nx%xj5RhkZ+s3E-|Z@c-U!x>7R7 zI&BcZu^Il@dcjePvAIU}*ec;M`a<8H-?p^d=C^vWiT 7?Z@Rw9b>&@COmFHv3 zXAgv7hD5^ dy%usloLilJ`c*1fh~1OR>_d>??SM z2kQ?C^o0x`rK2MiQGo{;Ip^niFu!haByY;kerKek6ap{lRvAzkWq;V=vHfMzuB(1F zP_{PWPFzIOLx-t9KB(pnm!w9DZZ!;2hL<1KRtS%b-JsP)U!2K%7kfg$z!%~_m;ASU zf8X#n2)l_&aX;iHe9S~-OV*b}yQyE^iZ2-LY}1gU=>l08h0a;@x*3vaSbE%BTyi^N z#bpEN7Hpv;fsO#zj9?$!LEOM-&W^y6H5hPe4T{M0RX!!zEN#A`5%}Upr!j_d5SPHu z2t=Z^8ljewrk I)IPr01t1=m~3kXla~RpIIp0wn*;-BZa?}!RSVf zgUOJ_-m%aXA|>hJzaZ0B(icSuFHFKxncHJ%w`t&kf8ahIB{-Cg)XyQb1yT(hB-Sm$ za%@DCvbuZIDf<@Dnv{Nvy-`%uPNMhT5zV{u8!AD+bm8;<6_fx8Yt{erCS_Wc8P|*) zj!?iD-tqT{AiE*SiSilz5Yt-&om9m`(}Q|fS6)g0Yd VvnsSW@h7sP zKo15Au5(o{e{%Xd&PtsN2iN9}JlMea*y#LMRp^2qc+ 8 z_m~L6nq?V&0xoS!QUz$o@*D{;ZlM)c0us^^0jbAVxLJ0I(e5s5L#A*>VLH{s2>IDq zXk(WG&CO|JVRnoE%KDw4wA-Z%&`x40eoSS!Nmg4sH7R_=RI@;j+JDC7^C*5l`H!!^ zOV&;tUxuSW${k%L7fi}{k=%y3)Pn$+)~)~Gr2F~EslcbaJ}*iLZFal#z!>Y**S*mF zu_EZfx;fG-H{^AWwrp0gHm0bcx2M4TnlrYcTK}wxX#*Em{YY08v}rxuU z!A{7x7-2%981*dl^gy238P~N%uzBw5twN^gzxve2>dR&pcI7&lg6@CgQF>hWTX|!v z3&aY5{-$V@CvC$-{+EOzDw;V(ko@2|$EDqhrvvtsxp&(i CK)Vk7pU95)DrDXX#Bg829_te(@*)W-PY-l`O0$a7zJ zwpw-<|M&=2OTLNCfQumY?|uWE(H@qlrH8CiHbH^XQe{?<1@SL$#LzAx0 CRuGeEolP3}_{@$9JxHfsM8VSX zJ>NXM-YZm%c`4h5I0l|>{_7a(#vDf_Fvy#QyUV)nR@(3rGHbv z);k#-5qWkTGJDt%w5NZ3dE~U&ywn~4XIO1I8J@y*Sch }qZ1YmrR?Ppo#e?zC^=HsLxj+8JIKXtxBFj?4}iiOqTQH u?eb%cRTNH6t^ #a`H>j~koM<{oTqK2`QyVI zSURoHw~-NUco8hLb6YN^Z>4?Ef^x0<#<~AwkMv{=SihH1vT?;1^ &GGSYqif zwG820cYw$ZF|1PjWUoV|B3vnuteOr4zPP`pC_pn%`x>9F$xeP`B0a7}_*FgiJnYTP z6LxNEg|9 ;C0v zTWm%AVD?OoeIT|XNa~{+L{Nkx(hr@21o(tS9IP&_FST_&M!l*}$nw%owTv9Vh!j}y zOOkF^H6L#Su-;k3!p%U#|GwjYf6^mc?9Dy)CXw41`NoKA-g&3Z(%GyaA{NFwW#;1W zG5nQ<)irmgPqCDPumZ~{tNa`>Cqg?MKPR#ZUx$xjFp(Nn2E8@f?(s&E?@Fm#&bZV7 zu`Jf5G%B}U<&DThgkM;Jsnf8WmsP4elsiLq3W1-_Vd7TocI%q@tY2IOv W366ya6>plAPt`a9*~i-e{7#9jET|Jp{DSnP*7 p;I{apC56%Qj2>Vw)eBNNv4D-s|g?e0tK#kzO{>gtp3n-I1k?B<~Tw_`Q{ zhAk6JyfIIbUs==H{{t~Ptd_ng$rx4_aGXf#f$8Dmnk5E_@H-5NpmSl32{uAj(V9I6 zZv{1tiLzFqHTFMd>|Cc_m3DHDtq9IO-Cl*Hk|_dYFDOW(3kXJ_n3+Y-RLKo{Ro(GN zN FZm0!oWmd6rz(q^+P3XFGrmr7R$Oi)5}85-S8$^0j*-&xk34>>;u zK2Y>wMMS(t)ll{@4qOf27XSKw;$Y3Vw@we2vuQmm=1N8K6`?KT1QYX{-qSO}Hjr^h z<*fk!prjXOipw%w5sg;qam540m5PUm8M~#msgb!Zgh(VjfBa5)qNFJi2P#$4L+alg z9vev6yx?tUYGUuJvPQ(q4eeXg%V@09AFP2b&;J*?v+wQiXRSH)^TKXbG|c8%EH`SI zPrc@MDEG6pNso}sGIT1-IVsvW)hnvRT*0*(?AqV5Z7OZuu^D6(RMYzyV^BO;>`m&V zu1k@(6y5FL`*ERC#!&2L8S3uQXQTpGGb@5bW$mimEX ;npK8|oZ)SM&*s>rGZ;k{d*8Oe#p?NmrSh>F;gu+HV@Sr=g{t`CIsDVn*b33! z9f LLiMHa^yzr5PrCIT4@WEOe$mb(H_2gFUl_PWfI1-1o)79X# zIo+1NwD2&;Eb6irwk_XuAVzLOPJz7$!#`9L?{>GB>qS(}_5Y3jxB#<~a3Gg=dmO%? zHz#^9Z3!`U&0@RCk3>NhP-e+DcEYe~V5DqWL57dHh0m(j=*W5l>g;Zi)lv|bUTBnA zG1*c^G2y98yfz2!+RjXD z(F}^cG1v =NM$kL TJN zI>lSY{x`?uNL-a;O*|=;?ZIz651mT){ZQfzAmjcwb+@wFw+2Z?&+sEQTEHZW((1QR zc#X&sX`c&Y^!#j`=z7;$xkN!cu3J(gbekL5bYswZ6{?Xs8Ny{;s+Vb5_ix;17= rIB}x=%{EVe;Ynxkp2`-I^%<$^DRl(1 L%1$M c6#uUX-SrkkLc^{+|_r zs~*)9Ev{Wl^4#NmAJ?8#+i5pb&Lbm>#9MVkySf(Z3DW92m$c(0Xg)=k4Qc?&W{ zMZ=_~?hxs*&u8}Y2 dxT<+QtH@RKKwF7xKz3s!(MqrG7ja#SV+p zt;#viFJqWf9unC2%Dv;D+@O -EjD5iK*H1+r0rPw$N!4_-3emGrRg8PJ5=F&bQ85VnxnXyPu@u9 zTK3K=O4Qfq_)v@+u3^sK407+)zJJZ`QDb5$PHOotfcWNJRAVn^8JZxxVOfwgrw}ZH zitqzhx}uX8X10>S#kQN1$a_O0UV^9EI*IA%iWNINh2C)`NM{g`X)L9q#@VIt^@J;K za4Xd>I9ST#BX<(pA4({;>YQYpmB3VcXrTLGB0^C5Nt_%+;lqttP5oXQOm}OU3~@e8 zTE_nGS^S;?)5yFdZ5?CB>NJ9xN1brZo|+cw_qs{+3p+A0!EEd6D=wwn+84I_-1wlo z$*s7;oiZXXY1$U7QsCFoe(7+#(td9T|HEE?VS8dkj999XXa&pH*6_lrJ0u*e>E*bJ z;#p})HlGZrGaoQIAteOv8TjPX9g)72%2E!PcYY+jX3_X2^aEY`8lYN$PM_4%9Cofx zZ)qmzK=j#3PecCrH(+9GL&QW5uz{yml$qjr3;srM(gZ1)|KwlO`0a-pffb!FRBwN% zd7Nk?F+#FNZq$?}Y*->q?*@b8aaPet*1gc4uZK0paJ#XE`o93idK^Q_KXSj%qk>QE z)$HN4dyI;uJpGfl{HmNuiftu8htX2@H0sO~2|^YlzSAqNsi_s0;UZS-m91A=YNgSL z>aCH5G}FDY|Mcxh3Vp})yrRLMe~68m8)s)}NERPO*=aNYG9oBaNwB ZJ1L4HM2Qa-(g$Nzf<^aM+}86A8QjiS-HO6uIEq(3hYv(n^m zVNcoz7|%r8bP#WfV2q{rh9MV-z$y5)oKNO@gS!mXH>kUHKjZdN;Cye!Qs1UL47%bm ztH8ZC+^xh{JZ5YI6_Hbr?k^dp%%Cg$*{l4vJoiEFEj4scZ|SbC)U)%!D!w5M+tjz; zBo!S#Y9JosQ$Fz(BU|m4Xa_?8o9^!gL+Q6c`TQ$o-~Xch^Nr=I-=6CCy870k0-vG1 zx`ZVx?ESiH`D;?~aE4M|x0h<%eb?6x)^rm1zUvmgxQE1y*s#)0UOH@Tl3KLGwMCj1 zkKNzgJ8Gf%;k1dw<%E?mhzMTc#&lewq=mE#YBw2vA|B(t=3j%{dsLwyZ&^vPaxluD z<~f?TM~&?&5CY`is| s9mrf=btrZ6${O&}|%eK7w0n z!`;F(sx^_4Ky`Sk*v3*WpYV>DzLQkaQ<7rRP(j+O+q1V-eYDzbiA^0HMT6z416TV( zmlPCD&;`l7?oBRGj?dI*A29)q(XUiWL?Q~G?9lZ>K0#!D6AVI__J_9O3y1O$)5b!1 z4#ue&;iF|pQxgTzlv}^hy$#LBL+RuIJvIDiGZ`H)-EM2}F%8Y{U<`e>5uh$Hvoy5s zs&r{*7tNry6B=m>xl-Nrl(;tHk=0dwGklGf9uY<{*Wx7LlB`0vpE;<)B0V}VRmDT1 z!Wf{$=OJR@(gxd=Yz)$+5nMkz5`5BOk|+dTo(@Ar`kJS#Y5`qThAvR-?34-||D^t> zBBa(AL(|4l{}kTI2fRT#yTG*B3?%GQf}qHX>w2YIw;th0!qM;MN>va dOrjBVpbu9Q499Gmp7lO^V6>HT?!FA$#wUkows?VS4$=+WX+q zt@RzNGKTt e9 zbcpg8BbgxLFb?|=5tLn*WV7ECM^COYkGEaf^QM!f4I}Xn{( ;&5V@7y59H|d=W?0-{?Oiawo$7gq}yv= zw`%eYq^lA>6HS9Vetv6uakjF;gyOvAY7yTM$p8`|EDjZg*hD?{ad3#QXlm=~UZ^%4 zEIpLxot)V^``h)NiV&Xfx5V1CwH+$|0~*WKrzYy3-8#bP)dVr>#@-d<-lmWeMFe&o zddHpN;jPM5AlTL9!F7;!S%!7tm@_xd0jyp2ZR{SMBB=x;bPCL1UDX-{sZxxO8ri$I zcYbRKMv(nsOH~6J!t&NKrk*j0bCynr<(U>aj5i{=lX84Eeg7b0qAOX6R!KQm>c1X( z`VXx8FDQiGP{)n$SGwzKutY5%4IS4dinZr`hi>5zQ WX}T`93>iFsB^F9Gwo8&f37sc9>4Fv;k{p<-);BFZ%=*H1*@ zhxzXTnTKJ&ed7t?dinp1|F19fdq&Ioo^se`qQ vPzfZ-jV}7PGM>j5a`wNY2zV_a}uG)?ev4E%gcMo9EGaKM*;!e_xT! zw9=Kf?nNC!Qx4ElZtt$~Tx9VPt48>bp79GDwJ4V`ig`=-7K&NE%zlZ<( z^SHoyGp}F4Gigh1#A2CC5d=2FtVDem W2T1 zJqb^Jny-kIYj&a8SIhK}T9Jj)l?b`y9Zd`lR&MzH$@cIJEuW>#Bj#UYcpq6V|8|q- zRdxP99L&nbxAH &|(SGF z@TXUuZbd@TPIV1NT >$>T5V#etSRdUqhbw)4nhE1W* lFdw^Tf7EB z2bA6j-lBADVeUTO%Q!8p(p!%IW3(6rLMrvj8_HZgzKy$s)Ia+;41|gJkXKRA5Z<3- znMcZ>!pV_J^SFKn_GSmOyLUhAGN95&+LZc4$)dC3;Gi gFOpK9VmR;` pp5U5+#GPSS|Fuj#cZ#yl-YHM=cQfXjY7}01D!QK}m*7oRD&+RVu ze*h@H3l7<+Q|SA9wf<3;j3h1RlECkI6<7ZupOX(b6Dhl)tL)qfPvIC&UFbM|$D;q$ zLXc7Pdy570&3chRcvX-hEJ>qEW#TV@(!?sPiIt-F-94ZUhV}XJHmp(t<=B?-d0QZNWIXg0^8AqP}kq`2|FV@pS+kfX*-%9mcRp%yfn5DNS zFWPU)jT(0^deQ6lW_HXqib!Ucw0L+|3Sx}(g4Km0XanQ*YM?p&*eU?yR@a CVqm+up*z0lw{8321>uQFW=psO@(KGf2-E91j~QzWc^=kbnk6@ zIQwlSGy;^ztiBj{ Laz`B`+;+i3kU<3qND-T?wB3BdwYfI z=eZpx(ucp{2s<8&QYQZw$)9iZRevYQ^BF(};WzFdcmSdV7H@hFC8_6x @2_L%#bb7iC8TB9^9KyC`Hdg6^YqyF+ z>J%eXKvpAj!`MeQw%6eDL6sD(220nuv!B0wUV%Q#aoO@4H>-E!e5~-HzVR)+FgrvX zqpK32MMnMq4+?Ol(jaSbYu7iW!iS@zd#!6?tkI{Q>`5FKvDuPbSu6apEhvn*LM&Aw zo7KNn86=g&XFY4!`H>esT2;`47;`mCzf~bh+!->8@-&iu`dYjU+ne;%Ofts?c15GI zAIG7%#NH3XT>b5x=+A`Fz0>0sC5hzju-BDUbN>|2yAxkC(tew;bC-Sk{H^3uKp P0gSZyM-QEZI)ifoKC^f^jKBv#f)up$$E*IqegI=Svw z?eJP0u}gw>rvz?(9x~3_nW@NOS5ID@hc?r%|8I9K?35aBK &o6FGgy&a#Ao? VTU@l$QV`XLh>aBsQ}N|>eP|1&EQj6FN?lYapFYyxT?fjin4~ OHjA%su>__mU?O+D=X`FHJ;Em2=kT?c@mM`@~};%3mUk zI;lMGfR~M4l_7TN-97!GL&=}fK ;F6Ay*E%T2aiwSWO&=l+TY z%FUsvbs`QtoB`qE`1qcP<~o>iTx|a0Rk4B((oCE$FiIJ6!dW!`zT_X3q^}R1flv$S zg}TYj1?R87$NJAfU$H5FR_yOzn67})of1-jMTrfSLj?p&H4EB#_1nQsg2=K-Mr^sP zU27}tf0O|h>5qP&J$4*$>=fYW+wwZ==J2oZYMO#?M$}aFojRk@I9Z(wu?8~y3P-Xc z^(wTcn Yx0{pzExs?9hJkkwedBQxZ`SQVE+~^I3)87E*VAC-C}PYpi$Kgni)!&}3+< z@51uh8TjQUA~ar=WYzglYLQ5x|GWQ8_^fDCGxNR1SG95?#8j`7EZIJL4WNGBH{qu( zm5#&W;o?Zct-iAJUzHB80uLGZ0D1@~4`dRK-9kGqK`m>|we5Ue+r7?aYkS7sbLZ0@ zo^)~7jukdmMeS?>nwnWE9^Di!DL$U1!ejIzn!br}JG=-n_DNCx4cYvZjNOU*rBkXn zQO7bkXy(z%cQ;?)tpQMTocEbbcV&I+Vva}m24j=;J+i7lz3n>{_Asq-58pnfcOudD zWk$@2TKJi1^TxRLaM1W%WAfWR#YSyit<8dazY@L5P*v2Ho%71F vM-Ms&>D#HG`7&8K{6ZsZhM=Ihl(b!Cu4RhCTDmG_bE3o_OFuBiDeg! 1laACVlg1$47t-CC84oQs9UAL{iV1;?xG|Ih*5O;}~<>#-Oq}&37U^ z&-|cW<}o&S;pw3+*vc>+*_d}d<0H(Dn4e<@Zv;v-yXVHjr9n_bK%6%R>N*EV==%>N z?YDZ~9}Ftov#RkPyZk&i)Uk%KJgWSsbk6dp@8>+{sZqM6p9e>$(RvoX-lG(F;jT`c zXe?(usebBqH)|(^k&r!FBZM^VTJGi rOL_v^m2y{<}U!}#j7n= z;kedOZuh*k*vcoGZ+Wdg7L87LNI$Jxz0P7@&UW4P^uGU!eBh7n8G8XtS7E-Gj2! zb4jQXvjsV>iAx5wc=3|XyBk*rYx|X@Ghp?v7cUQgijiVhx_i=5-+a>vXT*21NeKC) zc4#)(GXh`5$|{y>LpwPs>=?z&fw) M@e;3)Iy<&uI%LL z*!SlHDlX+#oM@Cm>MB&Wz-`t=W3sF${2nc&(0cz9?$I+$yZ+sL?~cCeV8m5o9t?B6 z#9yF(OBXiTe5@9!03)*tsdXNEC`Jfmc+Rl=(+0nLU6kJcSm7GCziu9KwKO|4LgBQE z*FD4Qy|YS6#ZduEiOn?y*JWn=ORFK&)|WQ)zVBKM`Juj|z3WKLN4G5R+*1>3BS-e# ziSa(YF9LnTBg%B^#E&fRE&yY#FIuJIhf`VlJ;TFHZ_(N?Rzo3mxUG76nL&PW8gQN; zb+S+E%0hm<|M#^g57KHg$UpxAq~=pcTTPeRN(oM8@6ed&>j?VWodl9j_7lTVU;)0j zTu$f#OxRtEbCDg4`Pr*`!ZHpjtS7QA<$8e6RroPb<;1?s-X!&BD6 o;m5s)q499_qLQ+5;awNXFJ3$ z^XxH?`|byVrcFdlJZKz`*go$&_M&XBj#D2zhu9X3_!Y<0hvc7JzW!P*RZBU`di-IG zNmu%*lmJgVAnOx=kn(aS@{+@;w*9qN#iFk5?k|_KeXd^qxj7d41-@~2;uPKf5tgE! zj|M8S$*FT*`!-=G!G~*)$zdt`^)}VRRbr4`)Oryt^2i%6BaaoZFB$j~KbMxEcsY#lYB>&a7D z?RKf-8hgaR`fc>$eNEe1iJn>0TevN=*c*>dgKznNVdHmy9wW79sLAP{*9U$V499-y zjx~Ll{O-p^zn8qKyM4f#pFkLSA=AD;yRcg0Bime&ND@ro>i#PGQ$d@b*+ouKq8@m| z%)yJo_5!cAa(j6N;&R!6&h$(Xa`OaK>kGVr6TV))a@QsFB|P6^Q~yzJMx-^*BSvx7 z@_wGmQ8ISMQ;1_ofWs;xD@yX}`x(tB-Cz#5yv3`hFS}2lzpfc<+(8yhjUz|pCFG7< zLj4kkg&}8UMTAc8&S>FJatT@e1>ixk)aK${iDBKhPSSu6XqN5v?BBu>S84Yq?o4|* zWG6zBk4WuC1A~{a6$zVa5Mp42t)_dswr&-}YVeBFpyylW57BGrYknBeIOWR?NEyHN z7TGM+Mxl2(2inXUte5AV7q8Ma6FV`9B)nl#NYV?Voo?|w%daNeZ&6j#&sX_ed!1F} zqJsNjd8kj@7E|Y6fJo6(`N|ir#y@%gt3t?@w*)^TUUlfK7;SRouJpJg6I(2*#KS`@ zvuiPW|J0;9Kd-V-&LHQGtq6NIUhnxWsG`DO0Jxz*%*k+x=GZ)I#@om=GaDHHb3rzh zgde%C9uG%Z@-r=De*)qD7eU~ptZB_!c+{@~b2+C5&UDS2&sYVb7+x1hT~Qn;9Or)o zfOwph1!AhV@;?9u(XlK%k%B6AXSnoR?ynX &e|vlfN%kFys*9zcW<4g zvED{Y>Z5)sZ$$1(!prm~4w&-HiTqb5b`M QH%G`Y}Ly+wtjsAL1ob{}t}Hy3Z_#}PsDuAuirE(d^A5lJ_yYz10l z9XoCBW@;)G$hlgw$;x8;g!j4An>z!e_Lq1ZNhA`=O}g@l-Lpp>LM!sH4zn;#WcC^# zPwKO83$mG+BMGiPV7_+Riye!~$F#Ft&}%ooIg7TA{&XnPiNfV6*KJL|O-wIUY21I0 zTD)UAx5w`Vyefa>b4GI!H=FW$M4>hJOOUAhL)MYlcN^;i8J1?$Q_2#T&B;DN=RXkE zH}A~qBjk66XqQ!T9sL)TCv`1sUpuY65F1b4D)?z|BmYpl i7u>`Q&4#ogHg8+`diK_gYK!kWu+0KnxUBxS>KNv#CVpC5gLs(BGL^vT3cf zBmW6;__`qPot}8}nqc*W!37bMFq2xvLnVyp^Qe%Z%lwa|QQADGfnYaF?aF({;)f xLhjW 1yFHc+fp6;I8N@uwRoG$ zRq9s~?MbTdBB61ahsUngtq%spLIq-A;cj Sw3iCBYDC zg$e!s;%e4J?`*awQ^YyPTjCK6dgiZMVqFb|w$8QNWn5in0QPBhl{hwEZmb5fa|y%? z%@nw~fIa%YmuF}!*XzF1t$kYkie~X{;L%AZG!ts%p)~(HJvMWqJXh{3umlanoq^iv zdv FFa1r=8}2nqI0|pns>Nv(P%#n z-yTu$J6)fiw=KU(STrMb$aG*N4xF=7Q)5*k69+s4;nLaR*|;wpT_+x$X;~c02Z+~3vz;Q6 z6&LX&maN+)HA9S48Ht@F!47e(|DBKLmBHM~ohO-D!28CQszoc7Xol_F&MVxpD#r eY!pLCC%66O+m-HVC-FV+h`Xz^WsG}^Xo!rHpbF|#zW+- zZx7lhEqp^#mYW;Xga_pG)e&OEV;!i3yMxBh;J0-57*Fdhef8D8k&0mxF*xoBBLNeV z#nJru+Uxg2A(5U8gQ&M2+260Y@ RXKNG;CVij1B{aiV_qb8#tk~dpCMA1m=aR5d;cCaryb3*q4 zk|6OaiS-#P-l^g^OLv%>Lr!&Tl71~CNbD~_7tbTWam=(mJ@Gqkzu$C~C1Uf_3=Tqd zB!3u7{={S nl;j % zGwt@d&>?lkjy(8+Ra_yr5scF+MvQ?D)U`yn>zR)9w{>TD7S)xo$bw9ePCahyQFPH5 z)eZVSc{YKhhCh`#3$Nc@F*@(9Tl11y7{myjNEFP7t79|iO?-(tIhy6b<{<7fz1??C z`j HI&5*$FED{rxXQ)$lOdUO;d?cF%9aNQg zE_h!3+ymkH6T<-uR4doC7<07FYtp-s_p1-qNXH8YxedFPxIJ%He+%}gJ^ewK=?b*| z%VMfm)EUXEdOpKaF}*w B!c)8&EAaUH?LNHk!kgHD(1C(5sR@BBK!0SvLCoJ#b zZlro0Z~~JvN3duBrelDObUgnN;oNOQ3&Xqbg>Pg< & 6U+G+S(;6VYvUj`}LSV^A2Et;; zl-fOZ!($_!#ry4(yw8^tL4(BrF2%Z1+Q-D^Olvy@O3aCyz~Jlafd0FQkVRJfS=I>5 z7w5;g{N$mBB5DqGyTecYm`+b7hN(S{L*{t$KZJ6vOA5R7IGyaXW*A*mfpfXF`d09C z3<>AiA8Lji5r9#%{8F9qW{$_biywa$^1tL@2+x%jaMdpAj{OnY>9 *G{RW5Fc zJ8j}(Js bzpfd}3X};L@{wAvDj3S}~I %(d7|Y%$xhW}qbFS4b5+K@e^|drzW%uWWi*+UX(I95o%SxW>$x#|qqhaDEBH%r z6}w8-i&!c)UuT>J_ b^%UB}M{=h =M|A@QdB zAD}5;y#W)w_j?%Evh<`47BIa$l?sT3FZ=OS(6l;g?D?gG`mmHIxZ*c}yH`(hrF`Vo z8vj*yuTGZ!KA1X)L_+AD_s?G0%uIZEFCxS*ajsO=!Rl(^4?UX9yxqWH#a{pcxfA+8 zkOe~xIa4DfCqM3M-Tez(%@Mxn0%FUvZ!rcd4(mpN!!h&sFHA>4Qv{`Jd%n!P#NIG^ z%sTk(LKATDh|b?#j+#FZ{Zjb) CPO$vl2!A6!RE*%#=WNKB z^SKW3qqEGc {aY?EK%4h&r9K9D=Y^p~b@( zR@)-JggSfVk;ZE6D~ZI^<35Vly@j@ J4?vO 5>_N230VA^#ty{+YFp5V^ zUeir)dRX;cbruDxIX=eycoO+2+ORw(>HKMpm^-YmP;X{SQw7}i7; 34t(sr zbhl0qLzo$ob#Rbi`xih$G2ON6!#zDlL4c^6*8QuHmr*_>SMOtDCOVv}SyAIJMbPb# z37P=UQ0}*2izJk9#|YDlWF IDd2Qgh+1lIw?8rM6AA`8$ z&Kq|uW@Z-e?w+V!XL>!B@ `Toi%=$l>II#=D}4n^h;AqCQ6` zW15-NM*ji`KX%j&7kk5^rX_O5nwrCQk2U6IXF)E1K-`y5y~ri@Yw&0JaZK6ION^sJ zF?)Pe(1GWuSKl+lESEH31Na8`W?HkUMR4+BP^r(4%utaCtxxu0w8SSmr@7XuUwWvh zvKq0~KWC2qq9!M_mM>(_+{H0gUxd4~K9kvEB3!S-uGb-*>K=7Y;(4Ut wP?;<>j>Nq(5E{QE6Eh%< zWHYNhC;&r4P651tDr9UJosAf@$M-T3^r^5)Du}y2nobfQ%lhe{tF5*zVaJFA9saD4 zLSoD|sJvK?F6cw5sVuvOLb^ocUZJ%hS6(pspiq8AUPhMr+kLrhqTY 9 z638@)8%-7(g6__$3$D_e9rpFFEw?8?OHo2fjn=j(e=WwE%tJYCNN=VjC iV!J$s+i9`(nm8fCxj)HrMxjl^R0m43>J}R1$T8ne3yR5S zuPbWQ4oa2R 0GX$$Q-J!gAt;26%V2~1hWlI*PCs!P2AadlDmM?vU0ms=S3%u0&AHil>L?kIZt6ob zjr7q4s-ap$1I+HBNS_g CTTaBm1ny}@mB5>wZzRat(?pJ7lTJ8>$ zZR 8y!N&mh_(5m{MLrLzN;<6^GKlklTWHFU18x z*EU0<2+*qludrLFO7do9AoDy`kP63b2Oxh!f%W)hba1xQVf|mRZKWJT1O=aR)M6TC zMzM+AvPmOmYfK k{0kOvQ17c^$Bk?MVns-_#VX FlXNd6yC)CJ*7@b^@V2VTKYM`)F=`*Zy143Ihln1ap zNAmSua4KY4g^LYPc^Cx;QjlRFO9dONZ=g5RuEiNp9y O;|!a`^i!imtc=sFOz^ z4GGg^RRx#P4#zB+>#tzz$4A#po9H4YgpVcU4mt!3r=N|KdT+y-jJRppS40wVkJTIc z+#VznCvGFit)yWwyxUTUT{?jEKUczSrk@=%I3-CsL@lU&{{S;@w=J|=(U=W$8ZI;+ zavObl28;Rz^yi}5X9Gul^nZ!vHwama{*XJSkOD#zsY}*qTT2z%F;X&6Fq)C42X&Vg zsa>bLB9JvzQm=Mx7!VbRETvk`YQ1jkB0UHLPQdFXJhYN!(VLQrIJ)|_%o=D$AYr4D z+tSS1mm;kmE5RF5Ur7G|7qDUDJF4z^s|i#RN2y`Q;3f3(W(^Vyj>P;U#2=m4eQ@+- z-$ggkL#`)&KD-Ih2Y()lop3ucZhi+x9iLFgD1Sz$V#kp2Hsy@w%v(uTT~$FKiNBD6 zDw+-(Yx&U&vRL!UVl_tPAiOm?@dT3DW9s{D*SC)%bY=|dx_0Iia+ vIA-a zy(+shsbWUoJ8!owwajSKMZnh~qW+=5JohWV!uRp%vQ%hfDOSlqe@=_JjMWWYnWpY_ zNh)Z>@~VYo8@2aVfh4xX5wQ{>HffTpK>Lj^)>1`ZEjYGgmDWRm*7|9VNl93{P^r|u z=1t94khe7wCACQEJeN}{9+oAEB*}uen1*nik=vHQj$3Nfa9N8MV8zD9+j6Sz^4X2S zLdx0@ZM GI}^z+}9 zi8@(?0>L$s+vzULrBM1C6ryvPP>7{<_Ld6aV$G%^Ym$9RotGdTI;{qL0F6&6SL&Bn zK+sP{E3>boJ9>D7Xyk5WyE5?EEEib}r%2pNl{x^OHxe1kY6XgiKpv_CRVl6;wU@`J zAt_n%5c?@+CRHHV7Xik|rHw1QBaQ1sA}z%H&A!~W9L9|XnaI~MpumvZ>0fXg)0o#S z^f%i~Y0G^fr!Ug3+oJB(3#C#?-A946(_})Ugx_%PG?#saHwK{%(6)@Zg`U);!w<(A zRUvGvx=4kG)SXSX)pEkD+*Db9wm?}ZSiwrxhzVcf&JY9jI8&^3`c_ *%Mt=KfF z$TtEk4Blsjaej;EBQWbL^f4TreSaBrlL6T8rP%7BTuz}u$U80HmEV?)5bMgCr8Wm7 z1CZOI%XKr^Nah!V4ZU3oolVpkPhwYa^C6cX(r6X#7@9$s=WX`ow!DK}#<`7e>K}3# zX?c7s%&R8kzp9_zlzmEozY0_`#RD>qIu=IL5c(tqoZK9cyW=M81M{TD@rKRgN@^>@ znH1vGCC$AKN29yHi>{{5${SU !mh%^u~7yz=L zGByT q+lcwuch?dRjEw{%L>=}ZqWb(QtX3$> zzp7KQ6ITkmmqk(VbHP%BV*E6fQrQG>dhVF(^sA~m(~?E`l?)myx&&l4Qp=`5b!0v~ zU#>Xx;Zwe{CP*0Tx1tnaqK~k0v)3@qNb&_p_$k=W>v1I-q)KaWq3q49QS??^wEP0N zV5QiUUPOa2j>lXJI^34=tLfy*7AI|y7v^pD<+izvc?Q9^*CC+5k-qwJzzl{cxopGp z9hNlapQxAxgRI2L)R`4$n>ip%H4AETW2YN{+v$Tj*g6+rB&u{~phy5Lr0FN)(|-aC zCf=d7{EP||Y5*D)Jb4F2nJz%nTyBm|xU&GIwUEbVV#ZDs+m`&w&IO2@6)zIUQ@LF= z_Z&{oFc({C5WblRRq>Fca~0!74MReBA{IY84fM))6C+$siXCt~z74*|5sEe=9eyJX zN?{lEA(c`ST_!&RzS`LXRzQuNl}RBHPJ_1V5T=UT>Ra!Q;Aoxn)BsCn)g~QIl yA@ruv)F|C zN|FL=hM7qW3DKXg!0)lec0-0)V u^VC6jGaZHC8Jrx8Xh3NQfeuU68H1OrCww3#eiZbXQq4^6#jfT+j%P@?Is z&7`;rB3%A40$~8=LGiZiq!>3La7#r>XsQOK6?H@-;TH =4RC!m5uKGKI&&NT<43ve|?20H^ z5=4qaVJT?Clg);&QVTIAGTaz11_OmC2}%P;Vguu_)Kv0e$T>4VJ1+Vvb-?UU=q|)2 z+7mit^a@)@yMD1Y-^a+umhFx>tr<1B+inh{$j2Z6o3K{pu0E^^>31WER%QoN^wTIh zE$fpK%Z}SW@uyxa$gVD&Oj~rwUDFuyNPiBX>Ves-7CPT$rGqTfa-h(DG1!fakM{RF zK)&O1t05{z#WENXwO!nkj)W#kuDnXYWO-7BHI5i-VX!;t({cM^kO`1FnligKj8)1+ zrikLxV8PIa&~3u+u|jlLUuc^)nKYmiL9=~@lV{di?D);R@|Rekgd=f@xYYjunlS|% zkZra3Lu5RKr?J$_K9?VGup7D}Xt%C6qS?x<-FImzZwn^8BW!gcZ!TKkcgJEy0S);r zyo+u)6UTqsRd*=|22v=%ZKmAmS7vN)NzADMf%Q7|8Xs1Qwvk(8*p)kLVZZQl6li@( zXoH}@icMcd0)}1mtHcdY(u%sE)Q_tT2<-e;dS@HbOR`9XpYg<#w!B4~9ZD ;j$~5|j)eNdt0H?w`}8Szq=QZH(^BX?IgP{ZC46D?zHi&=_me zZcC-2xI1Z1`YLrQDbfBtbVm9rNRVX}9 Z>~PB zyDXQ~ry%m%K{s5<9xx@45(ylKA5HY&5=Pp$E-I}(8kK7{!g2>m9gL^NZOAv*Kt$9@ zRL%C?D9fd}EaZSU+LS6x{ xH%(O)zo$yFxyWNyqpd$+#`M(Na$*ZuzNI3eRoTEg z`n9s^tLj*?s~z;M>J;t?Q@*y`0lt)MXuB}=N&PRj#1KIB(M`03DIjPu&<9l9=mWH- z$~kC)K#!*}zU{x{HukeFn#@$yh)MDqQ8iLV@R;NI3%o-!Snkw`1K>{o0MoSS%~?GP zN{asguR*Q8gk%eo@s+?=Wb_f@AW5)048X*rz3d^`I;ZDvn27n?MqF+ed97QKnKg zamdBDN+#@A)S((r<$%`P=s44#UIbAci55ENxI1Y2>vOj)p7jhR1sbe5Xk+@)MSf{I zgrD(Qmej*AqAI8LDOOjeLkccSZ~FOt*(wHtv*}#S_=hSmQprXl3^gX?7Jh|y)e5ea z%j%A+rBxc>bQrF=4F%sveQb0F+D(^Ru-4_YTVUVFUG(3~#}XG#2?;%>%eVxc0uGn} zPUlZ8!(*Lp%cxO6teJ|a1pKmOQTZwW%3-49mSRu!EjlwkGqW6WU-jepqoats4I+vZ z C%u@!LvR>SP9UqDeozNPSO^3r*C6Bg%V<2U2)~DBMAF z OOd0fPgl_17H` z%2=KCD)2sZWyi7GZ$b{Jv_HNhaWu*rmc=NHrccDyOQpzd8c$7T8eptfeLJe@=%H3> zG_g=AK!R*afOYGwhL6-jko)bXu_SY1ujsSlR*u?#@{_n32uStOm;}v3P!@lT@>z73 zR}KQ|jHLec72WOk&G?$XJt)}K!!)JLofc;^9yN64DylTpW)Z0+Yqc{I(o4GUuU&eY zmOB14N!Hrn04=}35Omv(b8bPDYIhC} Xlk-#%5u9eBt4fS9{E0xle;|cROkWu=)icvK8Wq;UB*r+6Eo%E9=W6gHWc2*@> zXI27} iGpCUzL;k*d@`+|=V4Cm(%0g+Z3d}C{hdJOr%?$!s zV?dfJ9eBDbjrC@3Rt$8C!F-Gph&nPOSm2E%w<^19ZF*?T15QU?bF6jQRDq}8Y=TrT z1PIROe?*}gsspM>r@`o3Tn^f#c#n|%zoE#hrm2=ylI5TE@%#9NAahlZ2I4oiI66#n zNeeAjL^SF~kQ1uGnWG@T0lu7&9*pF;2=hKS2%>W#M>Zy_$UftJGlkcQfiNm)q?Kl5 zUG}Ffhw#|iQ|h!tCg@5@ce?Wn7CKS6;GtRyMo+4IgYEqdCqqWWV#5`Ke!g$TjzaAk z7h$%UcG2|&ja5rfpivos^Q!3)fhp=pZBoHBOL3d-^n((Gn@&_8O|Hk1LrR Z>VZL65~#jC2LwF=>T00xt@J?J^8?}mIx0f`>@pY$ z Vz;x3LVQG^l}c#UP`sy zIGUB1=RZnF?@t>sS+i;^025Ft5wsVo}R8c)pWGnB?e5-03D; zK{z6AO0K|=H6y(lg6i}usL&`jC5G&^05VkV#h8}}8j3Wpwu#khLZH_r<}yJuEWv-4 z18Yxz-qnaPv8JZJfD@uMISp1^wK#Dl&n8{Nf~Ezu(+#GOVA3jD47#04>05EI(z)_k zA6VoKSqo{9HkJwkz=j9W<{L~3s$6N0tma!>mRd>{Rj&GceSSIFl!C7BuT9GBtd|Ub zdsZu?$@;Z=lGC9o2_f0T&m&Vq$<*?Cgbzk?;ma^!)X3jamm<7Im!B+z07y93 6Fh^m`!7krRI0${HIb#h%H)>LlLT3pY&N3bkVB{CCk6< zQm-|9eJuWiej41>Qf%6A$4;DuW?0jRCX7l^oH`XD!XhH?S}`#%r*hgZNi|kj`k*3e zstFVutAc2EXJF!zDX$_vsXhi&0cz|Vv-4Yemm4_+zeh>X(uqRj6@z}&Dw&k3xgcnr z%o~X0?X8=WlA&y_9XD^sZKL$Fvr|ERCql)Pf*28`mg_IP&3QY8rD_=#Xu-CS`YEYQ zrkIjsiopYK%_*ZIg(=FF8?3SYD;__jy -f $0Csa#KfsdTTHU8H&l6oME8pJpvm`>!rfFC(vab-mKbc7ShxZ3b41RPvOFW&FP@aA?I#EjTzJfHegoD+AHfzlcu{L zfIDe&4#O$7XC$UU*X3+!ef8vRze{9xYGb=U2lD>jlx5PnA1EXr$UH_v1vX;7R^#xS z@hZMXG*s1S98t 2+v2qw=!41maYon*DfsgGrDUd^0|f*M zJ1M)-r;C@6S97wx1DX>504lIy@F0>;)utqT!%s#GyX*-f87$BH;Q5+~AS1DPD{EoC zKa`SymMXgbbtY};BCe0fI)OkmtPjE8kH^WrxN#(I0N87Q-{l&&J`29YY925@{2Gmh zj*%4x`d!DwC AL9=cjD=d*#VOruDqN7Lj=3xsvGsQ_|`n&u ; skN*G%*w3Cm6*)_Y88|ZEUQ>^(M=S! Gj)-m90W3ttvJy*$aVRff z8SR=x`kaPw@-+~n$JOzIj|exESIa2!0zq{cD~3_y{3FHi%8ZGP>x?|I#X|GO=5|=Q zKEJp2tmQE5k#RYJM0$~qhzuqcB1C+0azumLYVu|POcB2S03ic# @Z8%UC9U}r z0(J_U71WnwYZiIYl-i}yYV4hUFhu!(Bhjo%zCma6?CFumUzAJE?25J78vK>>9kln| zPFK`&+jYnaU4cKib^sF$Ng!A%x5AT0)=nnRHg*HeyIGX3NM^AIHJ6B9C`{X6UyZpaHeopkjEs? z9YWU)ku5}Fr9#FN0*6@e1S+YSMKdLQVoLg|@z(?{XE5@P?=ZaLs^MUTX$1>(P%Z#p z*mL;!=ByXuAUW|W3F5J4D&mB$A_W-p^LQR-A8H@~4}&0WF!f2IopJSIb-w{D{jweD zsLPzI2VE9Y3n|j>bqOrf=Q%{XWRfLtL*$Pv?ZhToP;$>2- pH6=QHu B zx+vFyS($cW74mo#8NhCsz%Lc?RTqcsJ&JOK@`#`0&vd#m_z1S}ot3cihmub)-wf3* zWkP465Kb$79|1)y?i2&Ql~^;NVLW!+u*N)mlFM@!qV7`v07^@Gc-MZeU{Cr7D|b0( zlGrQG+)VPyX)?-&$mG8SU (PQPt6hd8C0cV-A3YjwTMuLSx?Cc30!fd- z (EM=TSLmBV|os3Me3|1=7hudIb}5!%F0`xIYC1 z4~45qxNuD;J?)eIuD(FfGQP6xu|heV8u+Sl=o=DV1^LKIvBcs;3q0Yq3{l9#JFXER zy!dKCOXMcsxMXFCJgT%^GXOprV6|~>QK(-crVfkeK&Opa95B%!1)`llJ)IkLW NT)l$i z0il?88B7nsNCuVUKX2`J+X~!hor1bejWGKBpCZy>#!f7eLMYJd^thoy$fCkap+D{s zzLi*fNdr@|zMXjr$)8Pg#a*eSjW!*9PO&3oXDkWIS61c;uJaIA)>mIN3xeRrGme>+ z^$eztrIR`zl!U7`5eM;iGKlgRqmhPpTp~ev@Y3zMN%?XUiT%5>qOuLNqkTpzW7jhZ zUm-@Fjh;$Mqw@J0XKZw2)M{MwUG&VO;H8e5D#esAMOmG4UK6U((<(|j%$@}0ObFzg zH; ;vK9?V{H0Q@_`n%JHCG>UnCQqjC&c1_ zwvzCGQuztQ{?fT1*Wg$Ub09xonJF zkzm MvtN``qzENc!jhAli 0lCO#emUW8cT*-9zm?DEg zf%qFQFP36dr{WS@5QF%hq5x`Gyu|TK0`uXZH_$?b)m8EWhQ(0LJasw{*;*SW$Y#(* z(@A;P9CB%>uZ=}wh|e5!Ar*KOQ!nbzf`!PN9P3S^jh4#bf;8DBaz0v7P-gu$!>dM( zl6>ip%wz;gLn3oUUTstOtxyrY8%FD``854Rra@Y=AUl